From c932d797a765c16791f8dd89a209936106b885e6 Mon Sep 17 00:00:00 2001 From: Nitya Dhanushkodi Date: Fri, 21 Jul 2023 09:21:39 -0700 Subject: [PATCH] [OSS] proxystate: add proxystate protos (#18216) * proxystate: add proxystate protos to pbmesh and resolve imports and conflicts between message names --- .../pbmesh/v1alpha1/access_logs.pb.binary.go | 18 + .../pbmesh/v1alpha1/access_logs.pb.go | 319 +++ .../pbmesh/v1alpha1/access_logs.proto | 32 + .../pbmesh/v1alpha1/address.pb.binary.go | 18 + proto-public/pbmesh/v1alpha1/address.pb.go | 173 ++ proto-public/pbmesh/v1alpha1/address.proto | 11 + .../pbmesh/v1alpha1/cluster.pb.binary.go | 248 ++ proto-public/pbmesh/v1alpha1/cluster.pb.go | 2449 +++++++++++++++++ proto-public/pbmesh/v1alpha1/cluster.proto | 179 ++ .../pbmesh/v1alpha1/endpoints.pb.binary.go | 28 + proto-public/pbmesh/v1alpha1/endpoints.pb.go | 390 +++ proto-public/pbmesh/v1alpha1/endpoints.proto | 32 + .../v1alpha1/escape_hatches.pb.binary.go | 18 + .../pbmesh/v1alpha1/escape_hatches.pb.go | 167 ++ .../pbmesh/v1alpha1/escape_hatches.proto | 11 + .../v1alpha1/header_mutations.pb.binary.go | 68 + .../pbmesh/v1alpha1/header_mutations.pb.go | 681 +++++ .../pbmesh/v1alpha1/header_mutations.proto | 47 + .../pbmesh/v1alpha1/intentions.pb.binary.go | 28 + proto-public/pbmesh/v1alpha1/intentions.pb.go | 206 ++ proto-public/pbmesh/v1alpha1/intentions.proto | 10 + .../pbmesh/v1alpha1/listener.pb.binary.go | 78 + proto-public/pbmesh/v1alpha1/listener.pb.go | 1174 ++++++++ proto-public/pbmesh/v1alpha1/listener.proto | 123 + .../pbmesh/v1alpha1/proxy_state.pb.binary.go | 28 + .../pbmesh/v1alpha1/proxy_state.pb.go | 552 ++++ .../pbmesh/v1alpha1/proxy_state.proto | 55 + .../pbmesh/v1alpha1/references.pb.binary.go | 38 + proto-public/pbmesh/v1alpha1/references.pb.go | 365 +++ proto-public/pbmesh/v1alpha1/references.proto | 29 + .../pbmesh/v1alpha1/route.pb.binary.go | 178 ++ proto-public/pbmesh/v1alpha1/route.pb.go | 1879 +++++++++++++ proto-public/pbmesh/v1alpha1/route.proto | 138 + .../v1alpha1/transport_socket.pb.binary.go | 138 + .../pbmesh/v1alpha1/transport_socket.pb.go | 1488 ++++++++++ .../pbmesh/v1alpha1/transport_socket.proto | 136 + .../v1alpha1/upstreams_configuration.pb.go | 123 +- .../v1alpha1/upstreams_configuration.proto | 7 +- 38 files changed, 11604 insertions(+), 58 deletions(-) create mode 100644 proto-public/pbmesh/v1alpha1/access_logs.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/access_logs.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/access_logs.proto create mode 100644 proto-public/pbmesh/v1alpha1/address.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/address.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/address.proto create mode 100644 proto-public/pbmesh/v1alpha1/cluster.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/cluster.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/cluster.proto create mode 100644 proto-public/pbmesh/v1alpha1/endpoints.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/endpoints.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/endpoints.proto create mode 100644 proto-public/pbmesh/v1alpha1/escape_hatches.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/escape_hatches.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/escape_hatches.proto create mode 100644 proto-public/pbmesh/v1alpha1/header_mutations.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/header_mutations.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/header_mutations.proto create mode 100644 proto-public/pbmesh/v1alpha1/intentions.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/intentions.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/intentions.proto create mode 100644 proto-public/pbmesh/v1alpha1/listener.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/listener.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/listener.proto create mode 100644 proto-public/pbmesh/v1alpha1/proxy_state.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/proxy_state.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/proxy_state.proto create mode 100644 proto-public/pbmesh/v1alpha1/references.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/references.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/references.proto create mode 100644 proto-public/pbmesh/v1alpha1/route.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/route.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/route.proto create mode 100644 proto-public/pbmesh/v1alpha1/transport_socket.pb.binary.go create mode 100644 proto-public/pbmesh/v1alpha1/transport_socket.pb.go create mode 100644 proto-public/pbmesh/v1alpha1/transport_socket.proto diff --git a/proto-public/pbmesh/v1alpha1/access_logs.pb.binary.go b/proto-public/pbmesh/v1alpha1/access_logs.pb.binary.go new file mode 100644 index 000000000000..0621e7a4793a --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/access_logs.pb.binary.go @@ -0,0 +1,18 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/access_logs.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *AccessLogs) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *AccessLogs) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/access_logs.pb.go b/proto-public/pbmesh/v1alpha1/access_logs.pb.go new file mode 100644 index 000000000000..e12349e92e41 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/access_logs.pb.go @@ -0,0 +1,319 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/access_logs.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type LogSinkType int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + LogSinkType_LOG_SINK_TYPE_DEFAULT LogSinkType = 0 + LogSinkType_LOG_SINK_TYPE_FILE LogSinkType = 1 + LogSinkType_LOG_SINK_TYPE_STDERR LogSinkType = 2 + LogSinkType_LOG_SINK_TYPE_STDOUT LogSinkType = 3 +) + +// Enum value maps for LogSinkType. +var ( + LogSinkType_name = map[int32]string{ + 0: "LOG_SINK_TYPE_DEFAULT", + 1: "LOG_SINK_TYPE_FILE", + 2: "LOG_SINK_TYPE_STDERR", + 3: "LOG_SINK_TYPE_STDOUT", + } + LogSinkType_value = map[string]int32{ + "LOG_SINK_TYPE_DEFAULT": 0, + "LOG_SINK_TYPE_FILE": 1, + "LOG_SINK_TYPE_STDERR": 2, + "LOG_SINK_TYPE_STDOUT": 3, + } +) + +func (x LogSinkType) Enum() *LogSinkType { + p := new(LogSinkType) + *p = x + return p +} + +func (x LogSinkType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LogSinkType) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_access_logs_proto_enumTypes[0].Descriptor() +} + +func (LogSinkType) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_access_logs_proto_enumTypes[0] +} + +func (x LogSinkType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LogSinkType.Descriptor instead. +func (LogSinkType) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_access_logs_proto_rawDescGZIP(), []int{0} +} + +type AccessLogs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // enabled enables access logging. + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + // disable_listener_logs turns off just listener logs for connections rejected by Envoy because they don't + // have a matching listener filter. + DisableListenerLogs bool `protobuf:"varint,2,opt,name=disable_listener_logs,json=disableListenerLogs,proto3" json:"disable_listener_logs,omitempty"` + // type selects the output for logs: "file", "stderr". "stdout" + Type LogSinkType `protobuf:"varint,3,opt,name=type,proto3,enum=hashicorp.consul.mesh.v1alpha1.LogSinkType" json:"type,omitempty"` + // path is the output file to write logs + Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` + // The presence of one format string or the other implies the access log string encoding. + // Defining both is invalid. + // + // Types that are assignable to Format: + // + // *AccessLogs_Json + // *AccessLogs_Text + Format isAccessLogs_Format `protobuf_oneof:"format"` +} + +func (x *AccessLogs) Reset() { + *x = AccessLogs{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_access_logs_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccessLogs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccessLogs) ProtoMessage() {} + +func (x *AccessLogs) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_access_logs_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccessLogs.ProtoReflect.Descriptor instead. +func (*AccessLogs) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_access_logs_proto_rawDescGZIP(), []int{0} +} + +func (x *AccessLogs) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *AccessLogs) GetDisableListenerLogs() bool { + if x != nil { + return x.DisableListenerLogs + } + return false +} + +func (x *AccessLogs) GetType() LogSinkType { + if x != nil { + return x.Type + } + return LogSinkType_LOG_SINK_TYPE_DEFAULT +} + +func (x *AccessLogs) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (m *AccessLogs) GetFormat() isAccessLogs_Format { + if m != nil { + return m.Format + } + return nil +} + +func (x *AccessLogs) GetJson() string { + if x, ok := x.GetFormat().(*AccessLogs_Json); ok { + return x.Json + } + return "" +} + +func (x *AccessLogs) GetText() string { + if x, ok := x.GetFormat().(*AccessLogs_Text); ok { + return x.Text + } + return "" +} + +type isAccessLogs_Format interface { + isAccessLogs_Format() +} + +type AccessLogs_Json struct { + Json string `protobuf:"bytes,5,opt,name=json,proto3,oneof"` +} + +type AccessLogs_Text struct { + Text string `protobuf:"bytes,6,opt,name=text,proto3,oneof"` +} + +func (*AccessLogs_Json) isAccessLogs_Format() {} + +func (*AccessLogs_Text) isAccessLogs_Format() {} + +var File_pbmesh_v1alpha1_access_logs_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_access_logs_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x22, 0xe5, 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, + 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x73, + 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x53, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, + 0x74, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2a, 0x74, 0x0a, 0x0b, 0x4c, + 0x6f, 0x67, 0x53, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, + 0x47, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, + 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x54, 0x44, 0x45, 0x52, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x47, 0x5f, 0x53, + 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x10, + 0x03, 0x42, 0x97, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, + 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, + 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, + 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, + 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_access_logs_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_access_logs_proto_rawDescData = file_pbmesh_v1alpha1_access_logs_proto_rawDesc +) + +func file_pbmesh_v1alpha1_access_logs_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_access_logs_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_access_logs_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_access_logs_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_access_logs_proto_rawDescData +} + +var file_pbmesh_v1alpha1_access_logs_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pbmesh_v1alpha1_access_logs_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_pbmesh_v1alpha1_access_logs_proto_goTypes = []interface{}{ + (LogSinkType)(0), // 0: hashicorp.consul.mesh.v1alpha1.LogSinkType + (*AccessLogs)(nil), // 1: hashicorp.consul.mesh.v1alpha1.AccessLogs +} +var file_pbmesh_v1alpha1_access_logs_proto_depIdxs = []int32{ + 0, // 0: hashicorp.consul.mesh.v1alpha1.AccessLogs.type:type_name -> hashicorp.consul.mesh.v1alpha1.LogSinkType + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_access_logs_proto_init() } +func file_pbmesh_v1alpha1_access_logs_proto_init() { + if File_pbmesh_v1alpha1_access_logs_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_access_logs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccessLogs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_access_logs_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*AccessLogs_Json)(nil), + (*AccessLogs_Text)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_access_logs_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_access_logs_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_access_logs_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_access_logs_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_access_logs_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_access_logs_proto = out.File + file_pbmesh_v1alpha1_access_logs_proto_rawDesc = nil + file_pbmesh_v1alpha1_access_logs_proto_goTypes = nil + file_pbmesh_v1alpha1_access_logs_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/access_logs.proto b/proto-public/pbmesh/v1alpha1/access_logs.proto new file mode 100644 index 000000000000..4306ece93897 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/access_logs.proto @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +message AccessLogs { + // enabled enables access logging. + bool enabled = 1; + // disable_listener_logs turns off just listener logs for connections rejected by Envoy because they don't + // have a matching listener filter. + bool disable_listener_logs = 2; + // type selects the output for logs: "file", "stderr". "stdout" + LogSinkType type = 3; + // path is the output file to write logs + string path = 4; + // The presence of one format string or the other implies the access log string encoding. + // Defining both is invalid. + oneof format { + string json = 5; + string text = 6; + } +} + +enum LogSinkType { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + LOG_SINK_TYPE_DEFAULT = 0; + LOG_SINK_TYPE_FILE = 1; + LOG_SINK_TYPE_STDERR = 2; + LOG_SINK_TYPE_STDOUT = 3; +} diff --git a/proto-public/pbmesh/v1alpha1/address.pb.binary.go b/proto-public/pbmesh/v1alpha1/address.pb.binary.go new file mode 100644 index 000000000000..32e199fffb48 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/address.pb.binary.go @@ -0,0 +1,18 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/address.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *HostPortAddress) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *HostPortAddress) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/address.pb.go b/proto-public/pbmesh/v1alpha1/address.pb.go new file mode 100644 index 000000000000..8fd8d704806e --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/address.pb.go @@ -0,0 +1,173 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/address.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HostPortAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` +} + +func (x *HostPortAddress) Reset() { + *x = HostPortAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostPortAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostPortAddress) ProtoMessage() {} + +func (x *HostPortAddress) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_address_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostPortAddress.ProtoReflect.Descriptor instead. +func (*HostPortAddress) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_address_proto_rawDescGZIP(), []int{0} +} + +func (x *HostPortAddress) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *HostPortAddress) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +var File_pbmesh_v1alpha1_address_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_address_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, + 0x39, 0x0a, 0x0f, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x94, 0x02, 0x0a, 0x22, 0x63, + 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x42, 0x0c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, + 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, + 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, + 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, + 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_address_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_address_proto_rawDescData = file_pbmesh_v1alpha1_address_proto_rawDesc +) + +func file_pbmesh_v1alpha1_address_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_address_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_address_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_address_proto_rawDescData +} + +var file_pbmesh_v1alpha1_address_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_pbmesh_v1alpha1_address_proto_goTypes = []interface{}{ + (*HostPortAddress)(nil), // 0: hashicorp.consul.mesh.v1alpha1.HostPortAddress +} +var file_pbmesh_v1alpha1_address_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_address_proto_init() } +func file_pbmesh_v1alpha1_address_proto_init() { + if File_pbmesh_v1alpha1_address_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostPortAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_address_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_address_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_address_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_address_proto = out.File + file_pbmesh_v1alpha1_address_proto_rawDesc = nil + file_pbmesh_v1alpha1_address_proto_goTypes = nil + file_pbmesh_v1alpha1_address_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/address.proto b/proto-public/pbmesh/v1alpha1/address.proto new file mode 100644 index 000000000000..23e59c95ab7a --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/address.proto @@ -0,0 +1,11 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +message HostPortAddress { + string host = 1; + uint32 port = 2; +} diff --git a/proto-public/pbmesh/v1alpha1/cluster.pb.binary.go b/proto-public/pbmesh/v1alpha1/cluster.pb.binary.go new file mode 100644 index 000000000000..6db01bde8e51 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/cluster.pb.binary.go @@ -0,0 +1,248 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/cluster.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Cluster) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Cluster) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *FailoverGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *FailoverGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *FailoverGroupConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *FailoverGroupConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *EndpointGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *EndpointGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DynamicEndpointGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DynamicEndpointGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *PassthroughEndpointGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *PassthroughEndpointGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DNSEndpointGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DNSEndpointGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *StaticEndpointGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *StaticEndpointGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L4WeightedClusterGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L4WeightedClusterGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L7WeightedClusterGroup) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L7WeightedClusterGroup) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L4WeightedDestinationCluster) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L4WeightedDestinationCluster) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L7WeightedDestinationCluster) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L7WeightedDestinationCluster) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DynamicEndpointGroupConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DynamicEndpointGroupConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LBPolicyLeastRequest) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LBPolicyLeastRequest) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LBPolicyRoundRobin) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LBPolicyRoundRobin) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LBPolicyRandom) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LBPolicyRandom) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LBPolicyRingHash) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LBPolicyRingHash) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LBPolicyMaglev) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LBPolicyMaglev) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *CircuitBreakers) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *CircuitBreakers) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *OutlierDetection) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *OutlierDetection) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *UpstreamConnectionOptions) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *UpstreamConnectionOptions) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *PassthroughEndpointGroupConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *PassthroughEndpointGroupConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DNSEndpointGroupConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DNSEndpointGroupConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *StaticEndpointGroupConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *StaticEndpointGroupConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/cluster.pb.go b/proto-public/pbmesh/v1alpha1/cluster.pb.go new file mode 100644 index 000000000000..dd240befcdea --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/cluster.pb.go @@ -0,0 +1,2449 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/cluster.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DiscoveryType int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + DiscoveryType_DISCOVERY_TYPE_LOGICAL DiscoveryType = 0 + DiscoveryType_DISCOVERY_TYPE_STRICT DiscoveryType = 1 +) + +// Enum value maps for DiscoveryType. +var ( + DiscoveryType_name = map[int32]string{ + 0: "DISCOVERY_TYPE_LOGICAL", + 1: "DISCOVERY_TYPE_STRICT", + } + DiscoveryType_value = map[string]int32{ + "DISCOVERY_TYPE_LOGICAL": 0, + "DISCOVERY_TYPE_STRICT": 1, + } +) + +func (x DiscoveryType) Enum() *DiscoveryType { + p := new(DiscoveryType) + *p = x + return p +} + +func (x DiscoveryType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DiscoveryType) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_cluster_proto_enumTypes[0].Descriptor() +} + +func (DiscoveryType) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_cluster_proto_enumTypes[0] +} + +func (x DiscoveryType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DiscoveryType.Descriptor instead. +func (DiscoveryType) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{0} +} + +type Cluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // group is either a failover group or endpoint group. If this cluster needs to failover to other clusters, use the failover group. If this cluster routes directly to endpoints, use the endpoint group. + // + // Types that are assignable to Group: + // + // *Cluster_FailoverGroup + // *Cluster_EndpointGroup + Group isCluster_Group `protobuf_oneof:"group"` + // escape_hatch_cluster_json configures a user configured escape hatch cluster. + EscapeHatchClusterJson string `protobuf:"bytes,3,opt,name=escape_hatch_cluster_json,json=escapeHatchClusterJson,proto3" json:"escape_hatch_cluster_json,omitempty"` +} + +func (x *Cluster) Reset() { + *x = Cluster{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cluster) ProtoMessage() {} + +func (x *Cluster) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Cluster.ProtoReflect.Descriptor instead. +func (*Cluster) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{0} +} + +func (m *Cluster) GetGroup() isCluster_Group { + if m != nil { + return m.Group + } + return nil +} + +func (x *Cluster) GetFailoverGroup() *FailoverGroup { + if x, ok := x.GetGroup().(*Cluster_FailoverGroup); ok { + return x.FailoverGroup + } + return nil +} + +func (x *Cluster) GetEndpointGroup() *EndpointGroup { + if x, ok := x.GetGroup().(*Cluster_EndpointGroup); ok { + return x.EndpointGroup + } + return nil +} + +func (x *Cluster) GetEscapeHatchClusterJson() string { + if x != nil { + return x.EscapeHatchClusterJson + } + return "" +} + +type isCluster_Group interface { + isCluster_Group() +} + +type Cluster_FailoverGroup struct { + FailoverGroup *FailoverGroup `protobuf:"bytes,1,opt,name=failover_group,json=failoverGroup,proto3,oneof"` +} + +type Cluster_EndpointGroup struct { + EndpointGroup *EndpointGroup `protobuf:"bytes,2,opt,name=endpoint_group,json=endpointGroup,proto3,oneof"` +} + +func (*Cluster_FailoverGroup) isCluster_Group() {} + +func (*Cluster_EndpointGroup) isCluster_Group() {} + +type FailoverGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name of the failover group. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // endpoint_groups is an ordered list of which groups to failover to. + EndpointGroups []*EndpointGroup `protobuf:"bytes,2,rep,name=endpoint_groups,json=endpointGroups,proto3" json:"endpoint_groups,omitempty"` + Config *FailoverGroupConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` +} + +func (x *FailoverGroup) Reset() { + *x = FailoverGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FailoverGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FailoverGroup) ProtoMessage() {} + +func (x *FailoverGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FailoverGroup.ProtoReflect.Descriptor instead. +func (*FailoverGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{1} +} + +func (x *FailoverGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FailoverGroup) GetEndpointGroups() []*EndpointGroup { + if x != nil { + return x.EndpointGroups + } + return nil +} + +func (x *FailoverGroup) GetConfig() *FailoverGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +type FailoverGroupConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UseAltStatName bool `protobuf:"varint,1,opt,name=use_alt_stat_name,json=useAltStatName,proto3" json:"use_alt_stat_name,omitempty"` + ConnectTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` +} + +func (x *FailoverGroupConfig) Reset() { + *x = FailoverGroupConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FailoverGroupConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FailoverGroupConfig) ProtoMessage() {} + +func (x *FailoverGroupConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FailoverGroupConfig.ProtoReflect.Descriptor instead. +func (*FailoverGroupConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{2} +} + +func (x *FailoverGroupConfig) GetUseAltStatName() bool { + if x != nil { + return x.UseAltStatName + } + return false +} + +func (x *FailoverGroupConfig) GetConnectTimeout() *durationpb.Duration { + if x != nil { + return x.ConnectTimeout + } + return nil +} + +type EndpointGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Group: + // + // *EndpointGroup_Dynamic + // *EndpointGroup_Static + // *EndpointGroup_Dns + // *EndpointGroup_Passthrough + Group isEndpointGroup_Group `protobuf_oneof:"group"` +} + +func (x *EndpointGroup) Reset() { + *x = EndpointGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EndpointGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EndpointGroup) ProtoMessage() {} + +func (x *EndpointGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EndpointGroup.ProtoReflect.Descriptor instead. +func (*EndpointGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{3} +} + +func (m *EndpointGroup) GetGroup() isEndpointGroup_Group { + if m != nil { + return m.Group + } + return nil +} + +func (x *EndpointGroup) GetDynamic() *DynamicEndpointGroup { + if x, ok := x.GetGroup().(*EndpointGroup_Dynamic); ok { + return x.Dynamic + } + return nil +} + +func (x *EndpointGroup) GetStatic() *StaticEndpointGroup { + if x, ok := x.GetGroup().(*EndpointGroup_Static); ok { + return x.Static + } + return nil +} + +func (x *EndpointGroup) GetDns() *DNSEndpointGroup { + if x, ok := x.GetGroup().(*EndpointGroup_Dns); ok { + return x.Dns + } + return nil +} + +func (x *EndpointGroup) GetPassthrough() *PassthroughEndpointGroup { + if x, ok := x.GetGroup().(*EndpointGroup_Passthrough); ok { + return x.Passthrough + } + return nil +} + +type isEndpointGroup_Group interface { + isEndpointGroup_Group() +} + +type EndpointGroup_Dynamic struct { + // dynamic endpoint group is used to reach mesh destinations that are dynamically configured from Consul's catalog. + Dynamic *DynamicEndpointGroup `protobuf:"bytes,1,opt,name=dynamic,proto3,oneof"` +} + +type EndpointGroup_Static struct { + // static endpoint group is used to reach local app ports. + Static *StaticEndpointGroup `protobuf:"bytes,2,opt,name=static,proto3,oneof"` +} + +type EndpointGroup_Dns struct { + // dns is used to reach mesh and non-mesh destinations using a hostname. + Dns *DNSEndpointGroup `protobuf:"bytes,3,opt,name=dns,proto3,oneof"` +} + +type EndpointGroup_Passthrough struct { + // passthrough is used to reach destinations that don't have endpoints saved in Consul. + Passthrough *PassthroughEndpointGroup `protobuf:"bytes,4,opt,name=passthrough,proto3,oneof"` +} + +func (*EndpointGroup_Dynamic) isEndpointGroup_Group() {} + +func (*EndpointGroup_Static) isEndpointGroup_Group() {} + +func (*EndpointGroup_Dns) isEndpointGroup_Group() {} + +func (*EndpointGroup_Passthrough) isEndpointGroup_Group() {} + +type DynamicEndpointGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name will be the name of the Envoy cluster created by this endpoint group. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // config configures how to connect to the endpoints. + Config *DynamicEndpointGroupConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + // outbound_tls will configure what TLS information to use when connecting to an upstream. + OutboundTls *TransportSocket `protobuf:"bytes,3,opt,name=outbound_tls,json=outboundTls,proto3" json:"outbound_tls,omitempty"` +} + +func (x *DynamicEndpointGroup) Reset() { + *x = DynamicEndpointGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DynamicEndpointGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DynamicEndpointGroup) ProtoMessage() {} + +func (x *DynamicEndpointGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DynamicEndpointGroup.ProtoReflect.Descriptor instead. +func (*DynamicEndpointGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{4} +} + +func (x *DynamicEndpointGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DynamicEndpointGroup) GetConfig() *DynamicEndpointGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *DynamicEndpointGroup) GetOutboundTls() *TransportSocket { + if x != nil { + return x.OutboundTls + } + return nil +} + +type PassthroughEndpointGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name will be the name of the Envoy cluster created by this endpoint group. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // config configures how to connect to the endpoints. + Config *PassthroughEndpointGroupConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + // outbound_tls will configure what TLS information to use when connecting to an upstream. + OutboundTls *TransportSocket `protobuf:"bytes,3,opt,name=outbound_tls,json=outboundTls,proto3" json:"outbound_tls,omitempty"` +} + +func (x *PassthroughEndpointGroup) Reset() { + *x = PassthroughEndpointGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PassthroughEndpointGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PassthroughEndpointGroup) ProtoMessage() {} + +func (x *PassthroughEndpointGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PassthroughEndpointGroup.ProtoReflect.Descriptor instead. +func (*PassthroughEndpointGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{5} +} + +func (x *PassthroughEndpointGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PassthroughEndpointGroup) GetConfig() *PassthroughEndpointGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *PassthroughEndpointGroup) GetOutboundTls() *TransportSocket { + if x != nil { + return x.OutboundTls + } + return nil +} + +type DNSEndpointGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name will be the name of the Envoy cluster created by this endpoint group. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // config configures how to connect to the endpoints. + Config *DNSEndpointGroupConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + // outbound_tls will configure what TLS information to use when connecting to an upstream. + OutboundTls *TransportSocket `protobuf:"bytes,3,opt,name=outbound_tls,json=outboundTls,proto3" json:"outbound_tls,omitempty"` +} + +func (x *DNSEndpointGroup) Reset() { + *x = DNSEndpointGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DNSEndpointGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DNSEndpointGroup) ProtoMessage() {} + +func (x *DNSEndpointGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DNSEndpointGroup.ProtoReflect.Descriptor instead. +func (*DNSEndpointGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{6} +} + +func (x *DNSEndpointGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DNSEndpointGroup) GetConfig() *DNSEndpointGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *DNSEndpointGroup) GetOutboundTls() *TransportSocket { + if x != nil { + return x.OutboundTls + } + return nil +} + +// StaticEndpointGroup is used to reach local app ports. +type StaticEndpointGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name will be the name of the Envoy cluster created by this endpoint group. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // config configures how to connect to the endpoints. + Config *StaticEndpointGroupConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` +} + +func (x *StaticEndpointGroup) Reset() { + *x = StaticEndpointGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StaticEndpointGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticEndpointGroup) ProtoMessage() {} + +func (x *StaticEndpointGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StaticEndpointGroup.ProtoReflect.Descriptor instead. +func (*StaticEndpointGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{7} +} + +func (x *StaticEndpointGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *StaticEndpointGroup) GetConfig() *StaticEndpointGroupConfig { + if x != nil { + return x.Config + } + return nil +} + +type L4WeightedClusterGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // clusters to route to by weight. + Clusters []*L4WeightedDestinationCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *L4WeightedClusterGroup) Reset() { + *x = L4WeightedClusterGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L4WeightedClusterGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L4WeightedClusterGroup) ProtoMessage() {} + +func (x *L4WeightedClusterGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L4WeightedClusterGroup.ProtoReflect.Descriptor instead. +func (*L4WeightedClusterGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{8} +} + +func (x *L4WeightedClusterGroup) GetClusters() []*L4WeightedDestinationCluster { + if x != nil { + return x.Clusters + } + return nil +} + +type L7WeightedClusterGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // clusters to route to by weight. + Clusters []*L7WeightedDestinationCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *L7WeightedClusterGroup) Reset() { + *x = L7WeightedClusterGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L7WeightedClusterGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L7WeightedClusterGroup) ProtoMessage() {} + +func (x *L7WeightedClusterGroup) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L7WeightedClusterGroup.ProtoReflect.Descriptor instead. +func (*L7WeightedClusterGroup) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{9} +} + +func (x *L7WeightedClusterGroup) GetClusters() []*L7WeightedDestinationCluster { + if x != nil { + return x.Clusters + } + return nil +} + +type L4WeightedDestinationCluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Weight *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"` +} + +func (x *L4WeightedDestinationCluster) Reset() { + *x = L4WeightedDestinationCluster{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L4WeightedDestinationCluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L4WeightedDestinationCluster) ProtoMessage() {} + +func (x *L4WeightedDestinationCluster) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L4WeightedDestinationCluster.ProtoReflect.Descriptor instead. +func (*L4WeightedDestinationCluster) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{10} +} + +func (x *L4WeightedDestinationCluster) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *L4WeightedDestinationCluster) GetWeight() *wrapperspb.UInt32Value { + if x != nil { + return x.Weight + } + return nil +} + +type L7WeightedDestinationCluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Weight *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"` + HeaderMutations []*HeaderMutation `protobuf:"bytes,3,rep,name=header_mutations,json=headerMutations,proto3" json:"header_mutations,omitempty"` +} + +func (x *L7WeightedDestinationCluster) Reset() { + *x = L7WeightedDestinationCluster{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L7WeightedDestinationCluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L7WeightedDestinationCluster) ProtoMessage() {} + +func (x *L7WeightedDestinationCluster) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L7WeightedDestinationCluster.ProtoReflect.Descriptor instead. +func (*L7WeightedDestinationCluster) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{11} +} + +func (x *L7WeightedDestinationCluster) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *L7WeightedDestinationCluster) GetWeight() *wrapperspb.UInt32Value { + if x != nil { + return x.Weight + } + return nil +} + +func (x *L7WeightedDestinationCluster) GetHeaderMutations() []*HeaderMutation { + if x != nil { + return x.HeaderMutations + } + return nil +} + +type DynamicEndpointGroupConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConnectTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` + DisablePanicThreshold bool `protobuf:"varint,2,opt,name=disable_panic_threshold,json=disablePanicThreshold,proto3" json:"disable_panic_threshold,omitempty"` + // Types that are assignable to LbPolicy: + // + // *DynamicEndpointGroupConfig_LeastRequest + // *DynamicEndpointGroupConfig_RoundRobin + // *DynamicEndpointGroupConfig_Random + // *DynamicEndpointGroupConfig_RingHash + // *DynamicEndpointGroupConfig_Maglev + LbPolicy isDynamicEndpointGroupConfig_LbPolicy `protobuf_oneof:"lb_policy"` + CircuitBreakers *CircuitBreakers `protobuf:"bytes,8,opt,name=circuit_breakers,json=circuitBreakers,proto3" json:"circuit_breakers,omitempty"` + OutlierDetection *OutlierDetection `protobuf:"bytes,9,opt,name=outlier_detection,json=outlierDetection,proto3" json:"outlier_detection,omitempty"` + UpstreamConnectionOptions *UpstreamConnectionOptions `protobuf:"bytes,10,opt,name=upstream_connection_options,json=upstreamConnectionOptions,proto3" json:"upstream_connection_options,omitempty"` + UseAltStatName bool `protobuf:"varint,11,opt,name=use_alt_stat_name,json=useAltStatName,proto3" json:"use_alt_stat_name,omitempty"` +} + +func (x *DynamicEndpointGroupConfig) Reset() { + *x = DynamicEndpointGroupConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DynamicEndpointGroupConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DynamicEndpointGroupConfig) ProtoMessage() {} + +func (x *DynamicEndpointGroupConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DynamicEndpointGroupConfig.ProtoReflect.Descriptor instead. +func (*DynamicEndpointGroupConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{12} +} + +func (x *DynamicEndpointGroupConfig) GetConnectTimeout() *durationpb.Duration { + if x != nil { + return x.ConnectTimeout + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetDisablePanicThreshold() bool { + if x != nil { + return x.DisablePanicThreshold + } + return false +} + +func (m *DynamicEndpointGroupConfig) GetLbPolicy() isDynamicEndpointGroupConfig_LbPolicy { + if m != nil { + return m.LbPolicy + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetLeastRequest() *LBPolicyLeastRequest { + if x, ok := x.GetLbPolicy().(*DynamicEndpointGroupConfig_LeastRequest); ok { + return x.LeastRequest + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetRoundRobin() *LBPolicyRoundRobin { + if x, ok := x.GetLbPolicy().(*DynamicEndpointGroupConfig_RoundRobin); ok { + return x.RoundRobin + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetRandom() *LBPolicyRandom { + if x, ok := x.GetLbPolicy().(*DynamicEndpointGroupConfig_Random); ok { + return x.Random + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetRingHash() *LBPolicyRingHash { + if x, ok := x.GetLbPolicy().(*DynamicEndpointGroupConfig_RingHash); ok { + return x.RingHash + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetMaglev() *LBPolicyMaglev { + if x, ok := x.GetLbPolicy().(*DynamicEndpointGroupConfig_Maglev); ok { + return x.Maglev + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetCircuitBreakers() *CircuitBreakers { + if x != nil { + return x.CircuitBreakers + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetOutlierDetection() *OutlierDetection { + if x != nil { + return x.OutlierDetection + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetUpstreamConnectionOptions() *UpstreamConnectionOptions { + if x != nil { + return x.UpstreamConnectionOptions + } + return nil +} + +func (x *DynamicEndpointGroupConfig) GetUseAltStatName() bool { + if x != nil { + return x.UseAltStatName + } + return false +} + +type isDynamicEndpointGroupConfig_LbPolicy interface { + isDynamicEndpointGroupConfig_LbPolicy() +} + +type DynamicEndpointGroupConfig_LeastRequest struct { + LeastRequest *LBPolicyLeastRequest `protobuf:"bytes,3,opt,name=least_request,json=leastRequest,proto3,oneof"` +} + +type DynamicEndpointGroupConfig_RoundRobin struct { + RoundRobin *LBPolicyRoundRobin `protobuf:"bytes,4,opt,name=round_robin,json=roundRobin,proto3,oneof"` +} + +type DynamicEndpointGroupConfig_Random struct { + Random *LBPolicyRandom `protobuf:"bytes,5,opt,name=random,proto3,oneof"` +} + +type DynamicEndpointGroupConfig_RingHash struct { + RingHash *LBPolicyRingHash `protobuf:"bytes,6,opt,name=ring_hash,json=ringHash,proto3,oneof"` +} + +type DynamicEndpointGroupConfig_Maglev struct { + Maglev *LBPolicyMaglev `protobuf:"bytes,7,opt,name=maglev,proto3,oneof"` +} + +func (*DynamicEndpointGroupConfig_LeastRequest) isDynamicEndpointGroupConfig_LbPolicy() {} + +func (*DynamicEndpointGroupConfig_RoundRobin) isDynamicEndpointGroupConfig_LbPolicy() {} + +func (*DynamicEndpointGroupConfig_Random) isDynamicEndpointGroupConfig_LbPolicy() {} + +func (*DynamicEndpointGroupConfig_RingHash) isDynamicEndpointGroupConfig_LbPolicy() {} + +func (*DynamicEndpointGroupConfig_Maglev) isDynamicEndpointGroupConfig_LbPolicy() {} + +type LBPolicyLeastRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChoiceCount *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=choice_count,json=choiceCount,proto3" json:"choice_count,omitempty"` +} + +func (x *LBPolicyLeastRequest) Reset() { + *x = LBPolicyLeastRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LBPolicyLeastRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LBPolicyLeastRequest) ProtoMessage() {} + +func (x *LBPolicyLeastRequest) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LBPolicyLeastRequest.ProtoReflect.Descriptor instead. +func (*LBPolicyLeastRequest) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{13} +} + +func (x *LBPolicyLeastRequest) GetChoiceCount() *wrapperspb.UInt32Value { + if x != nil { + return x.ChoiceCount + } + return nil +} + +type LBPolicyRoundRobin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LBPolicyRoundRobin) Reset() { + *x = LBPolicyRoundRobin{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LBPolicyRoundRobin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LBPolicyRoundRobin) ProtoMessage() {} + +func (x *LBPolicyRoundRobin) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LBPolicyRoundRobin.ProtoReflect.Descriptor instead. +func (*LBPolicyRoundRobin) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{14} +} + +type LBPolicyRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LBPolicyRandom) Reset() { + *x = LBPolicyRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LBPolicyRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LBPolicyRandom) ProtoMessage() {} + +func (x *LBPolicyRandom) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LBPolicyRandom.ProtoReflect.Descriptor instead. +func (*LBPolicyRandom) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{15} +} + +type LBPolicyRingHash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinimumRingSize *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=minimum_ring_size,json=minimumRingSize,proto3" json:"minimum_ring_size,omitempty"` + MaximumRingSize *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=maximum_ring_size,json=maximumRingSize,proto3" json:"maximum_ring_size,omitempty"` +} + +func (x *LBPolicyRingHash) Reset() { + *x = LBPolicyRingHash{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LBPolicyRingHash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LBPolicyRingHash) ProtoMessage() {} + +func (x *LBPolicyRingHash) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LBPolicyRingHash.ProtoReflect.Descriptor instead. +func (*LBPolicyRingHash) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{16} +} + +func (x *LBPolicyRingHash) GetMinimumRingSize() *wrapperspb.UInt64Value { + if x != nil { + return x.MinimumRingSize + } + return nil +} + +func (x *LBPolicyRingHash) GetMaximumRingSize() *wrapperspb.UInt64Value { + if x != nil { + return x.MaximumRingSize + } + return nil +} + +type LBPolicyMaglev struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LBPolicyMaglev) Reset() { + *x = LBPolicyMaglev{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LBPolicyMaglev) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LBPolicyMaglev) ProtoMessage() {} + +func (x *LBPolicyMaglev) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LBPolicyMaglev.ProtoReflect.Descriptor instead. +func (*LBPolicyMaglev) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{17} +} + +type CircuitBreakers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UpstreamLimits *UpstreamLimits `protobuf:"bytes,1,opt,name=upstream_limits,json=upstreamLimits,proto3" json:"upstream_limits,omitempty"` +} + +func (x *CircuitBreakers) Reset() { + *x = CircuitBreakers{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CircuitBreakers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CircuitBreakers) ProtoMessage() {} + +func (x *CircuitBreakers) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CircuitBreakers.ProtoReflect.Descriptor instead. +func (*CircuitBreakers) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{18} +} + +func (x *CircuitBreakers) GetUpstreamLimits() *UpstreamLimits { + if x != nil { + return x.UpstreamLimits + } + return nil +} + +type OutlierDetection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"` + Consecutive_5Xx *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=consecutive_5xx,json=consecutive5xx,proto3" json:"consecutive_5xx,omitempty"` + EnforcingConsecutive_5Xx *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=enforcing_consecutive_5xx,json=enforcingConsecutive5xx,proto3" json:"enforcing_consecutive_5xx,omitempty"` + MaxEjectionPercent *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=max_ejection_percent,json=maxEjectionPercent,proto3" json:"max_ejection_percent,omitempty"` + BaseEjectionTime *durationpb.Duration `protobuf:"bytes,5,opt,name=base_ejection_time,json=baseEjectionTime,proto3" json:"base_ejection_time,omitempty"` +} + +func (x *OutlierDetection) Reset() { + *x = OutlierDetection{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutlierDetection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutlierDetection) ProtoMessage() {} + +func (x *OutlierDetection) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutlierDetection.ProtoReflect.Descriptor instead. +func (*OutlierDetection) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{19} +} + +func (x *OutlierDetection) GetInterval() *durationpb.Duration { + if x != nil { + return x.Interval + } + return nil +} + +func (x *OutlierDetection) GetConsecutive_5Xx() *wrapperspb.UInt32Value { + if x != nil { + return x.Consecutive_5Xx + } + return nil +} + +func (x *OutlierDetection) GetEnforcingConsecutive_5Xx() *wrapperspb.UInt32Value { + if x != nil { + return x.EnforcingConsecutive_5Xx + } + return nil +} + +func (x *OutlierDetection) GetMaxEjectionPercent() *wrapperspb.UInt32Value { + if x != nil { + return x.MaxEjectionPercent + } + return nil +} + +func (x *OutlierDetection) GetBaseEjectionTime() *durationpb.Duration { + if x != nil { + return x.BaseEjectionTime + } + return nil +} + +type UpstreamConnectionOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TcpKeepaliveTime *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=tcp_keepalive_time,json=tcpKeepaliveTime,proto3" json:"tcp_keepalive_time,omitempty"` + TcpKeepaliveInterval *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=tcp_keepalive_interval,json=tcpKeepaliveInterval,proto3" json:"tcp_keepalive_interval,omitempty"` + TcpKeepaliveProbes *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=tcp_keepalive_probes,json=tcpKeepaliveProbes,proto3" json:"tcp_keepalive_probes,omitempty"` +} + +func (x *UpstreamConnectionOptions) Reset() { + *x = UpstreamConnectionOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpstreamConnectionOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpstreamConnectionOptions) ProtoMessage() {} + +func (x *UpstreamConnectionOptions) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpstreamConnectionOptions.ProtoReflect.Descriptor instead. +func (*UpstreamConnectionOptions) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{20} +} + +func (x *UpstreamConnectionOptions) GetTcpKeepaliveTime() *wrapperspb.UInt32Value { + if x != nil { + return x.TcpKeepaliveTime + } + return nil +} + +func (x *UpstreamConnectionOptions) GetTcpKeepaliveInterval() *wrapperspb.UInt32Value { + if x != nil { + return x.TcpKeepaliveInterval + } + return nil +} + +func (x *UpstreamConnectionOptions) GetTcpKeepaliveProbes() *wrapperspb.UInt32Value { + if x != nil { + return x.TcpKeepaliveProbes + } + return nil +} + +type PassthroughEndpointGroupConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConnectTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` +} + +func (x *PassthroughEndpointGroupConfig) Reset() { + *x = PassthroughEndpointGroupConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PassthroughEndpointGroupConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PassthroughEndpointGroupConfig) ProtoMessage() {} + +func (x *PassthroughEndpointGroupConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PassthroughEndpointGroupConfig.ProtoReflect.Descriptor instead. +func (*PassthroughEndpointGroupConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{21} +} + +func (x *PassthroughEndpointGroupConfig) GetConnectTimeout() *durationpb.Duration { + if x != nil { + return x.ConnectTimeout + } + return nil +} + +type DNSEndpointGroupConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConnectTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` + DisablePanicThreshold bool `protobuf:"varint,2,opt,name=disable_panic_threshold,json=disablePanicThreshold,proto3" json:"disable_panic_threshold,omitempty"` + DiscoveryType DiscoveryType `protobuf:"varint,3,opt,name=discovery_type,json=discoveryType,proto3,enum=hashicorp.consul.mesh.v1alpha1.DiscoveryType" json:"discovery_type,omitempty"` + CircuitBreakers *CircuitBreakers `protobuf:"bytes,4,opt,name=circuit_breakers,json=circuitBreakers,proto3" json:"circuit_breakers,omitempty"` + OutlierDetection *OutlierDetection `protobuf:"bytes,5,opt,name=outlier_detection,json=outlierDetection,proto3" json:"outlier_detection,omitempty"` + UpstreamConnectionOptions *UpstreamConnectionOptions `protobuf:"bytes,6,opt,name=upstream_connection_options,json=upstreamConnectionOptions,proto3" json:"upstream_connection_options,omitempty"` + UseAltStatName bool `protobuf:"varint,7,opt,name=use_alt_stat_name,json=useAltStatName,proto3" json:"use_alt_stat_name,omitempty"` +} + +func (x *DNSEndpointGroupConfig) Reset() { + *x = DNSEndpointGroupConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DNSEndpointGroupConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DNSEndpointGroupConfig) ProtoMessage() {} + +func (x *DNSEndpointGroupConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DNSEndpointGroupConfig.ProtoReflect.Descriptor instead. +func (*DNSEndpointGroupConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{22} +} + +func (x *DNSEndpointGroupConfig) GetConnectTimeout() *durationpb.Duration { + if x != nil { + return x.ConnectTimeout + } + return nil +} + +func (x *DNSEndpointGroupConfig) GetDisablePanicThreshold() bool { + if x != nil { + return x.DisablePanicThreshold + } + return false +} + +func (x *DNSEndpointGroupConfig) GetDiscoveryType() DiscoveryType { + if x != nil { + return x.DiscoveryType + } + return DiscoveryType_DISCOVERY_TYPE_LOGICAL +} + +func (x *DNSEndpointGroupConfig) GetCircuitBreakers() *CircuitBreakers { + if x != nil { + return x.CircuitBreakers + } + return nil +} + +func (x *DNSEndpointGroupConfig) GetOutlierDetection() *OutlierDetection { + if x != nil { + return x.OutlierDetection + } + return nil +} + +func (x *DNSEndpointGroupConfig) GetUpstreamConnectionOptions() *UpstreamConnectionOptions { + if x != nil { + return x.UpstreamConnectionOptions + } + return nil +} + +func (x *DNSEndpointGroupConfig) GetUseAltStatName() bool { + if x != nil { + return x.UseAltStatName + } + return false +} + +type StaticEndpointGroupConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConnectTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=connect_timeout,json=connectTimeout,proto3" json:"connect_timeout,omitempty"` + CircuitBreakers *CircuitBreakers `protobuf:"bytes,2,opt,name=circuit_breakers,json=circuitBreakers,proto3" json:"circuit_breakers,omitempty"` +} + +func (x *StaticEndpointGroupConfig) Reset() { + *x = StaticEndpointGroupConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StaticEndpointGroupConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticEndpointGroupConfig) ProtoMessage() {} + +func (x *StaticEndpointGroupConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_cluster_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StaticEndpointGroupConfig.ProtoReflect.Descriptor instead. +func (*StaticEndpointGroupConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP(), []int{23} +} + +func (x *StaticEndpointGroupConfig) GetConnectTimeout() *durationpb.Duration { + if x != nil { + return x.ConnectTimeout + } + return nil +} + +func (x *StaticEndpointGroupConfig) GetCircuitBreakers() *CircuitBreakers { + if x != nil { + return x.CircuitBreakers + } + return nil +} + +var File_pbmesh_v1alpha1_cluster_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_cluster_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 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, + 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, + 0x26, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x2d, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, + 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0e, 0x66, 0x61, + 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x56, 0x0a, 0x0e, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x73, + 0x63, 0x61, 0x70, 0x65, 0x5f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, + 0x73, 0x63, 0x61, 0x70, 0x65, 0x48, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xc8, + 0x01, 0x0a, 0x0d, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x4b, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x61, + 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x84, 0x01, 0x0a, 0x13, 0x46, 0x61, + 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x29, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, + 0x65, 0x41, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0f, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 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, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x22, 0xdd, 0x02, 0x0a, 0x0d, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x50, 0x0a, 0x07, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x07, 0x64, 0x79, 0x6e, + 0x61, 0x6d, 0x69, 0x63, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x4e, 0x53, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x48, 0x00, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x0b, 0x70, 0x61, 0x73, + 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x22, 0xd2, 0x01, 0x0a, 0x14, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x52, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x6c, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x54, 0x6c, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, + 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, + 0x6c, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x10, 0x44, 0x4e, 0x53, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x4e, 0x53, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x0a, 0x0c, 0x6f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6c, 0x73, 0x22, + 0x7c, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x72, 0x0a, + 0x16, 0x4c, 0x34, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x58, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x68, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, + 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x34, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x65, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x22, 0x72, 0x0a, 0x16, 0x4c, 0x37, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x58, 0x0a, 0x08, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x37, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x68, 0x0a, 0x1c, 0x4c, 0x34, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x65, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, + 0xc3, 0x01, 0x0a, 0x1c, 0x4c, 0x37, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9f, 0x07, 0x0a, 0x1a, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 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, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x12, 0x5b, 0x0a, 0x0d, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x0c, 0x6c, 0x65, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, + 0x0b, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x6f, 0x62, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x6f, 0x62, 0x69, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x4f, + 0x0a, 0x09, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x48, + 0x61, 0x73, 0x68, 0x48, 0x00, 0x52, 0x08, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x48, 0x0a, 0x06, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x48, + 0x00, 0x52, 0x06, 0x6d, 0x61, 0x67, 0x6c, 0x65, 0x76, 0x12, 0x5a, 0x0a, 0x10, 0x63, 0x69, 0x72, + 0x63, 0x75, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, + 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, + 0x61, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x79, 0x0a, 0x1b, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x68, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, + 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x19, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x29, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x41, + 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x6c, 0x62, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x57, 0x0a, 0x14, 0x4c, 0x42, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4c, 0x65, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x52, 0x6f, 0x62, 0x69, 0x6e, 0x22, 0x10, 0x0a, 0x0e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0xa6, 0x01, 0x0a, 0x10, 0x4c, 0x42, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x48, 0x0a, + 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, + 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x7a, + 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x4c, 0x42, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x61, 0x67, + 0x6c, 0x65, 0x76, 0x22, 0x6a, 0x0a, 0x0f, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, + 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x0f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, + 0x0e, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, + 0x83, 0x03, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 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, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x0f, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, + 0x78, 0x78, 0x12, 0x58, 0x0a, 0x19, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x17, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x12, 0x4e, 0x0a, 0x14, + 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x45, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x12, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 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, 0x10, 0x62, 0x61, 0x73, 0x65, 0x45, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8b, 0x02, 0x0a, 0x19, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, + 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x74, + 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x52, 0x0a, 0x16, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x74, + 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x12, 0x4e, 0x0a, 0x14, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, + 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x12, 0x74, 0x63, 0x70, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x62, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x1e, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x5f, 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, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xcb, 0x04, 0x0a, 0x16, 0x44, 0x4e, + 0x53, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 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, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x12, 0x54, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x10, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, + 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, + 0x73, 0x52, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, + 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, + 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x10, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x79, 0x0a, 0x1b, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x19, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x11, + 0x75, 0x73, 0x65, 0x5f, 0x61, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x5f, 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, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x5a, 0x0a, 0x10, 0x63, 0x69, 0x72, + 0x63, 0x75, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, 0x61, + 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72, 0x65, + 0x61, 0x6b, 0x65, 0x72, 0x73, 0x2a, 0x46, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, + 0x45, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, + 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x10, 0x01, 0x42, 0x94, 0x02, + 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, + 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, + 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, + 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_cluster_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_cluster_proto_rawDescData = file_pbmesh_v1alpha1_cluster_proto_rawDesc +) + +func file_pbmesh_v1alpha1_cluster_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_cluster_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_cluster_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_cluster_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_cluster_proto_rawDescData +} + +var file_pbmesh_v1alpha1_cluster_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pbmesh_v1alpha1_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_pbmesh_v1alpha1_cluster_proto_goTypes = []interface{}{ + (DiscoveryType)(0), // 0: hashicorp.consul.mesh.v1alpha1.DiscoveryType + (*Cluster)(nil), // 1: hashicorp.consul.mesh.v1alpha1.Cluster + (*FailoverGroup)(nil), // 2: hashicorp.consul.mesh.v1alpha1.FailoverGroup + (*FailoverGroupConfig)(nil), // 3: hashicorp.consul.mesh.v1alpha1.FailoverGroupConfig + (*EndpointGroup)(nil), // 4: hashicorp.consul.mesh.v1alpha1.EndpointGroup + (*DynamicEndpointGroup)(nil), // 5: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroup + (*PassthroughEndpointGroup)(nil), // 6: hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroup + (*DNSEndpointGroup)(nil), // 7: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroup + (*StaticEndpointGroup)(nil), // 8: hashicorp.consul.mesh.v1alpha1.StaticEndpointGroup + (*L4WeightedClusterGroup)(nil), // 9: hashicorp.consul.mesh.v1alpha1.L4WeightedClusterGroup + (*L7WeightedClusterGroup)(nil), // 10: hashicorp.consul.mesh.v1alpha1.L7WeightedClusterGroup + (*L4WeightedDestinationCluster)(nil), // 11: hashicorp.consul.mesh.v1alpha1.L4WeightedDestinationCluster + (*L7WeightedDestinationCluster)(nil), // 12: hashicorp.consul.mesh.v1alpha1.L7WeightedDestinationCluster + (*DynamicEndpointGroupConfig)(nil), // 13: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig + (*LBPolicyLeastRequest)(nil), // 14: hashicorp.consul.mesh.v1alpha1.LBPolicyLeastRequest + (*LBPolicyRoundRobin)(nil), // 15: hashicorp.consul.mesh.v1alpha1.LBPolicyRoundRobin + (*LBPolicyRandom)(nil), // 16: hashicorp.consul.mesh.v1alpha1.LBPolicyRandom + (*LBPolicyRingHash)(nil), // 17: hashicorp.consul.mesh.v1alpha1.LBPolicyRingHash + (*LBPolicyMaglev)(nil), // 18: hashicorp.consul.mesh.v1alpha1.LBPolicyMaglev + (*CircuitBreakers)(nil), // 19: hashicorp.consul.mesh.v1alpha1.CircuitBreakers + (*OutlierDetection)(nil), // 20: hashicorp.consul.mesh.v1alpha1.OutlierDetection + (*UpstreamConnectionOptions)(nil), // 21: hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions + (*PassthroughEndpointGroupConfig)(nil), // 22: hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroupConfig + (*DNSEndpointGroupConfig)(nil), // 23: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig + (*StaticEndpointGroupConfig)(nil), // 24: hashicorp.consul.mesh.v1alpha1.StaticEndpointGroupConfig + (*durationpb.Duration)(nil), // 25: google.protobuf.Duration + (*TransportSocket)(nil), // 26: hashicorp.consul.mesh.v1alpha1.TransportSocket + (*wrapperspb.UInt32Value)(nil), // 27: google.protobuf.UInt32Value + (*HeaderMutation)(nil), // 28: hashicorp.consul.mesh.v1alpha1.HeaderMutation + (*wrapperspb.UInt64Value)(nil), // 29: google.protobuf.UInt64Value + (*UpstreamLimits)(nil), // 30: hashicorp.consul.mesh.v1alpha1.UpstreamLimits +} +var file_pbmesh_v1alpha1_cluster_proto_depIdxs = []int32{ + 2, // 0: hashicorp.consul.mesh.v1alpha1.Cluster.failover_group:type_name -> hashicorp.consul.mesh.v1alpha1.FailoverGroup + 4, // 1: hashicorp.consul.mesh.v1alpha1.Cluster.endpoint_group:type_name -> hashicorp.consul.mesh.v1alpha1.EndpointGroup + 4, // 2: hashicorp.consul.mesh.v1alpha1.FailoverGroup.endpoint_groups:type_name -> hashicorp.consul.mesh.v1alpha1.EndpointGroup + 3, // 3: hashicorp.consul.mesh.v1alpha1.FailoverGroup.config:type_name -> hashicorp.consul.mesh.v1alpha1.FailoverGroupConfig + 25, // 4: hashicorp.consul.mesh.v1alpha1.FailoverGroupConfig.connect_timeout:type_name -> google.protobuf.Duration + 5, // 5: hashicorp.consul.mesh.v1alpha1.EndpointGroup.dynamic:type_name -> hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroup + 8, // 6: hashicorp.consul.mesh.v1alpha1.EndpointGroup.static:type_name -> hashicorp.consul.mesh.v1alpha1.StaticEndpointGroup + 7, // 7: hashicorp.consul.mesh.v1alpha1.EndpointGroup.dns:type_name -> hashicorp.consul.mesh.v1alpha1.DNSEndpointGroup + 6, // 8: hashicorp.consul.mesh.v1alpha1.EndpointGroup.passthrough:type_name -> hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroup + 13, // 9: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroup.config:type_name -> hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig + 26, // 10: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroup.outbound_tls:type_name -> hashicorp.consul.mesh.v1alpha1.TransportSocket + 22, // 11: hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroup.config:type_name -> hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroupConfig + 26, // 12: hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroup.outbound_tls:type_name -> hashicorp.consul.mesh.v1alpha1.TransportSocket + 23, // 13: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroup.config:type_name -> hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig + 26, // 14: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroup.outbound_tls:type_name -> hashicorp.consul.mesh.v1alpha1.TransportSocket + 24, // 15: hashicorp.consul.mesh.v1alpha1.StaticEndpointGroup.config:type_name -> hashicorp.consul.mesh.v1alpha1.StaticEndpointGroupConfig + 11, // 16: hashicorp.consul.mesh.v1alpha1.L4WeightedClusterGroup.clusters:type_name -> hashicorp.consul.mesh.v1alpha1.L4WeightedDestinationCluster + 12, // 17: hashicorp.consul.mesh.v1alpha1.L7WeightedClusterGroup.clusters:type_name -> hashicorp.consul.mesh.v1alpha1.L7WeightedDestinationCluster + 27, // 18: hashicorp.consul.mesh.v1alpha1.L4WeightedDestinationCluster.weight:type_name -> google.protobuf.UInt32Value + 27, // 19: hashicorp.consul.mesh.v1alpha1.L7WeightedDestinationCluster.weight:type_name -> google.protobuf.UInt32Value + 28, // 20: hashicorp.consul.mesh.v1alpha1.L7WeightedDestinationCluster.header_mutations:type_name -> hashicorp.consul.mesh.v1alpha1.HeaderMutation + 25, // 21: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.connect_timeout:type_name -> google.protobuf.Duration + 14, // 22: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.least_request:type_name -> hashicorp.consul.mesh.v1alpha1.LBPolicyLeastRequest + 15, // 23: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.round_robin:type_name -> hashicorp.consul.mesh.v1alpha1.LBPolicyRoundRobin + 16, // 24: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.random:type_name -> hashicorp.consul.mesh.v1alpha1.LBPolicyRandom + 17, // 25: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.ring_hash:type_name -> hashicorp.consul.mesh.v1alpha1.LBPolicyRingHash + 18, // 26: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.maglev:type_name -> hashicorp.consul.mesh.v1alpha1.LBPolicyMaglev + 19, // 27: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.circuit_breakers:type_name -> hashicorp.consul.mesh.v1alpha1.CircuitBreakers + 20, // 28: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.outlier_detection:type_name -> hashicorp.consul.mesh.v1alpha1.OutlierDetection + 21, // 29: hashicorp.consul.mesh.v1alpha1.DynamicEndpointGroupConfig.upstream_connection_options:type_name -> hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions + 27, // 30: hashicorp.consul.mesh.v1alpha1.LBPolicyLeastRequest.choice_count:type_name -> google.protobuf.UInt32Value + 29, // 31: hashicorp.consul.mesh.v1alpha1.LBPolicyRingHash.minimum_ring_size:type_name -> google.protobuf.UInt64Value + 29, // 32: hashicorp.consul.mesh.v1alpha1.LBPolicyRingHash.maximum_ring_size:type_name -> google.protobuf.UInt64Value + 30, // 33: hashicorp.consul.mesh.v1alpha1.CircuitBreakers.upstream_limits:type_name -> hashicorp.consul.mesh.v1alpha1.UpstreamLimits + 25, // 34: hashicorp.consul.mesh.v1alpha1.OutlierDetection.interval:type_name -> google.protobuf.Duration + 27, // 35: hashicorp.consul.mesh.v1alpha1.OutlierDetection.consecutive_5xx:type_name -> google.protobuf.UInt32Value + 27, // 36: hashicorp.consul.mesh.v1alpha1.OutlierDetection.enforcing_consecutive_5xx:type_name -> google.protobuf.UInt32Value + 27, // 37: hashicorp.consul.mesh.v1alpha1.OutlierDetection.max_ejection_percent:type_name -> google.protobuf.UInt32Value + 25, // 38: hashicorp.consul.mesh.v1alpha1.OutlierDetection.base_ejection_time:type_name -> google.protobuf.Duration + 27, // 39: hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions.tcp_keepalive_time:type_name -> google.protobuf.UInt32Value + 27, // 40: hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions.tcp_keepalive_interval:type_name -> google.protobuf.UInt32Value + 27, // 41: hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions.tcp_keepalive_probes:type_name -> google.protobuf.UInt32Value + 25, // 42: hashicorp.consul.mesh.v1alpha1.PassthroughEndpointGroupConfig.connect_timeout:type_name -> google.protobuf.Duration + 25, // 43: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig.connect_timeout:type_name -> google.protobuf.Duration + 0, // 44: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig.discovery_type:type_name -> hashicorp.consul.mesh.v1alpha1.DiscoveryType + 19, // 45: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig.circuit_breakers:type_name -> hashicorp.consul.mesh.v1alpha1.CircuitBreakers + 20, // 46: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig.outlier_detection:type_name -> hashicorp.consul.mesh.v1alpha1.OutlierDetection + 21, // 47: hashicorp.consul.mesh.v1alpha1.DNSEndpointGroupConfig.upstream_connection_options:type_name -> hashicorp.consul.mesh.v1alpha1.UpstreamConnectionOptions + 25, // 48: hashicorp.consul.mesh.v1alpha1.StaticEndpointGroupConfig.connect_timeout:type_name -> google.protobuf.Duration + 19, // 49: hashicorp.consul.mesh.v1alpha1.StaticEndpointGroupConfig.circuit_breakers:type_name -> hashicorp.consul.mesh.v1alpha1.CircuitBreakers + 50, // [50:50] is the sub-list for method output_type + 50, // [50:50] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_cluster_proto_init() } +func file_pbmesh_v1alpha1_cluster_proto_init() { + if File_pbmesh_v1alpha1_cluster_proto != nil { + return + } + file_pbmesh_v1alpha1_header_mutations_proto_init() + file_pbmesh_v1alpha1_transport_socket_proto_init() + file_pbmesh_v1alpha1_upstreams_configuration_proto_init() + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_cluster_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Cluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FailoverGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FailoverGroupConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EndpointGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DynamicEndpointGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PassthroughEndpointGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DNSEndpointGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StaticEndpointGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L4WeightedClusterGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L7WeightedClusterGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L4WeightedDestinationCluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L7WeightedDestinationCluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DynamicEndpointGroupConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LBPolicyLeastRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LBPolicyRoundRobin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LBPolicyRandom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LBPolicyRingHash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LBPolicyMaglev); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CircuitBreakers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutlierDetection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpstreamConnectionOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PassthroughEndpointGroupConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DNSEndpointGroupConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StaticEndpointGroupConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Cluster_FailoverGroup)(nil), + (*Cluster_EndpointGroup)(nil), + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*EndpointGroup_Dynamic)(nil), + (*EndpointGroup_Static)(nil), + (*EndpointGroup_Dns)(nil), + (*EndpointGroup_Passthrough)(nil), + } + file_pbmesh_v1alpha1_cluster_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*DynamicEndpointGroupConfig_LeastRequest)(nil), + (*DynamicEndpointGroupConfig_RoundRobin)(nil), + (*DynamicEndpointGroupConfig_Random)(nil), + (*DynamicEndpointGroupConfig_RingHash)(nil), + (*DynamicEndpointGroupConfig_Maglev)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_cluster_proto_rawDesc, + NumEnums: 1, + NumMessages: 24, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_cluster_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_cluster_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_cluster_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_cluster_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_cluster_proto = out.File + file_pbmesh_v1alpha1_cluster_proto_rawDesc = nil + file_pbmesh_v1alpha1_cluster_proto_goTypes = nil + file_pbmesh_v1alpha1_cluster_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/cluster.proto b/proto-public/pbmesh/v1alpha1/cluster.proto new file mode 100644 index 000000000000..7ad69e1d2cb3 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/cluster.proto @@ -0,0 +1,179 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; +import "pbmesh/v1alpha1/header_mutations.proto"; +import "pbmesh/v1alpha1/transport_socket.proto"; +import "pbmesh/v1alpha1/upstreams_configuration.proto"; + +message Cluster { + // group is either a failover group or endpoint group. If this cluster needs to failover to other clusters, use the failover group. If this cluster routes directly to endpoints, use the endpoint group. + oneof group { + FailoverGroup failover_group = 1; + EndpointGroup endpoint_group = 2; + } + // escape_hatch_cluster_json configures a user configured escape hatch cluster. + string escape_hatch_cluster_json = 3; +} + +message FailoverGroup { + // name of the failover group. + string name = 1; + // endpoint_groups is an ordered list of which groups to failover to. + repeated EndpointGroup endpoint_groups = 2; + FailoverGroupConfig config = 3; +} + +message FailoverGroupConfig { + bool use_alt_stat_name = 1; + google.protobuf.Duration connect_timeout = 2; +} + +message EndpointGroup { + oneof group { + // dynamic endpoint group is used to reach mesh destinations that are dynamically configured from Consul's catalog. + DynamicEndpointGroup dynamic = 1; + // static endpoint group is used to reach local app ports. + StaticEndpointGroup static = 2; + // dns is used to reach mesh and non-mesh destinations using a hostname. + DNSEndpointGroup dns = 3; + // passthrough is used to reach destinations that don't have endpoints saved in Consul. + PassthroughEndpointGroup passthrough = 4; + } +} + +message DynamicEndpointGroup { + // name will be the name of the Envoy cluster created by this endpoint group. + string name = 1; + // config configures how to connect to the endpoints. + DynamicEndpointGroupConfig config = 2; + // outbound_tls will configure what TLS information to use when connecting to an upstream. + TransportSocket outbound_tls = 3; +} + +message PassthroughEndpointGroup { + // name will be the name of the Envoy cluster created by this endpoint group. + string name = 1; + // config configures how to connect to the endpoints. + PassthroughEndpointGroupConfig config = 2; + // outbound_tls will configure what TLS information to use when connecting to an upstream. + TransportSocket outbound_tls = 3; +} + +message DNSEndpointGroup { + // name will be the name of the Envoy cluster created by this endpoint group. + string name = 1; + // config configures how to connect to the endpoints. + DNSEndpointGroupConfig config = 2; + // outbound_tls will configure what TLS information to use when connecting to an upstream. + TransportSocket outbound_tls = 3; +} + +// StaticEndpointGroup is used to reach local app ports. +message StaticEndpointGroup { + // name will be the name of the Envoy cluster created by this endpoint group. + string name = 1; + // config configures how to connect to the endpoints. + StaticEndpointGroupConfig config = 2; +} + +message L4WeightedClusterGroup { + // clusters to route to by weight. + repeated L4WeightedDestinationCluster clusters = 1; +} + +message L7WeightedClusterGroup { + // clusters to route to by weight. + repeated L7WeightedDestinationCluster clusters = 1; +} + +message L4WeightedDestinationCluster { + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + string name = 1; + google.protobuf.UInt32Value weight = 2; +} + +message L7WeightedDestinationCluster { + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + string name = 1; + google.protobuf.UInt32Value weight = 2; + repeated HeaderMutation header_mutations = 3; +} + +message DynamicEndpointGroupConfig { + google.protobuf.Duration connect_timeout = 1; + bool disable_panic_threshold = 2; + oneof lb_policy { + LBPolicyLeastRequest least_request = 3; + LBPolicyRoundRobin round_robin = 4; + LBPolicyRandom random = 5; + LBPolicyRingHash ring_hash = 6; + LBPolicyMaglev maglev = 7; + } + CircuitBreakers circuit_breakers = 8; + OutlierDetection outlier_detection = 9; + UpstreamConnectionOptions upstream_connection_options = 10; + bool use_alt_stat_name = 11; +} + +message LBPolicyLeastRequest { + google.protobuf.UInt32Value choice_count = 1; +} +message LBPolicyRoundRobin {} + +message LBPolicyRandom {} + +message LBPolicyRingHash { + google.protobuf.UInt64Value minimum_ring_size = 1; + google.protobuf.UInt64Value maximum_ring_size = 2; +} + +message LBPolicyMaglev {} + +message CircuitBreakers { + UpstreamLimits upstream_limits = 1; +} + +message OutlierDetection { + google.protobuf.Duration interval = 1; + google.protobuf.UInt32Value consecutive_5xx = 2; + google.protobuf.UInt32Value enforcing_consecutive_5xx = 3; + google.protobuf.UInt32Value max_ejection_percent = 4; + google.protobuf.Duration base_ejection_time = 5; +} + +message UpstreamConnectionOptions { + google.protobuf.UInt32Value tcp_keepalive_time = 1; + google.protobuf.UInt32Value tcp_keepalive_interval = 2; + google.protobuf.UInt32Value tcp_keepalive_probes = 3; +} + +message PassthroughEndpointGroupConfig { + google.protobuf.Duration connect_timeout = 1; +} + +message DNSEndpointGroupConfig { + google.protobuf.Duration connect_timeout = 1; + bool disable_panic_threshold = 2; + DiscoveryType discovery_type = 3; + CircuitBreakers circuit_breakers = 4; + OutlierDetection outlier_detection = 5; + UpstreamConnectionOptions upstream_connection_options = 6; + bool use_alt_stat_name = 7; +} + +enum DiscoveryType { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + DISCOVERY_TYPE_LOGICAL = 0; + DISCOVERY_TYPE_STRICT = 1; +} + +message StaticEndpointGroupConfig { + google.protobuf.Duration connect_timeout = 1; + CircuitBreakers circuit_breakers = 2; +} diff --git a/proto-public/pbmesh/v1alpha1/endpoints.pb.binary.go b/proto-public/pbmesh/v1alpha1/endpoints.pb.binary.go new file mode 100644 index 000000000000..1c1a405964c8 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/endpoints.pb.binary.go @@ -0,0 +1,28 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/endpoints.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Endpoints) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Endpoints) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Endpoint) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Endpoint) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/endpoints.pb.go b/proto-public/pbmesh/v1alpha1/endpoints.pb.go new file mode 100644 index 000000000000..a08e93e503f4 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/endpoints.pb.go @@ -0,0 +1,390 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/endpoints.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type HealthStatus int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + HealthStatus_HEALTH_STATUS_UNKNOWN HealthStatus = 0 + HealthStatus_HEALTH_STATUS_HEALTHY HealthStatus = 1 + HealthStatus_HEALTH_STATUS_UNHEALTHY HealthStatus = 2 +) + +// Enum value maps for HealthStatus. +var ( + HealthStatus_name = map[int32]string{ + 0: "HEALTH_STATUS_UNKNOWN", + 1: "HEALTH_STATUS_HEALTHY", + 2: "HEALTH_STATUS_UNHEALTHY", + } + HealthStatus_value = map[string]int32{ + "HEALTH_STATUS_UNKNOWN": 0, + "HEALTH_STATUS_HEALTHY": 1, + "HEALTH_STATUS_UNHEALTHY": 2, + } +) + +func (x HealthStatus) Enum() *HealthStatus { + p := new(HealthStatus) + *p = x + return p +} + +func (x HealthStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HealthStatus) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_endpoints_proto_enumTypes[0].Descriptor() +} + +func (HealthStatus) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_endpoints_proto_enumTypes[0] +} + +func (x HealthStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HealthStatus.Descriptor instead. +func (HealthStatus) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_endpoints_proto_rawDescGZIP(), []int{0} +} + +type Endpoints struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the Endpoints. This should match the cluster name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Endpoints []*Endpoint `protobuf:"bytes,2,rep,name=endpoints,proto3" json:"endpoints,omitempty"` +} + +func (x *Endpoints) Reset() { + *x = Endpoints{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_endpoints_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Endpoints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Endpoints) ProtoMessage() {} + +func (x *Endpoints) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_endpoints_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Endpoints.ProtoReflect.Descriptor instead. +func (*Endpoints) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_endpoints_proto_rawDescGZIP(), []int{0} +} + +func (x *Endpoints) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Endpoints) GetEndpoints() []*Endpoint { + if x != nil { + return x.Endpoints + } + return nil +} + +type Endpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Address: + // + // *Endpoint_HostPort + // *Endpoint_UnixSocket + Address isEndpoint_Address `protobuf_oneof:"address"` + HealthStatus HealthStatus `protobuf:"varint,3,opt,name=health_status,json=healthStatus,proto3,enum=hashicorp.consul.mesh.v1alpha1.HealthStatus" json:"health_status,omitempty"` + LoadBalancingWeight *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=load_balancing_weight,json=loadBalancingWeight,proto3" json:"load_balancing_weight,omitempty"` +} + +func (x *Endpoint) Reset() { + *x = Endpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_endpoints_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Endpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Endpoint) ProtoMessage() {} + +func (x *Endpoint) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_endpoints_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Endpoint.ProtoReflect.Descriptor instead. +func (*Endpoint) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_endpoints_proto_rawDescGZIP(), []int{1} +} + +func (m *Endpoint) GetAddress() isEndpoint_Address { + if m != nil { + return m.Address + } + return nil +} + +func (x *Endpoint) GetHostPort() *HostPortAddress { + if x, ok := x.GetAddress().(*Endpoint_HostPort); ok { + return x.HostPort + } + return nil +} + +func (x *Endpoint) GetUnixSocket() *UnixSocketAddress { + if x, ok := x.GetAddress().(*Endpoint_UnixSocket); ok { + return x.UnixSocket + } + return nil +} + +func (x *Endpoint) GetHealthStatus() HealthStatus { + if x != nil { + return x.HealthStatus + } + return HealthStatus_HEALTH_STATUS_UNKNOWN +} + +func (x *Endpoint) GetLoadBalancingWeight() *wrapperspb.UInt32Value { + if x != nil { + return x.LoadBalancingWeight + } + return nil +} + +type isEndpoint_Address interface { + isEndpoint_Address() +} + +type Endpoint_HostPort struct { + HostPort *HostPortAddress `protobuf:"bytes,1,opt,name=host_port,json=hostPort,proto3,oneof"` +} + +type Endpoint_UnixSocket struct { + UnixSocket *UnixSocketAddress `protobuf:"bytes,2,opt,name=unix_socket,json=unixSocket,proto3,oneof"` +} + +func (*Endpoint_HostPort) isEndpoint_Address() {} + +func (*Endpoint_UnixSocket) isEndpoint_Address() {} + +var File_pbmesh_v1alpha1_endpoints_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_endpoints_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 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, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1d, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x67, 0x0a, 0x09, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x08, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x78, 0x5f, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, + 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, + 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x51, 0x0a, + 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x50, 0x0a, 0x15, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, + 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6c, + 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2a, 0x61, 0x0a, + 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, + 0x15, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x4c, + 0x54, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, + 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, + 0x42, 0x96, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, + 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_pbmesh_v1alpha1_endpoints_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_endpoints_proto_rawDescData = file_pbmesh_v1alpha1_endpoints_proto_rawDesc +) + +func file_pbmesh_v1alpha1_endpoints_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_endpoints_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_endpoints_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_endpoints_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_endpoints_proto_rawDescData +} + +var file_pbmesh_v1alpha1_endpoints_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pbmesh_v1alpha1_endpoints_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pbmesh_v1alpha1_endpoints_proto_goTypes = []interface{}{ + (HealthStatus)(0), // 0: hashicorp.consul.mesh.v1alpha1.HealthStatus + (*Endpoints)(nil), // 1: hashicorp.consul.mesh.v1alpha1.Endpoints + (*Endpoint)(nil), // 2: hashicorp.consul.mesh.v1alpha1.Endpoint + (*HostPortAddress)(nil), // 3: hashicorp.consul.mesh.v1alpha1.HostPortAddress + (*UnixSocketAddress)(nil), // 4: hashicorp.consul.mesh.v1alpha1.UnixSocketAddress + (*wrapperspb.UInt32Value)(nil), // 5: google.protobuf.UInt32Value +} +var file_pbmesh_v1alpha1_endpoints_proto_depIdxs = []int32{ + 2, // 0: hashicorp.consul.mesh.v1alpha1.Endpoints.endpoints:type_name -> hashicorp.consul.mesh.v1alpha1.Endpoint + 3, // 1: hashicorp.consul.mesh.v1alpha1.Endpoint.host_port:type_name -> hashicorp.consul.mesh.v1alpha1.HostPortAddress + 4, // 2: hashicorp.consul.mesh.v1alpha1.Endpoint.unix_socket:type_name -> hashicorp.consul.mesh.v1alpha1.UnixSocketAddress + 0, // 3: hashicorp.consul.mesh.v1alpha1.Endpoint.health_status:type_name -> hashicorp.consul.mesh.v1alpha1.HealthStatus + 5, // 4: hashicorp.consul.mesh.v1alpha1.Endpoint.load_balancing_weight:type_name -> google.protobuf.UInt32Value + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_endpoints_proto_init() } +func file_pbmesh_v1alpha1_endpoints_proto_init() { + if File_pbmesh_v1alpha1_endpoints_proto != nil { + return + } + file_pbmesh_v1alpha1_address_proto_init() + file_pbmesh_v1alpha1_upstreams_proto_init() + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_endpoints_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Endpoints); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_endpoints_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Endpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_endpoints_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*Endpoint_HostPort)(nil), + (*Endpoint_UnixSocket)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_endpoints_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_endpoints_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_endpoints_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_endpoints_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_endpoints_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_endpoints_proto = out.File + file_pbmesh_v1alpha1_endpoints_proto_rawDesc = nil + file_pbmesh_v1alpha1_endpoints_proto_goTypes = nil + file_pbmesh_v1alpha1_endpoints_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/endpoints.proto b/proto-public/pbmesh/v1alpha1/endpoints.proto new file mode 100644 index 000000000000..8e81911046da --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/endpoints.proto @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "google/protobuf/wrappers.proto"; +import "pbmesh/v1alpha1/address.proto"; +import "pbmesh/v1alpha1/upstreams.proto"; + +message Endpoints { + // name is the name of the Endpoints. This should match the cluster name. + string name = 1; + repeated Endpoint endpoints = 2; +} + +message Endpoint { + oneof address { + HostPortAddress host_port = 1; + UnixSocketAddress unix_socket = 2; + } + HealthStatus health_status = 3; + google.protobuf.UInt32Value load_balancing_weight = 4; +} + +enum HealthStatus { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + HEALTH_STATUS_UNKNOWN = 0; + HEALTH_STATUS_HEALTHY = 1; + HEALTH_STATUS_UNHEALTHY = 2; +} diff --git a/proto-public/pbmesh/v1alpha1/escape_hatches.pb.binary.go b/proto-public/pbmesh/v1alpha1/escape_hatches.pb.binary.go new file mode 100644 index 000000000000..3f7c6f16c33b --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/escape_hatches.pb.binary.go @@ -0,0 +1,18 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/escape_hatches.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *EscapeHatches) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *EscapeHatches) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/escape_hatches.pb.go b/proto-public/pbmesh/v1alpha1/escape_hatches.pb.go new file mode 100644 index 000000000000..290616f625e8 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/escape_hatches.pb.go @@ -0,0 +1,167 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/escape_hatches.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EscapeHatches struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // listener_tracing_json contains user provided tracing configuration. + ListenerTracingJson string `protobuf:"bytes,1,opt,name=listener_tracing_json,json=listenerTracingJson,proto3" json:"listener_tracing_json,omitempty"` +} + +func (x *EscapeHatches) Reset() { + *x = EscapeHatches{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_escape_hatches_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EscapeHatches) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EscapeHatches) ProtoMessage() {} + +func (x *EscapeHatches) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_escape_hatches_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EscapeHatches.ProtoReflect.Descriptor instead. +func (*EscapeHatches) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_escape_hatches_proto_rawDescGZIP(), []int{0} +} + +func (x *EscapeHatches) GetListenerTracingJson() string { + if x != nil { + return x.ListenerTracingJson + } + return "" +} + +var File_pbmesh_v1alpha1_escape_hatches_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_escape_hatches_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0x43, 0x0a, 0x0d, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, + 0x48, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x9a, 0x02, 0x0a, 0x22, + 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x12, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x48, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_escape_hatches_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_escape_hatches_proto_rawDescData = file_pbmesh_v1alpha1_escape_hatches_proto_rawDesc +) + +func file_pbmesh_v1alpha1_escape_hatches_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_escape_hatches_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_escape_hatches_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_escape_hatches_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_escape_hatches_proto_rawDescData +} + +var file_pbmesh_v1alpha1_escape_hatches_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_pbmesh_v1alpha1_escape_hatches_proto_goTypes = []interface{}{ + (*EscapeHatches)(nil), // 0: hashicorp.consul.mesh.v1alpha1.EscapeHatches +} +var file_pbmesh_v1alpha1_escape_hatches_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_escape_hatches_proto_init() } +func file_pbmesh_v1alpha1_escape_hatches_proto_init() { + if File_pbmesh_v1alpha1_escape_hatches_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_escape_hatches_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EscapeHatches); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_escape_hatches_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_escape_hatches_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_escape_hatches_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_escape_hatches_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_escape_hatches_proto = out.File + file_pbmesh_v1alpha1_escape_hatches_proto_rawDesc = nil + file_pbmesh_v1alpha1_escape_hatches_proto_goTypes = nil + file_pbmesh_v1alpha1_escape_hatches_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/escape_hatches.proto b/proto-public/pbmesh/v1alpha1/escape_hatches.proto new file mode 100644 index 000000000000..cfd855393172 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/escape_hatches.proto @@ -0,0 +1,11 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +message EscapeHatches { + // listener_tracing_json contains user provided tracing configuration. + string listener_tracing_json = 1; +} diff --git a/proto-public/pbmesh/v1alpha1/header_mutations.pb.binary.go b/proto-public/pbmesh/v1alpha1/header_mutations.pb.binary.go new file mode 100644 index 000000000000..6655d37183e6 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/header_mutations.pb.binary.go @@ -0,0 +1,68 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/header_mutations.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *HeaderMutation) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *HeaderMutation) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RequestHeaderAdd) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RequestHeaderAdd) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RequestHeaderRemove) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RequestHeaderRemove) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *ResponseHeaderAdd) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *ResponseHeaderAdd) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *ResponseHeaderRemove) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *ResponseHeaderRemove) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Header) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Header) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/header_mutations.pb.go b/proto-public/pbmesh/v1alpha1/header_mutations.pb.go new file mode 100644 index 000000000000..28d8fbe020e3 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/header_mutations.pb.go @@ -0,0 +1,681 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/header_mutations.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AppendAction int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + AppendAction_APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD AppendAction = 0 + AppendAction_APPEND_ACTION_OVERWRITE_IF_EXISTS_OR_ADD AppendAction = 1 +) + +// Enum value maps for AppendAction. +var ( + AppendAction_name = map[int32]string{ + 0: "APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD", + 1: "APPEND_ACTION_OVERWRITE_IF_EXISTS_OR_ADD", + } + AppendAction_value = map[string]int32{ + "APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD": 0, + "APPEND_ACTION_OVERWRITE_IF_EXISTS_OR_ADD": 1, + } +) + +func (x AppendAction) Enum() *AppendAction { + p := new(AppendAction) + *p = x + return p +} + +func (x AppendAction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AppendAction) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_header_mutations_proto_enumTypes[0].Descriptor() +} + +func (AppendAction) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_header_mutations_proto_enumTypes[0] +} + +func (x AppendAction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AppendAction.Descriptor instead. +func (AppendAction) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{0} +} + +// Note: it's nice to have this list of header mutations as opposed to configuration similar to Envoy because it +// translates more nicely from GAMMA HTTPRoute, and our existing service router config. Then xds code can handle turning +// it into envoy xds. +type HeaderMutation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Action: + // + // *HeaderMutation_RequestHeaderAdd + // *HeaderMutation_RequestHeaderRemove + // *HeaderMutation_ResponseHeaderAdd + // *HeaderMutation_ResponseHeaderRemove + Action isHeaderMutation_Action `protobuf_oneof:"action"` +} + +func (x *HeaderMutation) Reset() { + *x = HeaderMutation{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeaderMutation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeaderMutation) ProtoMessage() {} + +func (x *HeaderMutation) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeaderMutation.ProtoReflect.Descriptor instead. +func (*HeaderMutation) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{0} +} + +func (m *HeaderMutation) GetAction() isHeaderMutation_Action { + if m != nil { + return m.Action + } + return nil +} + +func (x *HeaderMutation) GetRequestHeaderAdd() *RequestHeaderAdd { + if x, ok := x.GetAction().(*HeaderMutation_RequestHeaderAdd); ok { + return x.RequestHeaderAdd + } + return nil +} + +func (x *HeaderMutation) GetRequestHeaderRemove() *RequestHeaderRemove { + if x, ok := x.GetAction().(*HeaderMutation_RequestHeaderRemove); ok { + return x.RequestHeaderRemove + } + return nil +} + +func (x *HeaderMutation) GetResponseHeaderAdd() *ResponseHeaderAdd { + if x, ok := x.GetAction().(*HeaderMutation_ResponseHeaderAdd); ok { + return x.ResponseHeaderAdd + } + return nil +} + +func (x *HeaderMutation) GetResponseHeaderRemove() *ResponseHeaderRemove { + if x, ok := x.GetAction().(*HeaderMutation_ResponseHeaderRemove); ok { + return x.ResponseHeaderRemove + } + return nil +} + +type isHeaderMutation_Action interface { + isHeaderMutation_Action() +} + +type HeaderMutation_RequestHeaderAdd struct { + RequestHeaderAdd *RequestHeaderAdd `protobuf:"bytes,1,opt,name=request_header_add,json=requestHeaderAdd,proto3,oneof"` +} + +type HeaderMutation_RequestHeaderRemove struct { + RequestHeaderRemove *RequestHeaderRemove `protobuf:"bytes,2,opt,name=request_header_remove,json=requestHeaderRemove,proto3,oneof"` +} + +type HeaderMutation_ResponseHeaderAdd struct { + ResponseHeaderAdd *ResponseHeaderAdd `protobuf:"bytes,3,opt,name=response_header_add,json=responseHeaderAdd,proto3,oneof"` +} + +type HeaderMutation_ResponseHeaderRemove struct { + ResponseHeaderRemove *ResponseHeaderRemove `protobuf:"bytes,4,opt,name=response_header_remove,json=responseHeaderRemove,proto3,oneof"` +} + +func (*HeaderMutation_RequestHeaderAdd) isHeaderMutation_Action() {} + +func (*HeaderMutation_RequestHeaderRemove) isHeaderMutation_Action() {} + +func (*HeaderMutation_ResponseHeaderAdd) isHeaderMutation_Action() {} + +func (*HeaderMutation_ResponseHeaderRemove) isHeaderMutation_Action() {} + +type RequestHeaderAdd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + AppendAction AppendAction `protobuf:"varint,2,opt,name=append_action,json=appendAction,proto3,enum=hashicorp.consul.mesh.v1alpha1.AppendAction" json:"append_action,omitempty"` +} + +func (x *RequestHeaderAdd) Reset() { + *x = RequestHeaderAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestHeaderAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestHeaderAdd) ProtoMessage() {} + +func (x *RequestHeaderAdd) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestHeaderAdd.ProtoReflect.Descriptor instead. +func (*RequestHeaderAdd) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{1} +} + +func (x *RequestHeaderAdd) GetHeader() *Header { + if x != nil { + return x.Header + } + return nil +} + +func (x *RequestHeaderAdd) GetAppendAction() AppendAction { + if x != nil { + return x.AppendAction + } + return AppendAction_APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD +} + +type RequestHeaderRemove struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeaderKeys []string `protobuf:"bytes,1,rep,name=header_keys,json=headerKeys,proto3" json:"header_keys,omitempty"` +} + +func (x *RequestHeaderRemove) Reset() { + *x = RequestHeaderRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestHeaderRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestHeaderRemove) ProtoMessage() {} + +func (x *RequestHeaderRemove) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestHeaderRemove.ProtoReflect.Descriptor instead. +func (*RequestHeaderRemove) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{2} +} + +func (x *RequestHeaderRemove) GetHeaderKeys() []string { + if x != nil { + return x.HeaderKeys + } + return nil +} + +type ResponseHeaderAdd struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + AppendAction AppendAction `protobuf:"varint,2,opt,name=append_action,json=appendAction,proto3,enum=hashicorp.consul.mesh.v1alpha1.AppendAction" json:"append_action,omitempty"` +} + +func (x *ResponseHeaderAdd) Reset() { + *x = ResponseHeaderAdd{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseHeaderAdd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseHeaderAdd) ProtoMessage() {} + +func (x *ResponseHeaderAdd) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseHeaderAdd.ProtoReflect.Descriptor instead. +func (*ResponseHeaderAdd) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{3} +} + +func (x *ResponseHeaderAdd) GetHeader() *Header { + if x != nil { + return x.Header + } + return nil +} + +func (x *ResponseHeaderAdd) GetAppendAction() AppendAction { + if x != nil { + return x.AppendAction + } + return AppendAction_APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD +} + +type ResponseHeaderRemove struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeaderKeys []string `protobuf:"bytes,1,rep,name=header_keys,json=headerKeys,proto3" json:"header_keys,omitempty"` +} + +func (x *ResponseHeaderRemove) Reset() { + *x = ResponseHeaderRemove{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseHeaderRemove) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseHeaderRemove) ProtoMessage() {} + +func (x *ResponseHeaderRemove) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseHeaderRemove.ProtoReflect.Descriptor instead. +func (*ResponseHeaderRemove) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{4} +} + +func (x *ResponseHeaderRemove) GetHeaderKeys() []string { + if x != nil { + return x.HeaderKeys + } + return nil +} + +type Header struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Header) Reset() { + *x = Header{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Header) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Header) ProtoMessage() {} + +func (x *Header) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Header.ProtoReflect.Descriptor instead. +func (*Header) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP(), []int{5} +} + +func (x *Header) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *Header) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +var File_pbmesh_v1alpha1_header_mutations_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_header_mutations_proto_rawDesc = []byte{ + 0x0a, 0x26, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0xba, 0x03, 0x0a, 0x0e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x12, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x69, 0x0a, + 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x6c, 0x0a, + 0x16, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0c, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, + 0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0c, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, + 0x0a, 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x30, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 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, 0x2a, 0x67, 0x0a, 0x0c, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x50, + 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x50, 0x45, 0x4e, + 0x44, 0x5f, 0x49, 0x46, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x41, + 0x44, 0x44, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x50, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x49, 0x46, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x5f, 0x4f, 0x52, 0x5f, 0x41, 0x44, 0x44, + 0x10, 0x01, 0x42, 0x9c, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x14, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, + 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, + 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, + 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, + 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_header_mutations_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_header_mutations_proto_rawDescData = file_pbmesh_v1alpha1_header_mutations_proto_rawDesc +) + +func file_pbmesh_v1alpha1_header_mutations_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_header_mutations_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_header_mutations_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_header_mutations_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_header_mutations_proto_rawDescData +} + +var file_pbmesh_v1alpha1_header_mutations_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pbmesh_v1alpha1_header_mutations_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_pbmesh_v1alpha1_header_mutations_proto_goTypes = []interface{}{ + (AppendAction)(0), // 0: hashicorp.consul.mesh.v1alpha1.AppendAction + (*HeaderMutation)(nil), // 1: hashicorp.consul.mesh.v1alpha1.HeaderMutation + (*RequestHeaderAdd)(nil), // 2: hashicorp.consul.mesh.v1alpha1.RequestHeaderAdd + (*RequestHeaderRemove)(nil), // 3: hashicorp.consul.mesh.v1alpha1.RequestHeaderRemove + (*ResponseHeaderAdd)(nil), // 4: hashicorp.consul.mesh.v1alpha1.ResponseHeaderAdd + (*ResponseHeaderRemove)(nil), // 5: hashicorp.consul.mesh.v1alpha1.ResponseHeaderRemove + (*Header)(nil), // 6: hashicorp.consul.mesh.v1alpha1.Header +} +var file_pbmesh_v1alpha1_header_mutations_proto_depIdxs = []int32{ + 2, // 0: hashicorp.consul.mesh.v1alpha1.HeaderMutation.request_header_add:type_name -> hashicorp.consul.mesh.v1alpha1.RequestHeaderAdd + 3, // 1: hashicorp.consul.mesh.v1alpha1.HeaderMutation.request_header_remove:type_name -> hashicorp.consul.mesh.v1alpha1.RequestHeaderRemove + 4, // 2: hashicorp.consul.mesh.v1alpha1.HeaderMutation.response_header_add:type_name -> hashicorp.consul.mesh.v1alpha1.ResponseHeaderAdd + 5, // 3: hashicorp.consul.mesh.v1alpha1.HeaderMutation.response_header_remove:type_name -> hashicorp.consul.mesh.v1alpha1.ResponseHeaderRemove + 6, // 4: hashicorp.consul.mesh.v1alpha1.RequestHeaderAdd.header:type_name -> hashicorp.consul.mesh.v1alpha1.Header + 0, // 5: hashicorp.consul.mesh.v1alpha1.RequestHeaderAdd.append_action:type_name -> hashicorp.consul.mesh.v1alpha1.AppendAction + 6, // 6: hashicorp.consul.mesh.v1alpha1.ResponseHeaderAdd.header:type_name -> hashicorp.consul.mesh.v1alpha1.Header + 0, // 7: hashicorp.consul.mesh.v1alpha1.ResponseHeaderAdd.append_action:type_name -> hashicorp.consul.mesh.v1alpha1.AppendAction + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_header_mutations_proto_init() } +func file_pbmesh_v1alpha1_header_mutations_proto_init() { + if File_pbmesh_v1alpha1_header_mutations_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeaderMutation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestHeaderAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestHeaderRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseHeaderAdd); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseHeaderRemove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Header); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_header_mutations_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*HeaderMutation_RequestHeaderAdd)(nil), + (*HeaderMutation_RequestHeaderRemove)(nil), + (*HeaderMutation_ResponseHeaderAdd)(nil), + (*HeaderMutation_ResponseHeaderRemove)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_header_mutations_proto_rawDesc, + NumEnums: 1, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_header_mutations_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_header_mutations_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_header_mutations_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_header_mutations_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_header_mutations_proto = out.File + file_pbmesh_v1alpha1_header_mutations_proto_rawDesc = nil + file_pbmesh_v1alpha1_header_mutations_proto_goTypes = nil + file_pbmesh_v1alpha1_header_mutations_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/header_mutations.proto b/proto-public/pbmesh/v1alpha1/header_mutations.proto new file mode 100644 index 000000000000..01ad3f825672 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/header_mutations.proto @@ -0,0 +1,47 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +// Note: it's nice to have this list of header mutations as opposed to configuration similar to Envoy because it +// translates more nicely from GAMMA HTTPRoute, and our existing service router config. Then xds code can handle turning +// it into envoy xds. +message HeaderMutation { + oneof action { + RequestHeaderAdd request_header_add = 1; + RequestHeaderRemove request_header_remove = 2; + ResponseHeaderAdd response_header_add = 3; + ResponseHeaderRemove response_header_remove = 4; + } +} + +message RequestHeaderAdd { + Header header = 1; + AppendAction append_action = 2; +} + +message RequestHeaderRemove { + repeated string header_keys = 1; +} + +message ResponseHeaderAdd { + Header header = 1; + AppendAction append_action = 2; +} + +message ResponseHeaderRemove { + repeated string header_keys = 1; +} + +message Header { + string key = 1; + string value = 2; +} + +enum AppendAction { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + APPEND_ACTION_APPEND_IF_EXISTS_OR_ADD = 0; + APPEND_ACTION_OVERWRITE_IF_EXISTS_OR_ADD = 1; +} diff --git a/proto-public/pbmesh/v1alpha1/intentions.pb.binary.go b/proto-public/pbmesh/v1alpha1/intentions.pb.binary.go new file mode 100644 index 000000000000..f2c625aa8b89 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/intentions.pb.binary.go @@ -0,0 +1,28 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/intentions.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L7Intention) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L7Intention) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L4Intention) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L4Intention) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/intentions.pb.go b/proto-public/pbmesh/v1alpha1/intentions.pb.go new file mode 100644 index 000000000000..6920ab9b355a --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/intentions.pb.go @@ -0,0 +1,206 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/intentions.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type L7Intention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *L7Intention) Reset() { + *x = L7Intention{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_intentions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L7Intention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L7Intention) ProtoMessage() {} + +func (x *L7Intention) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_intentions_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L7Intention.ProtoReflect.Descriptor instead. +func (*L7Intention) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_intentions_proto_rawDescGZIP(), []int{0} +} + +type L4Intention struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *L4Intention) Reset() { + *x = L4Intention{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_intentions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L4Intention) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L4Intention) ProtoMessage() {} + +func (x *L4Intention) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_intentions_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L4Intention.ProtoReflect.Descriptor instead. +func (*L4Intention) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_intentions_proto_rawDescGZIP(), []int{1} +} + +var File_pbmesh_v1alpha1_intentions_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_intentions_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x22, 0x0d, 0x0a, 0x0b, 0x4c, 0x37, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x0d, 0x0a, 0x0b, 0x4c, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x97, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, + 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, + 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_intentions_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_intentions_proto_rawDescData = file_pbmesh_v1alpha1_intentions_proto_rawDesc +) + +func file_pbmesh_v1alpha1_intentions_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_intentions_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_intentions_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_intentions_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_intentions_proto_rawDescData +} + +var file_pbmesh_v1alpha1_intentions_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pbmesh_v1alpha1_intentions_proto_goTypes = []interface{}{ + (*L7Intention)(nil), // 0: hashicorp.consul.mesh.v1alpha1.L7Intention + (*L4Intention)(nil), // 1: hashicorp.consul.mesh.v1alpha1.L4Intention +} +var file_pbmesh_v1alpha1_intentions_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_intentions_proto_init() } +func file_pbmesh_v1alpha1_intentions_proto_init() { + if File_pbmesh_v1alpha1_intentions_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_intentions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L7Intention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_intentions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L4Intention); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_intentions_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_intentions_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_intentions_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_intentions_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_intentions_proto = out.File + file_pbmesh_v1alpha1_intentions_proto_rawDesc = nil + file_pbmesh_v1alpha1_intentions_proto_goTypes = nil + file_pbmesh_v1alpha1_intentions_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/intentions.proto b/proto-public/pbmesh/v1alpha1/intentions.proto new file mode 100644 index 000000000000..a008aa63f89b --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/intentions.proto @@ -0,0 +1,10 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +message L7Intention {} + +message L4Intention {} diff --git a/proto-public/pbmesh/v1alpha1/listener.pb.binary.go b/proto-public/pbmesh/v1alpha1/listener.pb.binary.go new file mode 100644 index 000000000000..713d6af211b4 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/listener.pb.binary.go @@ -0,0 +1,78 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/listener.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Listener) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Listener) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Router) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Router) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Match) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Match) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *CidrRange) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *CidrRange) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L4Destination) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L4Destination) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *L7Destination) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *L7Destination) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *SNIDestination) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *SNIDestination) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/listener.pb.go b/proto-public/pbmesh/v1alpha1/listener.pb.go new file mode 100644 index 000000000000..d475ad8acad3 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/listener.pb.go @@ -0,0 +1,1174 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/listener.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Direction int32 + +const ( + // DIRECTION_UNSPECIFIED is used by mesh gateway listeners. + Direction_DIRECTION_UNSPECIFIED Direction = 0 + Direction_DIRECTION_INBOUND Direction = 1 + Direction_DIRECTION_OUTBOUND Direction = 2 +) + +// Enum value maps for Direction. +var ( + Direction_name = map[int32]string{ + 0: "DIRECTION_UNSPECIFIED", + 1: "DIRECTION_INBOUND", + 2: "DIRECTION_OUTBOUND", + } + Direction_value = map[string]int32{ + "DIRECTION_UNSPECIFIED": 0, + "DIRECTION_INBOUND": 1, + "DIRECTION_OUTBOUND": 2, + } +) + +func (x Direction) Enum() *Direction { + p := new(Direction) + *p = x + return p +} + +func (x Direction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Direction) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_listener_proto_enumTypes[0].Descriptor() +} + +func (Direction) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_listener_proto_enumTypes[0] +} + +func (x Direction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Direction.Descriptor instead. +func (Direction) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{0} +} + +// Capabilities map to proxy functionality to enable. These enable tproxy, l7 protocol/alpn inspection, or l4 sni/alpn inspection. +type Capability int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + Capability_CAPABILITY_TRANSPARENT Capability = 0 + Capability_CAPABILITY_L7_PROTOCOL_INSPECTION Capability = 1 + Capability_CAPABILITY_L4_TLS_INSPECTION Capability = 2 +) + +// Enum value maps for Capability. +var ( + Capability_name = map[int32]string{ + 0: "CAPABILITY_TRANSPARENT", + 1: "CAPABILITY_L7_PROTOCOL_INSPECTION", + 2: "CAPABILITY_L4_TLS_INSPECTION", + } + Capability_value = map[string]int32{ + "CAPABILITY_TRANSPARENT": 0, + "CAPABILITY_L7_PROTOCOL_INSPECTION": 1, + "CAPABILITY_L4_TLS_INSPECTION": 2, + } +) + +func (x Capability) Enum() *Capability { + p := new(Capability) + *p = x + return p +} + +func (x Capability) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Capability) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_listener_proto_enumTypes[1].Descriptor() +} + +func (Capability) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_listener_proto_enumTypes[1] +} + +func (x Capability) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Capability.Descriptor instead. +func (Capability) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{1} +} + +type L7Protocol int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + L7Protocol_L7_PROTOCOL_HTTP L7Protocol = 0 + L7Protocol_L7_PROTOCOL_HTTP2 L7Protocol = 1 + L7Protocol_L7_PROTOCOL_GRPC L7Protocol = 2 +) + +// Enum value maps for L7Protocol. +var ( + L7Protocol_name = map[int32]string{ + 0: "L7_PROTOCOL_HTTP", + 1: "L7_PROTOCOL_HTTP2", + 2: "L7_PROTOCOL_GRPC", + } + L7Protocol_value = map[string]int32{ + "L7_PROTOCOL_HTTP": 0, + "L7_PROTOCOL_HTTP2": 1, + "L7_PROTOCOL_GRPC": 2, + } +) + +func (x L7Protocol) Enum() *L7Protocol { + p := new(L7Protocol) + *p = x + return p +} + +func (x L7Protocol) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (L7Protocol) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_listener_proto_enumTypes[2].Descriptor() +} + +func (L7Protocol) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_listener_proto_enumTypes[2] +} + +func (x L7Protocol) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use L7Protocol.Descriptor instead. +func (L7Protocol) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{2} +} + +type Listener struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the listener. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // direction tells the listener the direction of traffic. + Direction Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=hashicorp.consul.mesh.v1alpha1.Direction" json:"direction,omitempty"` + // bind_address describes where to listen. + // + // Types that are assignable to BindAddress: + // + // *Listener_IpPort + // *Listener_UnixSocket + BindAddress isListener_BindAddress `protobuf_oneof:"bind_address"` + // routers describes how to route traffic from this listener. + Routers []*Router `protobuf:"bytes,5,rep,name=routers,proto3" json:"routers,omitempty"` + // default_router describes where to route if none of the other router matches match the connection. + DefaultRouter *Router `protobuf:"bytes,6,opt,name=default_router,json=defaultRouter,proto3" json:"default_router,omitempty"` + // capabilities describe Envoy proxy functionality to enable. These map closely to Envoy listener filters. + Capabilities []Capability `protobuf:"varint,7,rep,packed,name=capabilities,proto3,enum=hashicorp.consul.mesh.v1alpha1.Capability" json:"capabilities,omitempty"` + // balance_connections configures how the listener should balance connections. + BalanceConnections BalanceConnections `protobuf:"varint,8,opt,name=balance_connections,json=balanceConnections,proto3,enum=hashicorp.consul.mesh.v1alpha1.BalanceConnections" json:"balance_connections,omitempty"` + // escape_hatch_listener_json configures a user configured escape hatch listener. + EscapeHatchListener string `protobuf:"bytes,9,opt,name=escape_hatch_listener,json=escapeHatchListener,proto3" json:"escape_hatch_listener,omitempty"` + // use_escape_hatch_tracing configures whether to use the top level user configured tracing escape hatch for this listener. + UseEscapeHatchTracing bool `protobuf:"varint,10,opt,name=use_escape_hatch_tracing,json=useEscapeHatchTracing,proto3" json:"use_escape_hatch_tracing,omitempty"` +} + +func (x *Listener) Reset() { + *x = Listener{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Listener) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Listener) ProtoMessage() {} + +func (x *Listener) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Listener.ProtoReflect.Descriptor instead. +func (*Listener) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{0} +} + +func (x *Listener) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Listener) GetDirection() Direction { + if x != nil { + return x.Direction + } + return Direction_DIRECTION_UNSPECIFIED +} + +func (m *Listener) GetBindAddress() isListener_BindAddress { + if m != nil { + return m.BindAddress + } + return nil +} + +func (x *Listener) GetIpPort() *IPPortAddress { + if x, ok := x.GetBindAddress().(*Listener_IpPort); ok { + return x.IpPort + } + return nil +} + +func (x *Listener) GetUnixSocket() *UnixSocketAddress { + if x, ok := x.GetBindAddress().(*Listener_UnixSocket); ok { + return x.UnixSocket + } + return nil +} + +func (x *Listener) GetRouters() []*Router { + if x != nil { + return x.Routers + } + return nil +} + +func (x *Listener) GetDefaultRouter() *Router { + if x != nil { + return x.DefaultRouter + } + return nil +} + +func (x *Listener) GetCapabilities() []Capability { + if x != nil { + return x.Capabilities + } + return nil +} + +func (x *Listener) GetBalanceConnections() BalanceConnections { + if x != nil { + return x.BalanceConnections + } + return BalanceConnections_BALANCE_CONNECTIONS_DEFAULT +} + +func (x *Listener) GetEscapeHatchListener() string { + if x != nil { + return x.EscapeHatchListener + } + return "" +} + +func (x *Listener) GetUseEscapeHatchTracing() bool { + if x != nil { + return x.UseEscapeHatchTracing + } + return false +} + +type isListener_BindAddress interface { + isListener_BindAddress() +} + +type Listener_IpPort struct { + IpPort *IPPortAddress `protobuf:"bytes,3,opt,name=ip_port,json=ipPort,proto3,oneof"` +} + +type Listener_UnixSocket struct { + UnixSocket *UnixSocketAddress `protobuf:"bytes,4,opt,name=unix_socket,json=unixSocket,proto3,oneof"` +} + +func (*Listener_IpPort) isListener_BindAddress() {} + +func (*Listener_UnixSocket) isListener_BindAddress() {} + +type Router struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // match specifies how to match traffic coming into this listener. If the traffic matches, it will be routed to the + // destination. + Match *Match `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` + // Types that are assignable to Destination: + // + // *Router_L4 + // *Router_L7 + // *Router_Sni + Destination isRouter_Destination `protobuf_oneof:"destination"` + // inbound_tls is used by inbound listeners that terminate TLS. + InboundTls *TransportSocket `protobuf:"bytes,5,opt,name=inbound_tls,json=inboundTls,proto3" json:"inbound_tls,omitempty"` +} + +func (x *Router) Reset() { + *x = Router{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Router) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Router) ProtoMessage() {} + +func (x *Router) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Router.ProtoReflect.Descriptor instead. +func (*Router) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{1} +} + +func (x *Router) GetMatch() *Match { + if x != nil { + return x.Match + } + return nil +} + +func (m *Router) GetDestination() isRouter_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *Router) GetL4() *L4Destination { + if x, ok := x.GetDestination().(*Router_L4); ok { + return x.L4 + } + return nil +} + +func (x *Router) GetL7() *L7Destination { + if x, ok := x.GetDestination().(*Router_L7); ok { + return x.L7 + } + return nil +} + +func (x *Router) GetSni() *SNIDestination { + if x, ok := x.GetDestination().(*Router_Sni); ok { + return x.Sni + } + return nil +} + +func (x *Router) GetInboundTls() *TransportSocket { + if x != nil { + return x.InboundTls + } + return nil +} + +type isRouter_Destination interface { + isRouter_Destination() +} + +type Router_L4 struct { + // l4 is an l4 destination to route to, which will have a reference to a cluster. + L4 *L4Destination `protobuf:"bytes,2,opt,name=l4,proto3,oneof"` +} + +type Router_L7 struct { + // l7 is an l7 destination to route to, which will have a reference to a route. + L7 *L7Destination `protobuf:"bytes,3,opt,name=l7,proto3,oneof"` +} + +type Router_Sni struct { + // sni is an SNI destination, which means there will be no references, but the SNI name will be tied to the cluster + // name, so we should generate all clusters. + Sni *SNIDestination `protobuf:"bytes,4,opt,name=sni,proto3,oneof"` +} + +func (*Router_L4) isRouter_Destination() {} + +func (*Router_L7) isRouter_Destination() {} + +func (*Router_Sni) isRouter_Destination() {} + +type Match struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DestinationPort *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` + PrefixRanges []*CidrRange `protobuf:"bytes,2,rep,name=prefix_ranges,json=prefixRanges,proto3" json:"prefix_ranges,omitempty"` + SourcePrefixRanges []*CidrRange `protobuf:"bytes,3,rep,name=source_prefix_ranges,json=sourcePrefixRanges,proto3" json:"source_prefix_ranges,omitempty"` + // server_names matches based on SNI of the incoming request. + ServerNames []string `protobuf:"bytes,4,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"` +} + +func (x *Match) Reset() { + *x = Match{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Match) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Match) ProtoMessage() {} + +func (x *Match) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Match.ProtoReflect.Descriptor instead. +func (*Match) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{2} +} + +func (x *Match) GetDestinationPort() *wrapperspb.UInt32Value { + if x != nil { + return x.DestinationPort + } + return nil +} + +func (x *Match) GetPrefixRanges() []*CidrRange { + if x != nil { + return x.PrefixRanges + } + return nil +} + +func (x *Match) GetSourcePrefixRanges() []*CidrRange { + if x != nil { + return x.SourcePrefixRanges + } + return nil +} + +func (x *Match) GetServerNames() []string { + if x != nil { + return x.ServerNames + } + return nil +} + +type CidrRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressPrefix string `protobuf:"bytes,1,opt,name=address_prefix,json=addressPrefix,proto3" json:"address_prefix,omitempty"` + PrefixLen *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"` +} + +func (x *CidrRange) Reset() { + *x = CidrRange{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CidrRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CidrRange) ProtoMessage() {} + +func (x *CidrRange) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CidrRange.ProtoReflect.Descriptor instead. +func (*CidrRange) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{3} +} + +func (x *CidrRange) GetAddressPrefix() string { + if x != nil { + return x.AddressPrefix + } + return "" +} + +func (x *CidrRange) GetPrefixLen() *wrapperspb.UInt32Value { + if x != nil { + return x.PrefixLen + } + return nil +} + +type L4Destination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is a key in the top level clusters map. This specifies which cluster to go to in this L4 destination. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + StatPrefix string `protobuf:"bytes,2,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + // intentions is a list of intentions for this destination. + Intentions []*L4Intention `protobuf:"bytes,3,rep,name=intentions,proto3" json:"intentions,omitempty"` + // max_inbound_connections specifies how many connections this destination can accept. + MaxInboundConnections uint64 `protobuf:"varint,4,opt,name=max_inbound_connections,json=maxInboundConnections,proto3" json:"max_inbound_connections,omitempty"` +} + +func (x *L4Destination) Reset() { + *x = L4Destination{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L4Destination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L4Destination) ProtoMessage() {} + +func (x *L4Destination) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L4Destination.ProtoReflect.Descriptor instead. +func (*L4Destination) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{4} +} + +func (x *L4Destination) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *L4Destination) GetStatPrefix() string { + if x != nil { + return x.StatPrefix + } + return "" +} + +func (x *L4Destination) GetIntentions() []*L4Intention { + if x != nil { + return x.Intentions + } + return nil +} + +func (x *L4Destination) GetMaxInboundConnections() uint64 { + if x != nil { + return x.MaxInboundConnections + } + return 0 +} + +type L7Destination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is a key in the top level routes map. This specifies which route to go to in this L7 destination. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + StatPrefix string `protobuf:"bytes,2,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` + // protocol for the destination. + Protocol L7Protocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=hashicorp.consul.mesh.v1alpha1.L7Protocol" json:"protocol,omitempty"` + // intentions is a list of intentions for this destination. + Intentions []*L7Intention `protobuf:"bytes,4,rep,name=intentions,proto3" json:"intentions,omitempty"` + // include_xfcc specifies whether to add xfcc header. + IncludeXfcc bool `protobuf:"varint,5,opt,name=include_xfcc,json=includeXfcc,proto3" json:"include_xfcc,omitempty"` + // static_route specifies whether this is a static route that is inlined in the listener filter. This is required to + // match existing xds config. + StaticRoute bool `protobuf:"varint,6,opt,name=static_route,json=staticRoute,proto3" json:"static_route,omitempty"` + // max_inbound_connections specifies how many connections this destination can accept. + MaxInboundConnections uint64 `protobuf:"varint,7,opt,name=max_inbound_connections,json=maxInboundConnections,proto3" json:"max_inbound_connections,omitempty"` +} + +func (x *L7Destination) Reset() { + *x = L7Destination{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *L7Destination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*L7Destination) ProtoMessage() {} + +func (x *L7Destination) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use L7Destination.ProtoReflect.Descriptor instead. +func (*L7Destination) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{5} +} + +func (x *L7Destination) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *L7Destination) GetStatPrefix() string { + if x != nil { + return x.StatPrefix + } + return "" +} + +func (x *L7Destination) GetProtocol() L7Protocol { + if x != nil { + return x.Protocol + } + return L7Protocol_L7_PROTOCOL_HTTP +} + +func (x *L7Destination) GetIntentions() []*L7Intention { + if x != nil { + return x.Intentions + } + return nil +} + +func (x *L7Destination) GetIncludeXfcc() bool { + if x != nil { + return x.IncludeXfcc + } + return false +} + +func (x *L7Destination) GetStaticRoute() bool { + if x != nil { + return x.StaticRoute + } + return false +} + +func (x *L7Destination) GetMaxInboundConnections() uint64 { + if x != nil { + return x.MaxInboundConnections + } + return 0 +} + +type SNIDestination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` +} + +func (x *SNIDestination) Reset() { + *x = SNIDestination{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SNIDestination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SNIDestination) ProtoMessage() {} + +func (x *SNIDestination) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_listener_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SNIDestination.ProtoReflect.Descriptor instead. +func (*SNIDestination) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_listener_proto_rawDescGZIP(), []int{6} +} + +func (x *SNIDestination) GetStatPrefix() string { + if x != nil { + return x.StatPrefix + } + return "" +} + +var File_pbmesh_v1alpha1_listener_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_listener_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 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, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x20, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x70, 0x62, + 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x75, 0x70, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x05, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x6f, 0x72, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x06, 0x69, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x75, 0x6e, 0x69, + 0x78, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x0e, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x13, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, + 0x15, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x65, 0x73, + 0x63, 0x61, 0x70, 0x65, 0x48, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, + 0x72, 0x12, 0x37, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, + 0x68, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x15, 0x75, 0x73, 0x65, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x48, 0x61, + 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x62, 0x69, + 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xec, 0x02, 0x0a, 0x06, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x02, 0x6c, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4c, 0x34, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x02, 0x6c, 0x34, 0x12, 0x3f, 0x0a, 0x02, 0x6c, 0x37, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4c, 0x37, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x02, 0x6c, 0x37, 0x12, 0x42, 0x0a, 0x03, 0x73, 0x6e, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x53, 0x4e, 0x49, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x03, 0x73, 0x6e, 0x69, 0x12, 0x50, 0x0a, 0x0b, 0x69, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0a, + 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6c, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x02, 0x0a, 0x05, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x47, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4e, 0x0a, 0x0d, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x69, 0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0c, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x14, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x69, 0x64, 0x72, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x6f, 0x0a, 0x09, + 0x43, 0x69, 0x64, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x22, 0xc9, 0x01, + 0x0a, 0x0d, 0x4c, 0x34, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x4b, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x0d, 0x4c, 0x37, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x46, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x37, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x37, + 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x78, 0x66, 0x63, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x58, 0x66, 0x63, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x63, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x6d, + 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x6d, 0x61, + 0x78, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x31, 0x0a, 0x0e, 0x53, 0x4e, 0x49, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2a, 0x55, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x11, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x42, 0x4f, + 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x2a, 0x71, 0x0a, + 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x43, + 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, + 0x41, 0x52, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x37, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, + 0x4c, 0x5f, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x20, + 0x0a, 0x1c, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x34, 0x5f, + 0x54, 0x4c, 0x53, 0x5f, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, + 0x2a, 0x4f, 0x0a, 0x0a, 0x4c, 0x37, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, + 0x0a, 0x10, 0x4c, 0x37, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, + 0x54, 0x50, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x37, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, + 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x32, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4c, + 0x37, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x47, 0x52, 0x50, 0x43, 0x10, + 0x02, 0x42, 0x95, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, + 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_pbmesh_v1alpha1_listener_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_listener_proto_rawDescData = file_pbmesh_v1alpha1_listener_proto_rawDesc +) + +func file_pbmesh_v1alpha1_listener_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_listener_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_listener_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_listener_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_listener_proto_rawDescData +} + +var file_pbmesh_v1alpha1_listener_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_pbmesh_v1alpha1_listener_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_pbmesh_v1alpha1_listener_proto_goTypes = []interface{}{ + (Direction)(0), // 0: hashicorp.consul.mesh.v1alpha1.Direction + (Capability)(0), // 1: hashicorp.consul.mesh.v1alpha1.Capability + (L7Protocol)(0), // 2: hashicorp.consul.mesh.v1alpha1.L7Protocol + (*Listener)(nil), // 3: hashicorp.consul.mesh.v1alpha1.Listener + (*Router)(nil), // 4: hashicorp.consul.mesh.v1alpha1.Router + (*Match)(nil), // 5: hashicorp.consul.mesh.v1alpha1.Match + (*CidrRange)(nil), // 6: hashicorp.consul.mesh.v1alpha1.CidrRange + (*L4Destination)(nil), // 7: hashicorp.consul.mesh.v1alpha1.L4Destination + (*L7Destination)(nil), // 8: hashicorp.consul.mesh.v1alpha1.L7Destination + (*SNIDestination)(nil), // 9: hashicorp.consul.mesh.v1alpha1.SNIDestination + (*IPPortAddress)(nil), // 10: hashicorp.consul.mesh.v1alpha1.IPPortAddress + (*UnixSocketAddress)(nil), // 11: hashicorp.consul.mesh.v1alpha1.UnixSocketAddress + (BalanceConnections)(0), // 12: hashicorp.consul.mesh.v1alpha1.BalanceConnections + (*TransportSocket)(nil), // 13: hashicorp.consul.mesh.v1alpha1.TransportSocket + (*wrapperspb.UInt32Value)(nil), // 14: google.protobuf.UInt32Value + (*L4Intention)(nil), // 15: hashicorp.consul.mesh.v1alpha1.L4Intention + (*L7Intention)(nil), // 16: hashicorp.consul.mesh.v1alpha1.L7Intention +} +var file_pbmesh_v1alpha1_listener_proto_depIdxs = []int32{ + 0, // 0: hashicorp.consul.mesh.v1alpha1.Listener.direction:type_name -> hashicorp.consul.mesh.v1alpha1.Direction + 10, // 1: hashicorp.consul.mesh.v1alpha1.Listener.ip_port:type_name -> hashicorp.consul.mesh.v1alpha1.IPPortAddress + 11, // 2: hashicorp.consul.mesh.v1alpha1.Listener.unix_socket:type_name -> hashicorp.consul.mesh.v1alpha1.UnixSocketAddress + 4, // 3: hashicorp.consul.mesh.v1alpha1.Listener.routers:type_name -> hashicorp.consul.mesh.v1alpha1.Router + 4, // 4: hashicorp.consul.mesh.v1alpha1.Listener.default_router:type_name -> hashicorp.consul.mesh.v1alpha1.Router + 1, // 5: hashicorp.consul.mesh.v1alpha1.Listener.capabilities:type_name -> hashicorp.consul.mesh.v1alpha1.Capability + 12, // 6: hashicorp.consul.mesh.v1alpha1.Listener.balance_connections:type_name -> hashicorp.consul.mesh.v1alpha1.BalanceConnections + 5, // 7: hashicorp.consul.mesh.v1alpha1.Router.match:type_name -> hashicorp.consul.mesh.v1alpha1.Match + 7, // 8: hashicorp.consul.mesh.v1alpha1.Router.l4:type_name -> hashicorp.consul.mesh.v1alpha1.L4Destination + 8, // 9: hashicorp.consul.mesh.v1alpha1.Router.l7:type_name -> hashicorp.consul.mesh.v1alpha1.L7Destination + 9, // 10: hashicorp.consul.mesh.v1alpha1.Router.sni:type_name -> hashicorp.consul.mesh.v1alpha1.SNIDestination + 13, // 11: hashicorp.consul.mesh.v1alpha1.Router.inbound_tls:type_name -> hashicorp.consul.mesh.v1alpha1.TransportSocket + 14, // 12: hashicorp.consul.mesh.v1alpha1.Match.destination_port:type_name -> google.protobuf.UInt32Value + 6, // 13: hashicorp.consul.mesh.v1alpha1.Match.prefix_ranges:type_name -> hashicorp.consul.mesh.v1alpha1.CidrRange + 6, // 14: hashicorp.consul.mesh.v1alpha1.Match.source_prefix_ranges:type_name -> hashicorp.consul.mesh.v1alpha1.CidrRange + 14, // 15: hashicorp.consul.mesh.v1alpha1.CidrRange.prefix_len:type_name -> google.protobuf.UInt32Value + 15, // 16: hashicorp.consul.mesh.v1alpha1.L4Destination.intentions:type_name -> hashicorp.consul.mesh.v1alpha1.L4Intention + 2, // 17: hashicorp.consul.mesh.v1alpha1.L7Destination.protocol:type_name -> hashicorp.consul.mesh.v1alpha1.L7Protocol + 16, // 18: hashicorp.consul.mesh.v1alpha1.L7Destination.intentions:type_name -> hashicorp.consul.mesh.v1alpha1.L7Intention + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_listener_proto_init() } +func file_pbmesh_v1alpha1_listener_proto_init() { + if File_pbmesh_v1alpha1_listener_proto != nil { + return + } + file_pbmesh_v1alpha1_connection_proto_init() + file_pbmesh_v1alpha1_intentions_proto_init() + file_pbmesh_v1alpha1_transport_socket_proto_init() + file_pbmesh_v1alpha1_upstreams_proto_init() + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_listener_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Listener); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Router); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Match); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CidrRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L4Destination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*L7Destination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SNIDestination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*Listener_IpPort)(nil), + (*Listener_UnixSocket)(nil), + } + file_pbmesh_v1alpha1_listener_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*Router_L4)(nil), + (*Router_L7)(nil), + (*Router_Sni)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_listener_proto_rawDesc, + NumEnums: 3, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_listener_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_listener_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_listener_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_listener_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_listener_proto = out.File + file_pbmesh_v1alpha1_listener_proto_rawDesc = nil + file_pbmesh_v1alpha1_listener_proto_goTypes = nil + file_pbmesh_v1alpha1_listener_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/listener.proto b/proto-public/pbmesh/v1alpha1/listener.proto new file mode 100644 index 000000000000..441f5eea83b1 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/listener.proto @@ -0,0 +1,123 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "google/protobuf/wrappers.proto"; +import "pbmesh/v1alpha1/connection.proto"; +import "pbmesh/v1alpha1/intentions.proto"; +import "pbmesh/v1alpha1/transport_socket.proto"; +import "pbmesh/v1alpha1/upstreams.proto"; + +message Listener { + // name is the name of the listener. + string name = 1; + // direction tells the listener the direction of traffic. + Direction direction = 2; + // bind_address describes where to listen. + oneof bind_address { + IPPortAddress ip_port = 3; + UnixSocketAddress unix_socket = 4; + } + + // routers describes how to route traffic from this listener. + repeated Router routers = 5; + // default_router describes where to route if none of the other router matches match the connection. + Router default_router = 6; + // capabilities describe Envoy proxy functionality to enable. These map closely to Envoy listener filters. + repeated Capability capabilities = 7; + // balance_connections configures how the listener should balance connections. + BalanceConnections balance_connections = 8; + // escape_hatch_listener_json configures a user configured escape hatch listener. + string escape_hatch_listener = 9; + // use_escape_hatch_tracing configures whether to use the top level user configured tracing escape hatch for this listener. + bool use_escape_hatch_tracing = 10; +} + +enum Direction { + // DIRECTION_UNSPECIFIED is used by mesh gateway listeners. + DIRECTION_UNSPECIFIED = 0; + DIRECTION_INBOUND = 1; + DIRECTION_OUTBOUND = 2; +} + +// Capabilities map to proxy functionality to enable. These enable tproxy, l7 protocol/alpn inspection, or l4 sni/alpn inspection. +enum Capability { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + CAPABILITY_TRANSPARENT = 0; + CAPABILITY_L7_PROTOCOL_INSPECTION = 1; + CAPABILITY_L4_TLS_INSPECTION = 2; +} + +message Router { + // match specifies how to match traffic coming into this listener. If the traffic matches, it will be routed to the + // destination. + Match match = 1; + oneof destination { + // l4 is an l4 destination to route to, which will have a reference to a cluster. + L4Destination l4 = 2; + // l7 is an l7 destination to route to, which will have a reference to a route. + L7Destination l7 = 3; + // sni is an SNI destination, which means there will be no references, but the SNI name will be tied to the cluster + // name, so we should generate all clusters. + SNIDestination sni = 4; + } + // inbound_tls is used by inbound listeners that terminate TLS. + TransportSocket inbound_tls = 5; +} + +message Match { + google.protobuf.UInt32Value destination_port = 1; + repeated CidrRange prefix_ranges = 2; + repeated CidrRange source_prefix_ranges = 3; + // server_names matches based on SNI of the incoming request. + repeated string server_names = 4; +} + +message CidrRange { + string address_prefix = 1; + google.protobuf.UInt32Value prefix_len = 2; +} + +message L4Destination { + // name is a key in the top level clusters map. This specifies which cluster to go to in this L4 destination. + string name = 1; + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + string stat_prefix = 2; + // intentions is a list of intentions for this destination. + repeated L4Intention intentions = 3; + // max_inbound_connections specifies how many connections this destination can accept. + uint64 max_inbound_connections = 4; +} + +message L7Destination { + // name is a key in the top level routes map. This specifies which route to go to in this L7 destination. + string name = 1; + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + string stat_prefix = 2; + // protocol for the destination. + L7Protocol protocol = 3; + // intentions is a list of intentions for this destination. + repeated L7Intention intentions = 4; + // include_xfcc specifies whether to add xfcc header. + bool include_xfcc = 5; + // static_route specifies whether this is a static route that is inlined in the listener filter. This is required to + // match existing xds config. + bool static_route = 6; + // max_inbound_connections specifies how many connections this destination can accept. + uint64 max_inbound_connections = 7; +} + +enum L7Protocol { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + L7_PROTOCOL_HTTP = 0; + L7_PROTOCOL_HTTP2 = 1; + L7_PROTOCOL_GRPC = 2; +} + +message SNIDestination { + // stat_prefix is for compatibility with v1 xds configuration, so it is generated in exactly the same way. + string stat_prefix = 1; +} diff --git a/proto-public/pbmesh/v1alpha1/proxy_state.pb.binary.go b/proto-public/pbmesh/v1alpha1/proxy_state.pb.binary.go new file mode 100644 index 000000000000..747ffba08044 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/proxy_state.pb.binary.go @@ -0,0 +1,28 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/proxy_state.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *ProxyStateTemplate) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *ProxyStateTemplate) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *ProxyState) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *ProxyState) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/proxy_state.pb.go b/proto-public/pbmesh/v1alpha1/proxy_state.pb.go new file mode 100644 index 000000000000..5a9ba0d35cf4 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/proxy_state.pb.go @@ -0,0 +1,552 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/proxy_state.proto + +package meshv1alpha1 + +import ( + pbresource "github.com/hashicorp/consul/proto-public/pbresource" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ProxyStateTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // proxy_state is the partially filled out ProxyState resource. The Endpoints, LeafCertificates and TrustBundles fields will need filling in after the resource is stored. + ProxyState *ProxyState `protobuf:"bytes,1,opt,name=proxy_state,json=proxyState,proto3" json:"proxy_state,omitempty"` + // required_endpoints is a map of arbitrary string names to endpoint refs that need fetching by the proxy state controller. + RequiredEndpoints map[string]*EndpointRef `protobuf:"bytes,2,rep,name=required_endpoints,json=requiredEndpoints,proto3" json:"required_endpoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // required_leaf_certificates is a map of arbitrary string names to leaf certificates that need fetching/generation by the proxy state controller. + RequiredLeafCertificates map[string]*LeafCertificateRef `protobuf:"bytes,3,rep,name=required_leaf_certificates,json=requiredLeafCertificates,proto3" json:"required_leaf_certificates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // required_trust_bundles is a map of arbitrary string names to trust bundle refs that need fetching by the proxy state controller. + RequiredTrustBundles map[string]*TrustBundleRef `protobuf:"bytes,4,rep,name=required_trust_bundles,json=requiredTrustBundles,proto3" json:"required_trust_bundles,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ProxyStateTemplate) Reset() { + *x = ProxyStateTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProxyStateTemplate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProxyStateTemplate) ProtoMessage() {} + +func (x *ProxyStateTemplate) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProxyStateTemplate.ProtoReflect.Descriptor instead. +func (*ProxyStateTemplate) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_proxy_state_proto_rawDescGZIP(), []int{0} +} + +func (x *ProxyStateTemplate) GetProxyState() *ProxyState { + if x != nil { + return x.ProxyState + } + return nil +} + +func (x *ProxyStateTemplate) GetRequiredEndpoints() map[string]*EndpointRef { + if x != nil { + return x.RequiredEndpoints + } + return nil +} + +func (x *ProxyStateTemplate) GetRequiredLeafCertificates() map[string]*LeafCertificateRef { + if x != nil { + return x.RequiredLeafCertificates + } + return nil +} + +func (x *ProxyStateTemplate) GetRequiredTrustBundles() map[string]*TrustBundleRef { + if x != nil { + return x.RequiredTrustBundles + } + return nil +} + +type ProxyState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id is this proxy's ID. + Id *pbresource.ID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // listeners is a list of listeners for this proxy. + Listeners []*Listener `protobuf:"bytes,2,rep,name=listeners,proto3" json:"listeners,omitempty"` + // clusters is a map from cluster name to clusters. The keys are referenced from listeners or routes. + Clusters map[string]*Cluster `protobuf:"bytes,3,rep,name=clusters,proto3" json:"clusters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // routes is a map from route name to routes. The keys are referenced from listeners. + Routes map[string]*Route `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // endpoints is a map from cluster name to endpoints. + Endpoints map[string]*Endpoints `protobuf:"bytes,5,rep,name=endpoints,proto3" json:"endpoints,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // leaf certificates is a map from UUID to leaf certificates. + LeafCertificates map[string]*LeafCertificate `protobuf:"bytes,6,rep,name=leaf_certificates,json=leafCertificates,proto3" json:"leaf_certificates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // trust bundles is a map from peer name to trust bundles. + TrustBundles map[string]*TrustBundle `protobuf:"bytes,7,rep,name=trust_bundles,json=trustBundles,proto3" json:"trust_bundles,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // tls has TLS configuration for this proxy. + Tls *TLS `protobuf:"bytes,8,opt,name=tls,proto3" json:"tls,omitempty"` + // intention_default_allow is the default action for intentions. This determines how the Envoy RBAC filters are generated. + IntentionDefaultAllow bool `protobuf:"varint,9,opt,name=intention_default_allow,json=intentionDefaultAllow,proto3" json:"intention_default_allow,omitempty"` + // escape defines top level escape hatches. These are user configured json strings that configure an entire piece of listener or cluster Envoy configuration. + Escape *EscapeHatches `protobuf:"bytes,10,opt,name=escape,proto3" json:"escape,omitempty"` + // access_logs configures access logging for this proxy. + AccessLogs *AccessLogs `protobuf:"bytes,11,opt,name=access_logs,json=accessLogs,proto3" json:"access_logs,omitempty"` +} + +func (x *ProxyState) Reset() { + *x = ProxyState{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProxyState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProxyState) ProtoMessage() {} + +func (x *ProxyState) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProxyState.ProtoReflect.Descriptor instead. +func (*ProxyState) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_proxy_state_proto_rawDescGZIP(), []int{1} +} + +func (x *ProxyState) GetId() *pbresource.ID { + if x != nil { + return x.Id + } + return nil +} + +func (x *ProxyState) GetListeners() []*Listener { + if x != nil { + return x.Listeners + } + return nil +} + +func (x *ProxyState) GetClusters() map[string]*Cluster { + if x != nil { + return x.Clusters + } + return nil +} + +func (x *ProxyState) GetRoutes() map[string]*Route { + if x != nil { + return x.Routes + } + return nil +} + +func (x *ProxyState) GetEndpoints() map[string]*Endpoints { + if x != nil { + return x.Endpoints + } + return nil +} + +func (x *ProxyState) GetLeafCertificates() map[string]*LeafCertificate { + if x != nil { + return x.LeafCertificates + } + return nil +} + +func (x *ProxyState) GetTrustBundles() map[string]*TrustBundle { + if x != nil { + return x.TrustBundles + } + return nil +} + +func (x *ProxyState) GetTls() *TLS { + if x != nil { + return x.Tls + } + return nil +} + +func (x *ProxyState) GetIntentionDefaultAllow() bool { + if x != nil { + return x.IntentionDefaultAllow + } + return false +} + +func (x *ProxyState) GetEscape() *EscapeHatches { + if x != nil { + return x.Escape + } + return nil +} + +func (x *ProxyState) GetAccessLogs() *AccessLogs { + if x != nil { + return x.AccessLogs + } + return nil +} + +var File_pbmesh_v1alpha1_proxy_state_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_proxy_state_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x1a, 0x21, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x68, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x62, + 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x70, 0x62, + 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x70, 0x62, 0x6d, + 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, + 0x06, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x78, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, + 0x72, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x8e, 0x01, 0x0a, + 0x1a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x50, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4c, 0x65, + 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x18, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4c, 0x65, 0x61, + 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x82, 0x01, + 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x1a, 0x71, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x41, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7f, 0x0a, 0x1d, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 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, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x77, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 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, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xec, 0x0a, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x46, 0x0a, + 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x09, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x6d, 0x0a, 0x11, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x40, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x65, 0x61, 0x66, + 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x0d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x36, 0x0a, + 0x17, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x45, 0x0a, 0x06, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x48, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x52, 0x06, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x0b, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x0a, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x1a, 0x64, 0x0a, 0x0d, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 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, 0x3d, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x60, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 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, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x67, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x74, 0x0a, 0x15, 0x4c, 0x65, + 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 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, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x6c, 0x0a, 0x11, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x97, + 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0f, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_proxy_state_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_proxy_state_proto_rawDescData = file_pbmesh_v1alpha1_proxy_state_proto_rawDesc +) + +func file_pbmesh_v1alpha1_proxy_state_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_proxy_state_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_proxy_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_proxy_state_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_proxy_state_proto_rawDescData +} + +var file_pbmesh_v1alpha1_proxy_state_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_pbmesh_v1alpha1_proxy_state_proto_goTypes = []interface{}{ + (*ProxyStateTemplate)(nil), // 0: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate + (*ProxyState)(nil), // 1: hashicorp.consul.mesh.v1alpha1.ProxyState + nil, // 2: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredEndpointsEntry + nil, // 3: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredLeafCertificatesEntry + nil, // 4: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredTrustBundlesEntry + nil, // 5: hashicorp.consul.mesh.v1alpha1.ProxyState.ClustersEntry + nil, // 6: hashicorp.consul.mesh.v1alpha1.ProxyState.RoutesEntry + nil, // 7: hashicorp.consul.mesh.v1alpha1.ProxyState.EndpointsEntry + nil, // 8: hashicorp.consul.mesh.v1alpha1.ProxyState.LeafCertificatesEntry + nil, // 9: hashicorp.consul.mesh.v1alpha1.ProxyState.TrustBundlesEntry + (*pbresource.ID)(nil), // 10: hashicorp.consul.resource.ID + (*Listener)(nil), // 11: hashicorp.consul.mesh.v1alpha1.Listener + (*TLS)(nil), // 12: hashicorp.consul.mesh.v1alpha1.TLS + (*EscapeHatches)(nil), // 13: hashicorp.consul.mesh.v1alpha1.EscapeHatches + (*AccessLogs)(nil), // 14: hashicorp.consul.mesh.v1alpha1.AccessLogs + (*EndpointRef)(nil), // 15: hashicorp.consul.mesh.v1alpha1.EndpointRef + (*LeafCertificateRef)(nil), // 16: hashicorp.consul.mesh.v1alpha1.LeafCertificateRef + (*TrustBundleRef)(nil), // 17: hashicorp.consul.mesh.v1alpha1.TrustBundleRef + (*Cluster)(nil), // 18: hashicorp.consul.mesh.v1alpha1.Cluster + (*Route)(nil), // 19: hashicorp.consul.mesh.v1alpha1.Route + (*Endpoints)(nil), // 20: hashicorp.consul.mesh.v1alpha1.Endpoints + (*LeafCertificate)(nil), // 21: hashicorp.consul.mesh.v1alpha1.LeafCertificate + (*TrustBundle)(nil), // 22: hashicorp.consul.mesh.v1alpha1.TrustBundle +} +var file_pbmesh_v1alpha1_proxy_state_proto_depIdxs = []int32{ + 1, // 0: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.proxy_state:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState + 2, // 1: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.required_endpoints:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredEndpointsEntry + 3, // 2: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.required_leaf_certificates:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredLeafCertificatesEntry + 4, // 3: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.required_trust_bundles:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredTrustBundlesEntry + 10, // 4: hashicorp.consul.mesh.v1alpha1.ProxyState.id:type_name -> hashicorp.consul.resource.ID + 11, // 5: hashicorp.consul.mesh.v1alpha1.ProxyState.listeners:type_name -> hashicorp.consul.mesh.v1alpha1.Listener + 5, // 6: hashicorp.consul.mesh.v1alpha1.ProxyState.clusters:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState.ClustersEntry + 6, // 7: hashicorp.consul.mesh.v1alpha1.ProxyState.routes:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState.RoutesEntry + 7, // 8: hashicorp.consul.mesh.v1alpha1.ProxyState.endpoints:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState.EndpointsEntry + 8, // 9: hashicorp.consul.mesh.v1alpha1.ProxyState.leaf_certificates:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState.LeafCertificatesEntry + 9, // 10: hashicorp.consul.mesh.v1alpha1.ProxyState.trust_bundles:type_name -> hashicorp.consul.mesh.v1alpha1.ProxyState.TrustBundlesEntry + 12, // 11: hashicorp.consul.mesh.v1alpha1.ProxyState.tls:type_name -> hashicorp.consul.mesh.v1alpha1.TLS + 13, // 12: hashicorp.consul.mesh.v1alpha1.ProxyState.escape:type_name -> hashicorp.consul.mesh.v1alpha1.EscapeHatches + 14, // 13: hashicorp.consul.mesh.v1alpha1.ProxyState.access_logs:type_name -> hashicorp.consul.mesh.v1alpha1.AccessLogs + 15, // 14: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredEndpointsEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.EndpointRef + 16, // 15: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredLeafCertificatesEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.LeafCertificateRef + 17, // 16: hashicorp.consul.mesh.v1alpha1.ProxyStateTemplate.RequiredTrustBundlesEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.TrustBundleRef + 18, // 17: hashicorp.consul.mesh.v1alpha1.ProxyState.ClustersEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.Cluster + 19, // 18: hashicorp.consul.mesh.v1alpha1.ProxyState.RoutesEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.Route + 20, // 19: hashicorp.consul.mesh.v1alpha1.ProxyState.EndpointsEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.Endpoints + 21, // 20: hashicorp.consul.mesh.v1alpha1.ProxyState.LeafCertificatesEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.LeafCertificate + 22, // 21: hashicorp.consul.mesh.v1alpha1.ProxyState.TrustBundlesEntry.value:type_name -> hashicorp.consul.mesh.v1alpha1.TrustBundle + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_proxy_state_proto_init() } +func file_pbmesh_v1alpha1_proxy_state_proto_init() { + if File_pbmesh_v1alpha1_proxy_state_proto != nil { + return + } + file_pbmesh_v1alpha1_access_logs_proto_init() + file_pbmesh_v1alpha1_cluster_proto_init() + file_pbmesh_v1alpha1_endpoints_proto_init() + file_pbmesh_v1alpha1_escape_hatches_proto_init() + file_pbmesh_v1alpha1_listener_proto_init() + file_pbmesh_v1alpha1_references_proto_init() + file_pbmesh_v1alpha1_route_proto_init() + file_pbmesh_v1alpha1_transport_socket_proto_init() + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProxyStateTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_proxy_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProxyState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_proxy_state_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_proxy_state_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_proxy_state_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_proxy_state_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_proxy_state_proto = out.File + file_pbmesh_v1alpha1_proxy_state_proto_rawDesc = nil + file_pbmesh_v1alpha1_proxy_state_proto_goTypes = nil + file_pbmesh_v1alpha1_proxy_state_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/proxy_state.proto b/proto-public/pbmesh/v1alpha1/proxy_state.proto new file mode 100644 index 000000000000..5c0ccc5c050e --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/proxy_state.proto @@ -0,0 +1,55 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "pbmesh/v1alpha1/access_logs.proto"; +import "pbmesh/v1alpha1/cluster.proto"; +import "pbmesh/v1alpha1/endpoints.proto"; +import "pbmesh/v1alpha1/escape_hatches.proto"; +import "pbmesh/v1alpha1/listener.proto"; +import "pbmesh/v1alpha1/references.proto"; +import "pbmesh/v1alpha1/route.proto"; +import "pbmesh/v1alpha1/transport_socket.proto"; +import "pbresource/resource.proto"; + +message ProxyStateTemplate { + // proxy_state is the partially filled out ProxyState resource. The Endpoints, LeafCertificates and TrustBundles fields will need filling in after the resource is stored. + ProxyState proxy_state = 1; + + // required_endpoints is a map of arbitrary string names to endpoint refs that need fetching by the proxy state controller. + map required_endpoints = 2; + + // required_leaf_certificates is a map of arbitrary string names to leaf certificates that need fetching/generation by the proxy state controller. + map required_leaf_certificates = 3; + + // required_trust_bundles is a map of arbitrary string names to trust bundle refs that need fetching by the proxy state controller. + map required_trust_bundles = 4; +} + +message ProxyState { + // id is this proxy's ID. + hashicorp.consul.resource.ID id = 1; + // listeners is a list of listeners for this proxy. + repeated Listener listeners = 2; + // clusters is a map from cluster name to clusters. The keys are referenced from listeners or routes. + map clusters = 3; + // routes is a map from route name to routes. The keys are referenced from listeners. + map routes = 4; + // endpoints is a map from cluster name to endpoints. + map endpoints = 5; + // leaf certificates is a map from UUID to leaf certificates. + map leaf_certificates = 6; + // trust bundles is a map from peer name to trust bundles. + map trust_bundles = 7; + // tls has TLS configuration for this proxy. + TLS tls = 8; + // intention_default_allow is the default action for intentions. This determines how the Envoy RBAC filters are generated. + bool intention_default_allow = 9; + // escape defines top level escape hatches. These are user configured json strings that configure an entire piece of listener or cluster Envoy configuration. + EscapeHatches escape = 10; + // access_logs configures access logging for this proxy. + AccessLogs access_logs = 11; +} diff --git a/proto-public/pbmesh/v1alpha1/references.pb.binary.go b/proto-public/pbmesh/v1alpha1/references.pb.binary.go new file mode 100644 index 000000000000..d8193e451681 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/references.pb.binary.go @@ -0,0 +1,38 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/references.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LeafCertificateRef) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LeafCertificateRef) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TrustBundleRef) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TrustBundleRef) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *EndpointRef) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *EndpointRef) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/references.pb.go b/proto-public/pbmesh/v1alpha1/references.pb.go new file mode 100644 index 000000000000..e5abca5110b3 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/references.pb.go @@ -0,0 +1,365 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/references.proto + +package meshv1alpha1 + +import ( + pbresource "github.com/hashicorp/consul/proto-public/pbresource" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type LeafCertificateRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + Partition string `protobuf:"bytes,3,opt,name=partition,proto3" json:"partition,omitempty"` + Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"` + Datacenter string `protobuf:"bytes,5,opt,name=datacenter,proto3" json:"datacenter,omitempty"` + DnsSan []string `protobuf:"bytes,6,rep,name=dns_san,json=dnsSan,proto3" json:"dns_san,omitempty"` +} + +func (x *LeafCertificateRef) Reset() { + *x = LeafCertificateRef{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeafCertificateRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeafCertificateRef) ProtoMessage() {} + +func (x *LeafCertificateRef) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeafCertificateRef.ProtoReflect.Descriptor instead. +func (*LeafCertificateRef) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_references_proto_rawDescGZIP(), []int{0} +} + +func (x *LeafCertificateRef) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *LeafCertificateRef) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *LeafCertificateRef) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *LeafCertificateRef) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (x *LeafCertificateRef) GetDatacenter() string { + if x != nil { + return x.Datacenter + } + return "" +} + +func (x *LeafCertificateRef) GetDnsSan() []string { + if x != nil { + return x.DnsSan + } + return nil +} + +type TrustBundleRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer string `protobuf:"bytes,1,opt,name=peer,proto3" json:"peer,omitempty"` + TrustDomain string `protobuf:"bytes,2,opt,name=trust_domain,json=trustDomain,proto3" json:"trust_domain,omitempty"` +} + +func (x *TrustBundleRef) Reset() { + *x = TrustBundleRef{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustBundleRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustBundleRef) ProtoMessage() {} + +func (x *TrustBundleRef) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustBundleRef.ProtoReflect.Descriptor instead. +func (*TrustBundleRef) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_references_proto_rawDescGZIP(), []int{1} +} + +func (x *TrustBundleRef) GetPeer() string { + if x != nil { + return x.Peer + } + return "" +} + +func (x *TrustBundleRef) GetTrustDomain() string { + if x != nil { + return x.TrustDomain + } + return "" +} + +type EndpointRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id is the ServiceEndpoints resource id. + Id *pbresource.ID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // port is the name of the port in the ServiceEndpoints to generate the Endpoints from. + Port string `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` +} + +func (x *EndpointRef) Reset() { + *x = EndpointRef{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EndpointRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EndpointRef) ProtoMessage() {} + +func (x *EndpointRef) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_references_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EndpointRef.ProtoReflect.Descriptor instead. +func (*EndpointRef) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_references_proto_rawDescGZIP(), []int{2} +} + +func (x *EndpointRef) GetId() *pbresource.ID { + if x != nil { + return x.Id + } + return nil +} + +func (x *EndpointRef) GetPort() string { + if x != nil { + return x.Port + } + return "" +} + +var File_pbmesh_v1alpha1_references_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_references_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x1a, 0x19, 0x70, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x01, + 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, + 0x74, 0x61, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x5f, + 0x73, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6e, 0x73, 0x53, 0x61, + 0x6e, 0x22, 0x47, 0x0a, 0x0e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, + 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x50, 0x0a, 0x0b, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2e, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x97, 0x02, 0x0a, + 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x42, 0x0f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, + 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_references_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_references_proto_rawDescData = file_pbmesh_v1alpha1_references_proto_rawDesc +) + +func file_pbmesh_v1alpha1_references_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_references_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_references_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_references_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_references_proto_rawDescData +} + +var file_pbmesh_v1alpha1_references_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_pbmesh_v1alpha1_references_proto_goTypes = []interface{}{ + (*LeafCertificateRef)(nil), // 0: hashicorp.consul.mesh.v1alpha1.LeafCertificateRef + (*TrustBundleRef)(nil), // 1: hashicorp.consul.mesh.v1alpha1.TrustBundleRef + (*EndpointRef)(nil), // 2: hashicorp.consul.mesh.v1alpha1.EndpointRef + (*pbresource.ID)(nil), // 3: hashicorp.consul.resource.ID +} +var file_pbmesh_v1alpha1_references_proto_depIdxs = []int32{ + 3, // 0: hashicorp.consul.mesh.v1alpha1.EndpointRef.id:type_name -> hashicorp.consul.resource.ID + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_references_proto_init() } +func file_pbmesh_v1alpha1_references_proto_init() { + if File_pbmesh_v1alpha1_references_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_references_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeafCertificateRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_references_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustBundleRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_references_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EndpointRef); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_references_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_references_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_references_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_references_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_references_proto = out.File + file_pbmesh_v1alpha1_references_proto_rawDesc = nil + file_pbmesh_v1alpha1_references_proto_goTypes = nil + file_pbmesh_v1alpha1_references_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/references.proto b/proto-public/pbmesh/v1alpha1/references.proto new file mode 100644 index 000000000000..13d4116cbc30 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/references.proto @@ -0,0 +1,29 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "pbresource/resource.proto"; + +message LeafCertificateRef { + string name = 1; + string namespace = 2; + string partition = 3; + string host = 4; + string datacenter = 5; + repeated string dns_san = 6; +} + +message TrustBundleRef { + string peer = 1; + string trust_domain = 2; +} + +message EndpointRef { + // id is the ServiceEndpoints resource id. + hashicorp.consul.resource.ID id = 1; + // port is the name of the port in the ServiceEndpoints to generate the Endpoints from. + string port = 2; +} diff --git a/proto-public/pbmesh/v1alpha1/route.pb.binary.go b/proto-public/pbmesh/v1alpha1/route.pb.binary.go new file mode 100644 index 000000000000..f50de72dc287 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/route.pb.binary.go @@ -0,0 +1,178 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/route.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *Route) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *Route) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *VirtualHost) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *VirtualHost) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RouteRule) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RouteRule) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RouteMatch) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RouteMatch) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *PathMatch) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *PathMatch) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *QueryParameterMatch) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *QueryParameterMatch) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *HeaderMatch) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *HeaderMatch) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RouteDestination) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RouteDestination) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DestinationConfiguration) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DestinationConfiguration) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *RetryPolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *RetryPolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TimeoutConfig) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TimeoutConfig) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LoadBalancerHashPolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LoadBalancerHashPolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *CookiePolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *CookiePolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *HeaderPolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *HeaderPolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *QueryParameterPolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *QueryParameterPolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *ConnectionPropertiesPolicy) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *ConnectionPropertiesPolicy) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *DestinationCluster) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *DestinationCluster) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/route.pb.go b/proto-public/pbmesh/v1alpha1/route.pb.go new file mode 100644 index 000000000000..2fe192a4ecd5 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/route.pb.go @@ -0,0 +1,1879 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/route.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Route struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the route. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // virtual_hosts is a list of virtual hosts. A virtual host is selected based on an incoming request's host header. + VirtualHosts []*VirtualHost `protobuf:"bytes,2,rep,name=virtual_hosts,json=virtualHosts,proto3" json:"virtual_hosts,omitempty"` +} + +func (x *Route) Reset() { + *x = Route{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Route) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Route) ProtoMessage() {} + +func (x *Route) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Route.ProtoReflect.Descriptor instead. +func (*Route) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{0} +} + +func (x *Route) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Route) GetVirtualHosts() []*VirtualHost { + if x != nil { + return x.VirtualHosts + } + return nil +} + +type VirtualHost struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // domains are used to match an incoming request's host header and determine which virtual host to use. + Domains []string `protobuf:"bytes,2,rep,name=domains,proto3" json:"domains,omitempty"` + // header_mutations to apply to the request when it matches this virtual host. These are applied after any headers in + // the RouteRule. + HeaderMutations []*HeaderMutation `protobuf:"bytes,3,rep,name=header_mutations,json=headerMutations,proto3" json:"header_mutations,omitempty"` + // route_rules are a list of rules to use for what to do next with this request. The first rule with a match will be + // used. + RouteRules []*RouteRule `protobuf:"bytes,4,rep,name=route_rules,json=routeRules,proto3" json:"route_rules,omitempty"` +} + +func (x *VirtualHost) Reset() { + *x = VirtualHost{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VirtualHost) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VirtualHost) ProtoMessage() {} + +func (x *VirtualHost) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VirtualHost.ProtoReflect.Descriptor instead. +func (*VirtualHost) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{1} +} + +func (x *VirtualHost) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *VirtualHost) GetDomains() []string { + if x != nil { + return x.Domains + } + return nil +} + +func (x *VirtualHost) GetHeaderMutations() []*HeaderMutation { + if x != nil { + return x.HeaderMutations + } + return nil +} + +func (x *VirtualHost) GetRouteRules() []*RouteRule { + if x != nil { + return x.RouteRules + } + return nil +} + +type RouteRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // match determines how to match the request. The first match determines which destination the request will go to. + Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` + // destination is where to send the request to. + Destination *RouteDestination `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` + // header_mutations to apply to the request. These are applied before the VirtualHost header mutations. + HeaderMutations []*HeaderMutation `protobuf:"bytes,3,rep,name=header_mutations,json=headerMutations,proto3" json:"header_mutations,omitempty"` +} + +func (x *RouteRule) Reset() { + *x = RouteRule{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouteRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteRule) ProtoMessage() {} + +func (x *RouteRule) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteRule.ProtoReflect.Descriptor instead. +func (*RouteRule) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{2} +} + +func (x *RouteRule) GetMatch() *RouteMatch { + if x != nil { + return x.Match + } + return nil +} + +func (x *RouteRule) GetDestination() *RouteDestination { + if x != nil { + return x.Destination + } + return nil +} + +func (x *RouteRule) GetHeaderMutations() []*HeaderMutation { + if x != nil { + return x.HeaderMutations + } + return nil +} + +// RouteMatch has configuration to match a request. +type RouteMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PathMatch *PathMatch `protobuf:"bytes,1,opt,name=path_match,json=pathMatch,proto3" json:"path_match,omitempty"` + HeaderMatches []*HeaderMatch `protobuf:"bytes,2,rep,name=header_matches,json=headerMatches,proto3" json:"header_matches,omitempty"` + MethodMatches []string `protobuf:"bytes,3,rep,name=method_matches,json=methodMatches,proto3" json:"method_matches,omitempty"` + QueryParameterMatches []*QueryParameterMatch `protobuf:"bytes,4,rep,name=query_parameter_matches,json=queryParameterMatches,proto3" json:"query_parameter_matches,omitempty"` +} + +func (x *RouteMatch) Reset() { + *x = RouteMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouteMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteMatch) ProtoMessage() {} + +func (x *RouteMatch) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead. +func (*RouteMatch) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{3} +} + +func (x *RouteMatch) GetPathMatch() *PathMatch { + if x != nil { + return x.PathMatch + } + return nil +} + +func (x *RouteMatch) GetHeaderMatches() []*HeaderMatch { + if x != nil { + return x.HeaderMatches + } + return nil +} + +func (x *RouteMatch) GetMethodMatches() []string { + if x != nil { + return x.MethodMatches + } + return nil +} + +func (x *RouteMatch) GetQueryParameterMatches() []*QueryParameterMatch { + if x != nil { + return x.QueryParameterMatches + } + return nil +} + +type PathMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to PathMatch: + // + // *PathMatch_Exact + // *PathMatch_Prefix + // *PathMatch_Regex + PathMatch isPathMatch_PathMatch `protobuf_oneof:"path_match"` +} + +func (x *PathMatch) Reset() { + *x = PathMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathMatch) ProtoMessage() {} + +func (x *PathMatch) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PathMatch.ProtoReflect.Descriptor instead. +func (*PathMatch) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{4} +} + +func (m *PathMatch) GetPathMatch() isPathMatch_PathMatch { + if m != nil { + return m.PathMatch + } + return nil +} + +func (x *PathMatch) GetExact() string { + if x, ok := x.GetPathMatch().(*PathMatch_Exact); ok { + return x.Exact + } + return "" +} + +func (x *PathMatch) GetPrefix() string { + if x, ok := x.GetPathMatch().(*PathMatch_Prefix); ok { + return x.Prefix + } + return "" +} + +func (x *PathMatch) GetRegex() string { + if x, ok := x.GetPathMatch().(*PathMatch_Regex); ok { + return x.Regex + } + return "" +} + +type isPathMatch_PathMatch interface { + isPathMatch_PathMatch() +} + +type PathMatch_Exact struct { + Exact string `protobuf:"bytes,1,opt,name=exact,proto3,oneof"` +} + +type PathMatch_Prefix struct { + Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3,oneof"` +} + +type PathMatch_Regex struct { + Regex string `protobuf:"bytes,3,opt,name=regex,proto3,oneof"` +} + +func (*PathMatch_Exact) isPathMatch_PathMatch() {} + +func (*PathMatch_Prefix) isPathMatch_PathMatch() {} + +func (*PathMatch_Regex) isPathMatch_PathMatch() {} + +type QueryParameterMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are assignable to Match: + // + // *QueryParameterMatch_Exact + // *QueryParameterMatch_Regex + // *QueryParameterMatch_Present + Match isQueryParameterMatch_Match `protobuf_oneof:"match"` +} + +func (x *QueryParameterMatch) Reset() { + *x = QueryParameterMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParameterMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParameterMatch) ProtoMessage() {} + +func (x *QueryParameterMatch) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryParameterMatch.ProtoReflect.Descriptor instead. +func (*QueryParameterMatch) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{5} +} + +func (x *QueryParameterMatch) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (m *QueryParameterMatch) GetMatch() isQueryParameterMatch_Match { + if m != nil { + return m.Match + } + return nil +} + +func (x *QueryParameterMatch) GetExact() string { + if x, ok := x.GetMatch().(*QueryParameterMatch_Exact); ok { + return x.Exact + } + return "" +} + +func (x *QueryParameterMatch) GetRegex() string { + if x, ok := x.GetMatch().(*QueryParameterMatch_Regex); ok { + return x.Regex + } + return "" +} + +func (x *QueryParameterMatch) GetPresent() bool { + if x, ok := x.GetMatch().(*QueryParameterMatch_Present); ok { + return x.Present + } + return false +} + +type isQueryParameterMatch_Match interface { + isQueryParameterMatch_Match() +} + +type QueryParameterMatch_Exact struct { + Exact string `protobuf:"bytes,2,opt,name=exact,proto3,oneof"` +} + +type QueryParameterMatch_Regex struct { + Regex string `protobuf:"bytes,3,opt,name=regex,proto3,oneof"` +} + +type QueryParameterMatch_Present struct { + Present bool `protobuf:"varint,4,opt,name=present,proto3,oneof"` +} + +func (*QueryParameterMatch_Exact) isQueryParameterMatch_Match() {} + +func (*QueryParameterMatch_Regex) isQueryParameterMatch_Match() {} + +func (*QueryParameterMatch_Present) isQueryParameterMatch_Match() {} + +type HeaderMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Types that are assignable to Match: + // + // *HeaderMatch_Exact + // *HeaderMatch_Prefix + // *HeaderMatch_Suffix + // *HeaderMatch_Regex + // *HeaderMatch_Present + Match isHeaderMatch_Match `protobuf_oneof:"match"` + InvertMatch bool `protobuf:"varint,7,opt,name=invert_match,json=invertMatch,proto3" json:"invert_match,omitempty"` +} + +func (x *HeaderMatch) Reset() { + *x = HeaderMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeaderMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeaderMatch) ProtoMessage() {} + +func (x *HeaderMatch) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeaderMatch.ProtoReflect.Descriptor instead. +func (*HeaderMatch) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{6} +} + +func (x *HeaderMatch) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (m *HeaderMatch) GetMatch() isHeaderMatch_Match { + if m != nil { + return m.Match + } + return nil +} + +func (x *HeaderMatch) GetExact() string { + if x, ok := x.GetMatch().(*HeaderMatch_Exact); ok { + return x.Exact + } + return "" +} + +func (x *HeaderMatch) GetPrefix() string { + if x, ok := x.GetMatch().(*HeaderMatch_Prefix); ok { + return x.Prefix + } + return "" +} + +func (x *HeaderMatch) GetSuffix() string { + if x, ok := x.GetMatch().(*HeaderMatch_Suffix); ok { + return x.Suffix + } + return "" +} + +func (x *HeaderMatch) GetRegex() string { + if x, ok := x.GetMatch().(*HeaderMatch_Regex); ok { + return x.Regex + } + return "" +} + +func (x *HeaderMatch) GetPresent() bool { + if x, ok := x.GetMatch().(*HeaderMatch_Present); ok { + return x.Present + } + return false +} + +func (x *HeaderMatch) GetInvertMatch() bool { + if x != nil { + return x.InvertMatch + } + return false +} + +type isHeaderMatch_Match interface { + isHeaderMatch_Match() +} + +type HeaderMatch_Exact struct { + Exact string `protobuf:"bytes,2,opt,name=exact,proto3,oneof"` +} + +type HeaderMatch_Prefix struct { + Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3,oneof"` +} + +type HeaderMatch_Suffix struct { + Suffix string `protobuf:"bytes,4,opt,name=suffix,proto3,oneof"` +} + +type HeaderMatch_Regex struct { + Regex string `protobuf:"bytes,5,opt,name=regex,proto3,oneof"` +} + +type HeaderMatch_Present struct { + Present bool `protobuf:"varint,6,opt,name=present,proto3,oneof"` +} + +func (*HeaderMatch_Exact) isHeaderMatch_Match() {} + +func (*HeaderMatch_Prefix) isHeaderMatch_Match() {} + +func (*HeaderMatch_Suffix) isHeaderMatch_Match() {} + +func (*HeaderMatch_Regex) isHeaderMatch_Match() {} + +func (*HeaderMatch_Present) isHeaderMatch_Match() {} + +// RouteDestination has configuration for where to send a request. +type RouteDestination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // destination is one or more clusters to route to. + // + // Types that are assignable to Destination: + // + // *RouteDestination_Cluster + // *RouteDestination_WeightedClusters + Destination isRouteDestination_Destination `protobuf_oneof:"destination"` + DestinationConfiguration *DestinationConfiguration `protobuf:"bytes,3,opt,name=destination_configuration,json=destinationConfiguration,proto3" json:"destination_configuration,omitempty"` +} + +func (x *RouteDestination) Reset() { + *x = RouteDestination{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouteDestination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteDestination) ProtoMessage() {} + +func (x *RouteDestination) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteDestination.ProtoReflect.Descriptor instead. +func (*RouteDestination) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{7} +} + +func (m *RouteDestination) GetDestination() isRouteDestination_Destination { + if m != nil { + return m.Destination + } + return nil +} + +func (x *RouteDestination) GetCluster() *DestinationCluster { + if x, ok := x.GetDestination().(*RouteDestination_Cluster); ok { + return x.Cluster + } + return nil +} + +func (x *RouteDestination) GetWeightedClusters() *L7WeightedClusterGroup { + if x, ok := x.GetDestination().(*RouteDestination_WeightedClusters); ok { + return x.WeightedClusters + } + return nil +} + +func (x *RouteDestination) GetDestinationConfiguration() *DestinationConfiguration { + if x != nil { + return x.DestinationConfiguration + } + return nil +} + +type isRouteDestination_Destination interface { + isRouteDestination_Destination() +} + +type RouteDestination_Cluster struct { + Cluster *DestinationCluster `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"` +} + +type RouteDestination_WeightedClusters struct { + WeightedClusters *L7WeightedClusterGroup `protobuf:"bytes,2,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"` +} + +func (*RouteDestination_Cluster) isRouteDestination_Destination() {} + +func (*RouteDestination_WeightedClusters) isRouteDestination_Destination() {} + +type DestinationConfiguration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AutoHostRewrite *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=auto_host_rewrite,json=autoHostRewrite,proto3" json:"auto_host_rewrite,omitempty"` + HashPolicies []*LoadBalancerHashPolicy `protobuf:"bytes,2,rep,name=hash_policies,json=hashPolicies,proto3" json:"hash_policies,omitempty"` + TimeoutConfig *TimeoutConfig `protobuf:"bytes,3,opt,name=timeout_config,json=timeoutConfig,proto3" json:"timeout_config,omitempty"` + PrefixRewrite string `protobuf:"bytes,4,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"` + RetryPolicy *RetryPolicy `protobuf:"bytes,5,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` +} + +func (x *DestinationConfiguration) Reset() { + *x = DestinationConfiguration{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestinationConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestinationConfiguration) ProtoMessage() {} + +func (x *DestinationConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestinationConfiguration.ProtoReflect.Descriptor instead. +func (*DestinationConfiguration) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{8} +} + +func (x *DestinationConfiguration) GetAutoHostRewrite() *wrapperspb.BoolValue { + if x != nil { + return x.AutoHostRewrite + } + return nil +} + +func (x *DestinationConfiguration) GetHashPolicies() []*LoadBalancerHashPolicy { + if x != nil { + return x.HashPolicies + } + return nil +} + +func (x *DestinationConfiguration) GetTimeoutConfig() *TimeoutConfig { + if x != nil { + return x.TimeoutConfig + } + return nil +} + +func (x *DestinationConfiguration) GetPrefixRewrite() string { + if x != nil { + return x.PrefixRewrite + } + return "" +} + +func (x *DestinationConfiguration) GetRetryPolicy() *RetryPolicy { + if x != nil { + return x.RetryPolicy + } + return nil +} + +type RetryPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RetryOn string `protobuf:"bytes,1,opt,name=retry_on,json=retryOn,proto3" json:"retry_on,omitempty"` + NumRetries *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=num_retries,json=numRetries,proto3" json:"num_retries,omitempty"` + RetriableStatusCodes []uint32 `protobuf:"varint,3,rep,packed,name=retriable_status_codes,json=retriableStatusCodes,proto3" json:"retriable_status_codes,omitempty"` +} + +func (x *RetryPolicy) Reset() { + *x = RetryPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RetryPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetryPolicy) ProtoMessage() {} + +func (x *RetryPolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead. +func (*RetryPolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{9} +} + +func (x *RetryPolicy) GetRetryOn() string { + if x != nil { + return x.RetryOn + } + return "" +} + +func (x *RetryPolicy) GetNumRetries() *wrapperspb.UInt32Value { + if x != nil { + return x.NumRetries + } + return nil +} + +func (x *RetryPolicy) GetRetriableStatusCodes() []uint32 { + if x != nil { + return x.RetriableStatusCodes + } + return nil +} + +type TimeoutConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` + IdleTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` +} + +func (x *TimeoutConfig) Reset() { + *x = TimeoutConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimeoutConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeoutConfig) ProtoMessage() {} + +func (x *TimeoutConfig) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeoutConfig.ProtoReflect.Descriptor instead. +func (*TimeoutConfig) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{10} +} + +func (x *TimeoutConfig) GetTimeout() *durationpb.Duration { + if x != nil { + return x.Timeout + } + return nil +} + +func (x *TimeoutConfig) GetIdleTimeout() *durationpb.Duration { + if x != nil { + return x.IdleTimeout + } + return nil +} + +type LoadBalancerHashPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Policy: + // + // *LoadBalancerHashPolicy_Cookie + // *LoadBalancerHashPolicy_Header + // *LoadBalancerHashPolicy_QueryParameter + // *LoadBalancerHashPolicy_ConnectionProperties + Policy isLoadBalancerHashPolicy_Policy `protobuf_oneof:"policy"` +} + +func (x *LoadBalancerHashPolicy) Reset() { + *x = LoadBalancerHashPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoadBalancerHashPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoadBalancerHashPolicy) ProtoMessage() {} + +func (x *LoadBalancerHashPolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoadBalancerHashPolicy.ProtoReflect.Descriptor instead. +func (*LoadBalancerHashPolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{11} +} + +func (m *LoadBalancerHashPolicy) GetPolicy() isLoadBalancerHashPolicy_Policy { + if m != nil { + return m.Policy + } + return nil +} + +func (x *LoadBalancerHashPolicy) GetCookie() *CookiePolicy { + if x, ok := x.GetPolicy().(*LoadBalancerHashPolicy_Cookie); ok { + return x.Cookie + } + return nil +} + +func (x *LoadBalancerHashPolicy) GetHeader() *HeaderPolicy { + if x, ok := x.GetPolicy().(*LoadBalancerHashPolicy_Header); ok { + return x.Header + } + return nil +} + +func (x *LoadBalancerHashPolicy) GetQueryParameter() *QueryParameterPolicy { + if x, ok := x.GetPolicy().(*LoadBalancerHashPolicy_QueryParameter); ok { + return x.QueryParameter + } + return nil +} + +func (x *LoadBalancerHashPolicy) GetConnectionProperties() *ConnectionPropertiesPolicy { + if x, ok := x.GetPolicy().(*LoadBalancerHashPolicy_ConnectionProperties); ok { + return x.ConnectionProperties + } + return nil +} + +type isLoadBalancerHashPolicy_Policy interface { + isLoadBalancerHashPolicy_Policy() +} + +type LoadBalancerHashPolicy_Cookie struct { + Cookie *CookiePolicy `protobuf:"bytes,1,opt,name=cookie,proto3,oneof"` +} + +type LoadBalancerHashPolicy_Header struct { + Header *HeaderPolicy `protobuf:"bytes,2,opt,name=header,proto3,oneof"` +} + +type LoadBalancerHashPolicy_QueryParameter struct { + QueryParameter *QueryParameterPolicy `protobuf:"bytes,3,opt,name=query_parameter,json=queryParameter,proto3,oneof"` +} + +type LoadBalancerHashPolicy_ConnectionProperties struct { + ConnectionProperties *ConnectionPropertiesPolicy `protobuf:"bytes,4,opt,name=connection_properties,json=connectionProperties,proto3,oneof"` +} + +func (*LoadBalancerHashPolicy_Cookie) isLoadBalancerHashPolicy_Policy() {} + +func (*LoadBalancerHashPolicy_Header) isLoadBalancerHashPolicy_Policy() {} + +func (*LoadBalancerHashPolicy_QueryParameter) isLoadBalancerHashPolicy_Policy() {} + +func (*LoadBalancerHashPolicy_ConnectionProperties) isLoadBalancerHashPolicy_Policy() {} + +type CookiePolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Ttl *durationpb.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"` + Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` + Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"` +} + +func (x *CookiePolicy) Reset() { + *x = CookiePolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CookiePolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CookiePolicy) ProtoMessage() {} + +func (x *CookiePolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CookiePolicy.ProtoReflect.Descriptor instead. +func (*CookiePolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{12} +} + +func (x *CookiePolicy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CookiePolicy) GetTtl() *durationpb.Duration { + if x != nil { + return x.Ttl + } + return nil +} + +func (x *CookiePolicy) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *CookiePolicy) GetTerminal() bool { + if x != nil { + return x.Terminal + } + return false +} + +type HeaderPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Terminal bool `protobuf:"varint,2,opt,name=terminal,proto3" json:"terminal,omitempty"` +} + +func (x *HeaderPolicy) Reset() { + *x = HeaderPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeaderPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeaderPolicy) ProtoMessage() {} + +func (x *HeaderPolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeaderPolicy.ProtoReflect.Descriptor instead. +func (*HeaderPolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{13} +} + +func (x *HeaderPolicy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *HeaderPolicy) GetTerminal() bool { + if x != nil { + return x.Terminal + } + return false +} + +type QueryParameterPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Terminal bool `protobuf:"varint,2,opt,name=terminal,proto3" json:"terminal,omitempty"` +} + +func (x *QueryParameterPolicy) Reset() { + *x = QueryParameterPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryParameterPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryParameterPolicy) ProtoMessage() {} + +func (x *QueryParameterPolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryParameterPolicy.ProtoReflect.Descriptor instead. +func (*QueryParameterPolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{14} +} + +func (x *QueryParameterPolicy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *QueryParameterPolicy) GetTerminal() bool { + if x != nil { + return x.Terminal + } + return false +} + +type ConnectionPropertiesPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SourceIp bool `protobuf:"varint,1,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"` + Terminal bool `protobuf:"varint,2,opt,name=terminal,proto3" json:"terminal,omitempty"` +} + +func (x *ConnectionPropertiesPolicy) Reset() { + *x = ConnectionPropertiesPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectionPropertiesPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectionPropertiesPolicy) ProtoMessage() {} + +func (x *ConnectionPropertiesPolicy) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectionPropertiesPolicy.ProtoReflect.Descriptor instead. +func (*ConnectionPropertiesPolicy) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{15} +} + +func (x *ConnectionPropertiesPolicy) GetSourceIp() bool { + if x != nil { + return x.SourceIp + } + return false +} + +func (x *ConnectionPropertiesPolicy) GetTerminal() bool { + if x != nil { + return x.Terminal + } + return false +} + +type DestinationCluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DestinationCluster) Reset() { + *x = DestinationCluster{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestinationCluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestinationCluster) ProtoMessage() {} + +func (x *DestinationCluster) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_route_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestinationCluster.ProtoReflect.Descriptor instead. +func (*DestinationCluster) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_route_proto_rawDescGZIP(), []int{16} +} + +func (x *DestinationCluster) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +var File_pbmesh_v1alpha1_route_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_route_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 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, 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, 0x1d, 0x70, + 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x70, 0x62, + 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x73, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, + 0x73, 0x74, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, + 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x73, 0x12, 0x59, 0x0a, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x0b, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x52, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x10, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x75, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x75, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbe, 0x02, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x48, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x09, 0x70, 0x61, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x52, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x09, 0x50, 0x61, 0x74, 0x68, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x42, + 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x7e, 0x0a, + 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, + 0x12, 0x16, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xcd, 0x01, + 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, + 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xcf, 0x02, + 0x0a, 0x10, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x65, 0x0a, 0x11, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x37, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x10, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, + 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x75, 0x0a, 0x19, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x8c, 0x03, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x11, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x68, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x61, + 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, + 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x4e, + 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x9d, + 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x19, + 0x0a, 0x08, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x12, 0x3d, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, + 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6e, 0x75, + 0x6d, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x82, + 0x01, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 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, 0x3c, 0x0a, 0x0c, 0x69, 0x64, 0x6c, 0x65, 0x5f, 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, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x22, 0x86, 0x03, 0x0a, 0x16, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x46, + 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x5f, + 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, + 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, + 0x71, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x7f, 0x0a, 0x0c, + 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 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, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x3e, 0x0a, + 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x46, 0x0a, + 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x55, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, + 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x28, 0x0a, 0x12, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x92, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0a, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, + 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, + 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, + 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, + 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_route_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_route_proto_rawDescData = file_pbmesh_v1alpha1_route_proto_rawDesc +) + +func file_pbmesh_v1alpha1_route_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_route_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_route_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_route_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_route_proto_rawDescData +} + +var file_pbmesh_v1alpha1_route_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_pbmesh_v1alpha1_route_proto_goTypes = []interface{}{ + (*Route)(nil), // 0: hashicorp.consul.mesh.v1alpha1.Route + (*VirtualHost)(nil), // 1: hashicorp.consul.mesh.v1alpha1.VirtualHost + (*RouteRule)(nil), // 2: hashicorp.consul.mesh.v1alpha1.RouteRule + (*RouteMatch)(nil), // 3: hashicorp.consul.mesh.v1alpha1.RouteMatch + (*PathMatch)(nil), // 4: hashicorp.consul.mesh.v1alpha1.PathMatch + (*QueryParameterMatch)(nil), // 5: hashicorp.consul.mesh.v1alpha1.QueryParameterMatch + (*HeaderMatch)(nil), // 6: hashicorp.consul.mesh.v1alpha1.HeaderMatch + (*RouteDestination)(nil), // 7: hashicorp.consul.mesh.v1alpha1.RouteDestination + (*DestinationConfiguration)(nil), // 8: hashicorp.consul.mesh.v1alpha1.DestinationConfiguration + (*RetryPolicy)(nil), // 9: hashicorp.consul.mesh.v1alpha1.RetryPolicy + (*TimeoutConfig)(nil), // 10: hashicorp.consul.mesh.v1alpha1.TimeoutConfig + (*LoadBalancerHashPolicy)(nil), // 11: hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy + (*CookiePolicy)(nil), // 12: hashicorp.consul.mesh.v1alpha1.CookiePolicy + (*HeaderPolicy)(nil), // 13: hashicorp.consul.mesh.v1alpha1.HeaderPolicy + (*QueryParameterPolicy)(nil), // 14: hashicorp.consul.mesh.v1alpha1.QueryParameterPolicy + (*ConnectionPropertiesPolicy)(nil), // 15: hashicorp.consul.mesh.v1alpha1.ConnectionPropertiesPolicy + (*DestinationCluster)(nil), // 16: hashicorp.consul.mesh.v1alpha1.DestinationCluster + (*HeaderMutation)(nil), // 17: hashicorp.consul.mesh.v1alpha1.HeaderMutation + (*L7WeightedClusterGroup)(nil), // 18: hashicorp.consul.mesh.v1alpha1.L7WeightedClusterGroup + (*wrapperspb.BoolValue)(nil), // 19: google.protobuf.BoolValue + (*wrapperspb.UInt32Value)(nil), // 20: google.protobuf.UInt32Value + (*durationpb.Duration)(nil), // 21: google.protobuf.Duration +} +var file_pbmesh_v1alpha1_route_proto_depIdxs = []int32{ + 1, // 0: hashicorp.consul.mesh.v1alpha1.Route.virtual_hosts:type_name -> hashicorp.consul.mesh.v1alpha1.VirtualHost + 17, // 1: hashicorp.consul.mesh.v1alpha1.VirtualHost.header_mutations:type_name -> hashicorp.consul.mesh.v1alpha1.HeaderMutation + 2, // 2: hashicorp.consul.mesh.v1alpha1.VirtualHost.route_rules:type_name -> hashicorp.consul.mesh.v1alpha1.RouteRule + 3, // 3: hashicorp.consul.mesh.v1alpha1.RouteRule.match:type_name -> hashicorp.consul.mesh.v1alpha1.RouteMatch + 7, // 4: hashicorp.consul.mesh.v1alpha1.RouteRule.destination:type_name -> hashicorp.consul.mesh.v1alpha1.RouteDestination + 17, // 5: hashicorp.consul.mesh.v1alpha1.RouteRule.header_mutations:type_name -> hashicorp.consul.mesh.v1alpha1.HeaderMutation + 4, // 6: hashicorp.consul.mesh.v1alpha1.RouteMatch.path_match:type_name -> hashicorp.consul.mesh.v1alpha1.PathMatch + 6, // 7: hashicorp.consul.mesh.v1alpha1.RouteMatch.header_matches:type_name -> hashicorp.consul.mesh.v1alpha1.HeaderMatch + 5, // 8: hashicorp.consul.mesh.v1alpha1.RouteMatch.query_parameter_matches:type_name -> hashicorp.consul.mesh.v1alpha1.QueryParameterMatch + 16, // 9: hashicorp.consul.mesh.v1alpha1.RouteDestination.cluster:type_name -> hashicorp.consul.mesh.v1alpha1.DestinationCluster + 18, // 10: hashicorp.consul.mesh.v1alpha1.RouteDestination.weighted_clusters:type_name -> hashicorp.consul.mesh.v1alpha1.L7WeightedClusterGroup + 8, // 11: hashicorp.consul.mesh.v1alpha1.RouteDestination.destination_configuration:type_name -> hashicorp.consul.mesh.v1alpha1.DestinationConfiguration + 19, // 12: hashicorp.consul.mesh.v1alpha1.DestinationConfiguration.auto_host_rewrite:type_name -> google.protobuf.BoolValue + 11, // 13: hashicorp.consul.mesh.v1alpha1.DestinationConfiguration.hash_policies:type_name -> hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy + 10, // 14: hashicorp.consul.mesh.v1alpha1.DestinationConfiguration.timeout_config:type_name -> hashicorp.consul.mesh.v1alpha1.TimeoutConfig + 9, // 15: hashicorp.consul.mesh.v1alpha1.DestinationConfiguration.retry_policy:type_name -> hashicorp.consul.mesh.v1alpha1.RetryPolicy + 20, // 16: hashicorp.consul.mesh.v1alpha1.RetryPolicy.num_retries:type_name -> google.protobuf.UInt32Value + 21, // 17: hashicorp.consul.mesh.v1alpha1.TimeoutConfig.timeout:type_name -> google.protobuf.Duration + 21, // 18: hashicorp.consul.mesh.v1alpha1.TimeoutConfig.idle_timeout:type_name -> google.protobuf.Duration + 12, // 19: hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy.cookie:type_name -> hashicorp.consul.mesh.v1alpha1.CookiePolicy + 13, // 20: hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy.header:type_name -> hashicorp.consul.mesh.v1alpha1.HeaderPolicy + 14, // 21: hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy.query_parameter:type_name -> hashicorp.consul.mesh.v1alpha1.QueryParameterPolicy + 15, // 22: hashicorp.consul.mesh.v1alpha1.LoadBalancerHashPolicy.connection_properties:type_name -> hashicorp.consul.mesh.v1alpha1.ConnectionPropertiesPolicy + 21, // 23: hashicorp.consul.mesh.v1alpha1.CookiePolicy.ttl:type_name -> google.protobuf.Duration + 24, // [24:24] is the sub-list for method output_type + 24, // [24:24] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_route_proto_init() } +func file_pbmesh_v1alpha1_route_proto_init() { + if File_pbmesh_v1alpha1_route_proto != nil { + return + } + file_pbmesh_v1alpha1_cluster_proto_init() + file_pbmesh_v1alpha1_header_mutations_proto_init() + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_route_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Route); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VirtualHost); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParameterMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeaderMatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteDestination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestinationConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RetryPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimeoutConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoadBalancerHashPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CookiePolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeaderPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryParameterPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnectionPropertiesPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestinationCluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_route_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*PathMatch_Exact)(nil), + (*PathMatch_Prefix)(nil), + (*PathMatch_Regex)(nil), + } + file_pbmesh_v1alpha1_route_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*QueryParameterMatch_Exact)(nil), + (*QueryParameterMatch_Regex)(nil), + (*QueryParameterMatch_Present)(nil), + } + file_pbmesh_v1alpha1_route_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*HeaderMatch_Exact)(nil), + (*HeaderMatch_Prefix)(nil), + (*HeaderMatch_Suffix)(nil), + (*HeaderMatch_Regex)(nil), + (*HeaderMatch_Present)(nil), + } + file_pbmesh_v1alpha1_route_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*RouteDestination_Cluster)(nil), + (*RouteDestination_WeightedClusters)(nil), + } + file_pbmesh_v1alpha1_route_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*LoadBalancerHashPolicy_Cookie)(nil), + (*LoadBalancerHashPolicy_Header)(nil), + (*LoadBalancerHashPolicy_QueryParameter)(nil), + (*LoadBalancerHashPolicy_ConnectionProperties)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_route_proto_rawDesc, + NumEnums: 0, + NumMessages: 17, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_route_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_route_proto_depIdxs, + MessageInfos: file_pbmesh_v1alpha1_route_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_route_proto = out.File + file_pbmesh_v1alpha1_route_proto_rawDesc = nil + file_pbmesh_v1alpha1_route_proto_goTypes = nil + file_pbmesh_v1alpha1_route_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/route.proto b/proto-public/pbmesh/v1alpha1/route.proto new file mode 100644 index 000000000000..adcf350bc127 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/route.proto @@ -0,0 +1,138 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; +import "pbmesh/v1alpha1/cluster.proto"; +import "pbmesh/v1alpha1/header_mutations.proto"; + +message Route { + // name is the name of the route. + string name = 1; + // virtual_hosts is a list of virtual hosts. A virtual host is selected based on an incoming request's host header. + repeated VirtualHost virtual_hosts = 2; +} + +message VirtualHost { + string name = 1; + // domains are used to match an incoming request's host header and determine which virtual host to use. + repeated string domains = 2; + // header_mutations to apply to the request when it matches this virtual host. These are applied after any headers in + // the RouteRule. + repeated HeaderMutation header_mutations = 3; + // route_rules are a list of rules to use for what to do next with this request. The first rule with a match will be + // used. + repeated RouteRule route_rules = 4; +} + +message RouteRule { + // match determines how to match the request. The first match determines which destination the request will go to. + RouteMatch match = 1; + // destination is where to send the request to. + RouteDestination destination = 2; + // header_mutations to apply to the request. These are applied before the VirtualHost header mutations. + repeated HeaderMutation header_mutations = 3; +} + +// RouteMatch has configuration to match a request. +message RouteMatch { + PathMatch path_match = 1; + repeated HeaderMatch header_matches = 2; + repeated string method_matches = 3; + repeated QueryParameterMatch query_parameter_matches = 4; +} + +message PathMatch { + oneof path_match { + string exact = 1; + string prefix = 2; + string regex = 3; + } +} + +message QueryParameterMatch { + string name = 1; + oneof match { + string exact = 2; + string regex = 3; + bool present = 4; + } +} + +message HeaderMatch { + string name = 1; + oneof match { + string exact = 2; + string prefix = 3; + string suffix = 4; + string regex = 5; + bool present = 6; + } + bool invert_match = 7; +} + +// RouteDestination has configuration for where to send a request. +message RouteDestination { + // destination is one or more clusters to route to. + oneof destination { + DestinationCluster cluster = 1; + L7WeightedClusterGroup weighted_clusters = 2; + } + DestinationConfiguration destination_configuration = 3; +} + +message DestinationConfiguration { + google.protobuf.BoolValue auto_host_rewrite = 1; + repeated LoadBalancerHashPolicy hash_policies = 2; + TimeoutConfig timeout_config = 3; + string prefix_rewrite = 4; + RetryPolicy retry_policy = 5; +} + +message RetryPolicy { + string retry_on = 1; + google.protobuf.UInt32Value num_retries = 2; + repeated uint32 retriable_status_codes = 3; +} + +message TimeoutConfig { + google.protobuf.Duration timeout = 1; + google.protobuf.Duration idle_timeout = 2; +} + +message LoadBalancerHashPolicy { + oneof policy { + CookiePolicy cookie = 1; + HeaderPolicy header = 2; + QueryParameterPolicy query_parameter = 3; + ConnectionPropertiesPolicy connection_properties = 4; + } +} + +message CookiePolicy { + string name = 1; + google.protobuf.Duration ttl = 2; + string path = 3; + bool terminal = 4; +} +message HeaderPolicy { + string name = 1; + bool terminal = 2; +} +message QueryParameterPolicy { + string name = 1; + bool terminal = 2; +} +message ConnectionPropertiesPolicy { + bool source_ip = 1; + bool terminal = 2; +} + +message DestinationCluster { + // name is the name of the cluster. This will be used to look up a cluster in the clusters map. + string name = 1; +} diff --git a/proto-public/pbmesh/v1alpha1/transport_socket.pb.binary.go b/proto-public/pbmesh/v1alpha1/transport_socket.pb.binary.go new file mode 100644 index 000000000000..6669cd6f0ad3 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/transport_socket.pb.binary.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go-binary. DO NOT EDIT. +// source: pbmesh/v1alpha1/transport_socket.proto + +package meshv1alpha1 + +import ( + "google.golang.org/protobuf/proto" +) + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TLS) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TLS) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TransportSocket) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TransportSocket) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *InboundMeshMTLS) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *InboundMeshMTLS) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *OutboundMeshMTLS) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *OutboundMeshMTLS) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *InboundNonMeshTLS) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *InboundNonMeshTLS) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *OutboundNonMeshTLS) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *OutboundNonMeshTLS) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *MeshInboundValidationContext) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *MeshInboundValidationContext) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *MeshOutboundValidationContext) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *MeshOutboundValidationContext) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *NonMeshOutboundValidationContext) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *NonMeshOutboundValidationContext) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *SDSCertificate) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *SDSCertificate) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TLSParameters) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TLSParameters) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *LeafCertificate) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *LeafCertificate) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} + +// MarshalBinary implements encoding.BinaryMarshaler +func (msg *TrustBundle) MarshalBinary() ([]byte, error) { + return proto.Marshal(msg) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler +func (msg *TrustBundle) UnmarshalBinary(b []byte) error { + return proto.Unmarshal(b, msg) +} diff --git a/proto-public/pbmesh/v1alpha1/transport_socket.pb.go b/proto-public/pbmesh/v1alpha1/transport_socket.pb.go new file mode 100644 index 000000000000..210ca364f889 --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/transport_socket.pb.go @@ -0,0 +1,1488 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: pbmesh/v1alpha1/transport_socket.proto + +package meshv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TLSVersion int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + TLSVersion_TLS_VERSION_AUTO TLSVersion = 0 + TLSVersion_TLS_VERSION_1_0 TLSVersion = 1 + TLSVersion_TLS_VERSION_1_1 TLSVersion = 2 + TLSVersion_TLS_VERSION_1_2 TLSVersion = 3 + TLSVersion_TLS_VERSION_1_3 TLSVersion = 4 + TLSVersion_TLS_VERSION_INVALID TLSVersion = 5 + TLSVersion_TLS_VERSION_UNSPECIFIED TLSVersion = 6 +) + +// Enum value maps for TLSVersion. +var ( + TLSVersion_name = map[int32]string{ + 0: "TLS_VERSION_AUTO", + 1: "TLS_VERSION_1_0", + 2: "TLS_VERSION_1_1", + 3: "TLS_VERSION_1_2", + 4: "TLS_VERSION_1_3", + 5: "TLS_VERSION_INVALID", + 6: "TLS_VERSION_UNSPECIFIED", + } + TLSVersion_value = map[string]int32{ + "TLS_VERSION_AUTO": 0, + "TLS_VERSION_1_0": 1, + "TLS_VERSION_1_1": 2, + "TLS_VERSION_1_2": 3, + "TLS_VERSION_1_3": 4, + "TLS_VERSION_INVALID": 5, + "TLS_VERSION_UNSPECIFIED": 6, + } +) + +func (x TLSVersion) Enum() *TLSVersion { + p := new(TLSVersion) + *p = x + return p +} + +func (x TLSVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TLSVersion) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_transport_socket_proto_enumTypes[0].Descriptor() +} + +func (TLSVersion) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_transport_socket_proto_enumTypes[0] +} + +func (x TLSVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TLSVersion.Descriptor instead. +func (TLSVersion) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{0} +} + +type TLSCipherSuite int32 + +const ( + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_GCM_SHA256 TLSCipherSuite = 0 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_ECDSA_CHACHA20_POLY1305 TLSCipherSuite = 1 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_RSA_AES128_GCM_SHA256 TLSCipherSuite = 2 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_RSA_CHACHA20_POLY1305 TLSCipherSuite = 3 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_SHA TLSCipherSuite = 4 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_RSA_AES128_SHA TLSCipherSuite = 5 + TLSCipherSuite_TLS_CIPHER_SUITE_AES128_GCM_SHA256 TLSCipherSuite = 6 + TLSCipherSuite_TLS_CIPHER_SUITE_AES128_SHA TLSCipherSuite = 7 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_GCM_SHA384 TLSCipherSuite = 8 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_RSA_AES256_GCM_SHA384 TLSCipherSuite = 9 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_SHA TLSCipherSuite = 10 + TLSCipherSuite_TLS_CIPHER_SUITE_ECDHE_RSA_AES256_SHA TLSCipherSuite = 11 + TLSCipherSuite_TLS_CIPHER_SUITE_AES256_GCM_SHA384 TLSCipherSuite = 12 + TLSCipherSuite_TLS_CIPHER_SUITE_AES256_SHA TLSCipherSuite = 13 +) + +// Enum value maps for TLSCipherSuite. +var ( + TLSCipherSuite_name = map[int32]string{ + 0: "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_GCM_SHA256", + 1: "TLS_CIPHER_SUITE_ECDHE_ECDSA_CHACHA20_POLY1305", + 2: "TLS_CIPHER_SUITE_ECDHE_RSA_AES128_GCM_SHA256", + 3: "TLS_CIPHER_SUITE_ECDHE_RSA_CHACHA20_POLY1305", + 4: "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_SHA", + 5: "TLS_CIPHER_SUITE_ECDHE_RSA_AES128_SHA", + 6: "TLS_CIPHER_SUITE_AES128_GCM_SHA256", + 7: "TLS_CIPHER_SUITE_AES128_SHA", + 8: "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_GCM_SHA384", + 9: "TLS_CIPHER_SUITE_ECDHE_RSA_AES256_GCM_SHA384", + 10: "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_SHA", + 11: "TLS_CIPHER_SUITE_ECDHE_RSA_AES256_SHA", + 12: "TLS_CIPHER_SUITE_AES256_GCM_SHA384", + 13: "TLS_CIPHER_SUITE_AES256_SHA", + } + TLSCipherSuite_value = map[string]int32{ + "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_GCM_SHA256": 0, + "TLS_CIPHER_SUITE_ECDHE_ECDSA_CHACHA20_POLY1305": 1, + "TLS_CIPHER_SUITE_ECDHE_RSA_AES128_GCM_SHA256": 2, + "TLS_CIPHER_SUITE_ECDHE_RSA_CHACHA20_POLY1305": 3, + "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_SHA": 4, + "TLS_CIPHER_SUITE_ECDHE_RSA_AES128_SHA": 5, + "TLS_CIPHER_SUITE_AES128_GCM_SHA256": 6, + "TLS_CIPHER_SUITE_AES128_SHA": 7, + "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_GCM_SHA384": 8, + "TLS_CIPHER_SUITE_ECDHE_RSA_AES256_GCM_SHA384": 9, + "TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_SHA": 10, + "TLS_CIPHER_SUITE_ECDHE_RSA_AES256_SHA": 11, + "TLS_CIPHER_SUITE_AES256_GCM_SHA384": 12, + "TLS_CIPHER_SUITE_AES256_SHA": 13, + } +) + +func (x TLSCipherSuite) Enum() *TLSCipherSuite { + p := new(TLSCipherSuite) + *p = x + return p +} + +func (x TLSCipherSuite) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TLSCipherSuite) Descriptor() protoreflect.EnumDescriptor { + return file_pbmesh_v1alpha1_transport_socket_proto_enumTypes[1].Descriptor() +} + +func (TLSCipherSuite) Type() protoreflect.EnumType { + return &file_pbmesh_v1alpha1_transport_socket_proto_enumTypes[1] +} + +func (x TLSCipherSuite) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TLSCipherSuite.Descriptor instead. +func (TLSCipherSuite) EnumDescriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{1} +} + +type TLS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // inbound_tls_parameters has default TLS parameter configuration for inbound connections. These can be overridden per + // transport socket. + InboundTlsParameters *TLSParameters `protobuf:"bytes,1,opt,name=inbound_tls_parameters,json=inboundTlsParameters,proto3" json:"inbound_tls_parameters,omitempty"` + // outbound_tls_parameters has default TLS parameter configuration for inbound connections. These can be overridden per transport socket. + OutboundTlsParameters *TLSParameters `protobuf:"bytes,2,opt,name=outbound_tls_parameters,json=outboundTlsParameters,proto3" json:"outbound_tls_parameters,omitempty"` + // TrustBundles is a map of peer name to trust domain. The V2 resource tenancy field will have the peer, which will be either local, or have a peer name. The map keys would be "local" or the name of the peer if it is for a remote peer. The peer name and trust domain will be used to look up CA pems for a trust domain. + TrustBundles map[string]string `protobuf:"bytes,3,rep,name=trust_bundles,json=trustBundles,proto3" json:"trust_bundles,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TLS) Reset() { + *x = TLS{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TLS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TLS) ProtoMessage() {} + +func (x *TLS) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TLS.ProtoReflect.Descriptor instead. +func (*TLS) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{0} +} + +func (x *TLS) GetInboundTlsParameters() *TLSParameters { + if x != nil { + return x.InboundTlsParameters + } + return nil +} + +func (x *TLS) GetOutboundTlsParameters() *TLSParameters { + if x != nil { + return x.OutboundTlsParameters + } + return nil +} + +func (x *TLS) GetTrustBundles() map[string]string { + if x != nil { + return x.TrustBundles + } + return nil +} + +type TransportSocket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ConnectionTls: + // + // *TransportSocket_InboundMesh + // *TransportSocket_OutboundMesh + // *TransportSocket_InboundNonMesh + // *TransportSocket_OutboundNonMesh + ConnectionTls isTransportSocket_ConnectionTls `protobuf_oneof:"connection_tls"` + // tls_parameters can override any top level tls parameters that are configured. + TlsParameters *TLSParameters `protobuf:"bytes,5,opt,name=tls_parameters,json=tlsParameters,proto3" json:"tls_parameters,omitempty"` + AlpnProtocols []string `protobuf:"bytes,6,rep,name=alpn_protocols,json=alpnProtocols,proto3" json:"alpn_protocols,omitempty"` +} + +func (x *TransportSocket) Reset() { + *x = TransportSocket{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransportSocket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransportSocket) ProtoMessage() {} + +func (x *TransportSocket) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransportSocket.ProtoReflect.Descriptor instead. +func (*TransportSocket) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{1} +} + +func (m *TransportSocket) GetConnectionTls() isTransportSocket_ConnectionTls { + if m != nil { + return m.ConnectionTls + } + return nil +} + +func (x *TransportSocket) GetInboundMesh() *InboundMeshMTLS { + if x, ok := x.GetConnectionTls().(*TransportSocket_InboundMesh); ok { + return x.InboundMesh + } + return nil +} + +func (x *TransportSocket) GetOutboundMesh() *OutboundMeshMTLS { + if x, ok := x.GetConnectionTls().(*TransportSocket_OutboundMesh); ok { + return x.OutboundMesh + } + return nil +} + +func (x *TransportSocket) GetInboundNonMesh() *InboundNonMeshTLS { + if x, ok := x.GetConnectionTls().(*TransportSocket_InboundNonMesh); ok { + return x.InboundNonMesh + } + return nil +} + +func (x *TransportSocket) GetOutboundNonMesh() *OutboundNonMeshTLS { + if x, ok := x.GetConnectionTls().(*TransportSocket_OutboundNonMesh); ok { + return x.OutboundNonMesh + } + return nil +} + +func (x *TransportSocket) GetTlsParameters() *TLSParameters { + if x != nil { + return x.TlsParameters + } + return nil +} + +func (x *TransportSocket) GetAlpnProtocols() []string { + if x != nil { + return x.AlpnProtocols + } + return nil +} + +type isTransportSocket_ConnectionTls interface { + isTransportSocket_ConnectionTls() +} + +type TransportSocket_InboundMesh struct { + // inbound_mesh is for incoming connections FROM the mesh. + InboundMesh *InboundMeshMTLS `protobuf:"bytes,1,opt,name=inbound_mesh,json=inboundMesh,proto3,oneof"` +} + +type TransportSocket_OutboundMesh struct { + // outbound_mesh is for outbound connections TO mesh destinations. + OutboundMesh *OutboundMeshMTLS `protobuf:"bytes,2,opt,name=outbound_mesh,json=outboundMesh,proto3,oneof"` +} + +type TransportSocket_InboundNonMesh struct { + // inbound_non_mesh is for incoming connections FROM non mesh. + InboundNonMesh *InboundNonMeshTLS `protobuf:"bytes,3,opt,name=inbound_non_mesh,json=inboundNonMesh,proto3,oneof"` +} + +type TransportSocket_OutboundNonMesh struct { + // outbound_non_mesh is for outbound connections TO non mesh destinations. + OutboundNonMesh *OutboundNonMeshTLS `protobuf:"bytes,4,opt,name=outbound_non_mesh,json=outboundNonMesh,proto3,oneof"` +} + +func (*TransportSocket_InboundMesh) isTransportSocket_ConnectionTls() {} + +func (*TransportSocket_OutboundMesh) isTransportSocket_ConnectionTls() {} + +func (*TransportSocket_InboundNonMesh) isTransportSocket_ConnectionTls() {} + +func (*TransportSocket_OutboundNonMesh) isTransportSocket_ConnectionTls() {} + +type InboundMeshMTLS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // identity_key is UUID key to use to look up the leaf certificate in ProxyState to present for incoming connections. + IdentityKey string `protobuf:"bytes,1,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + // validation_context has what is needed to validate incoming connections. + ValidationContext *MeshInboundValidationContext `protobuf:"bytes,2,opt,name=validation_context,json=validationContext,proto3" json:"validation_context,omitempty"` +} + +func (x *InboundMeshMTLS) Reset() { + *x = InboundMeshMTLS{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InboundMeshMTLS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InboundMeshMTLS) ProtoMessage() {} + +func (x *InboundMeshMTLS) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InboundMeshMTLS.ProtoReflect.Descriptor instead. +func (*InboundMeshMTLS) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{2} +} + +func (x *InboundMeshMTLS) GetIdentityKey() string { + if x != nil { + return x.IdentityKey + } + return "" +} + +func (x *InboundMeshMTLS) GetValidationContext() *MeshInboundValidationContext { + if x != nil { + return x.ValidationContext + } + return nil +} + +type OutboundMeshMTLS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // identity_key is UUID key to use to look up the leaf certificate in ProxyState when connecting to destinations. + IdentityKey string `protobuf:"bytes,1,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + // validation_context has what is needed to validate the destination. + ValidationContext *MeshOutboundValidationContext `protobuf:"bytes,2,opt,name=validation_context,json=validationContext,proto3" json:"validation_context,omitempty"` + // sni to use when connecting to the destination. + Sni string `protobuf:"bytes,3,opt,name=sni,proto3" json:"sni,omitempty"` +} + +func (x *OutboundMeshMTLS) Reset() { + *x = OutboundMeshMTLS{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutboundMeshMTLS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutboundMeshMTLS) ProtoMessage() {} + +func (x *OutboundMeshMTLS) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutboundMeshMTLS.ProtoReflect.Descriptor instead. +func (*OutboundMeshMTLS) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{3} +} + +func (x *OutboundMeshMTLS) GetIdentityKey() string { + if x != nil { + return x.IdentityKey + } + return "" +} + +func (x *OutboundMeshMTLS) GetValidationContext() *MeshOutboundValidationContext { + if x != nil { + return x.ValidationContext + } + return nil +} + +func (x *OutboundMeshMTLS) GetSni() string { + if x != nil { + return x.Sni + } + return "" +} + +type InboundNonMeshTLS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // identity is the reference to the leaf certificate to present for incoming connections. + // + // Types that are assignable to Identity: + // + // *InboundNonMeshTLS_LeafKey + // *InboundNonMeshTLS_Sds + Identity isInboundNonMeshTLS_Identity `protobuf_oneof:"identity"` +} + +func (x *InboundNonMeshTLS) Reset() { + *x = InboundNonMeshTLS{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InboundNonMeshTLS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InboundNonMeshTLS) ProtoMessage() {} + +func (x *InboundNonMeshTLS) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InboundNonMeshTLS.ProtoReflect.Descriptor instead. +func (*InboundNonMeshTLS) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{4} +} + +func (m *InboundNonMeshTLS) GetIdentity() isInboundNonMeshTLS_Identity { + if m != nil { + return m.Identity + } + return nil +} + +func (x *InboundNonMeshTLS) GetLeafKey() string { + if x, ok := x.GetIdentity().(*InboundNonMeshTLS_LeafKey); ok { + return x.LeafKey + } + return "" +} + +func (x *InboundNonMeshTLS) GetSds() *SDSCertificate { + if x, ok := x.GetIdentity().(*InboundNonMeshTLS_Sds); ok { + return x.Sds + } + return nil +} + +type isInboundNonMeshTLS_Identity interface { + isInboundNonMeshTLS_Identity() +} + +type InboundNonMeshTLS_LeafKey struct { + // leaf_key is the UUID key to use to look up the leaf certificate in the ProxyState leaf certificate map. + LeafKey string `protobuf:"bytes,1,opt,name=leaf_key,json=leafKey,proto3,oneof"` +} + +type InboundNonMeshTLS_Sds struct { + // sds refers to certificates retrieved via Envoy SDS. + Sds *SDSCertificate `protobuf:"bytes,2,opt,name=sds,proto3,oneof"` +} + +func (*InboundNonMeshTLS_LeafKey) isInboundNonMeshTLS_Identity() {} + +func (*InboundNonMeshTLS_Sds) isInboundNonMeshTLS_Identity() {} + +type OutboundNonMeshTLS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // cert_file is a filename for a certificate to present for outbound connections. + CertFile string `protobuf:"bytes,1,opt,name=cert_file,json=certFile,proto3" json:"cert_file,omitempty"` + // key_file is a filename for a key for outbound connections. + KeyFile string `protobuf:"bytes,2,opt,name=key_file,json=keyFile,proto3" json:"key_file,omitempty"` + // validation_context has what is needed to validate the destination. + ValidationContext *NonMeshOutboundValidationContext `protobuf:"bytes,3,opt,name=validation_context,json=validationContext,proto3" json:"validation_context,omitempty"` +} + +func (x *OutboundNonMeshTLS) Reset() { + *x = OutboundNonMeshTLS{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutboundNonMeshTLS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutboundNonMeshTLS) ProtoMessage() {} + +func (x *OutboundNonMeshTLS) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutboundNonMeshTLS.ProtoReflect.Descriptor instead. +func (*OutboundNonMeshTLS) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{5} +} + +func (x *OutboundNonMeshTLS) GetCertFile() string { + if x != nil { + return x.CertFile + } + return "" +} + +func (x *OutboundNonMeshTLS) GetKeyFile() string { + if x != nil { + return x.KeyFile + } + return "" +} + +func (x *OutboundNonMeshTLS) GetValidationContext() *NonMeshOutboundValidationContext { + if x != nil { + return x.ValidationContext + } + return nil +} + +type MeshInboundValidationContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // trust_bundle_peer_name_keys is which trust bundles to use for validating incoming connections. If this workload is exported + // to peers, the incoming connection could be from a different peer, requiring that trust bundle to validate the + // connection. These could be local or peered trust bundles. This will be a key in the trust bundle map. + TrustBundlePeerNameKeys []string `protobuf:"bytes,1,rep,name=trust_bundle_peer_name_keys,json=trustBundlePeerNameKeys,proto3" json:"trust_bundle_peer_name_keys,omitempty"` +} + +func (x *MeshInboundValidationContext) Reset() { + *x = MeshInboundValidationContext{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeshInboundValidationContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeshInboundValidationContext) ProtoMessage() {} + +func (x *MeshInboundValidationContext) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeshInboundValidationContext.ProtoReflect.Descriptor instead. +func (*MeshInboundValidationContext) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{6} +} + +func (x *MeshInboundValidationContext) GetTrustBundlePeerNameKeys() []string { + if x != nil { + return x.TrustBundlePeerNameKeys + } + return nil +} + +type MeshOutboundValidationContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // trust_bundle_peer_name_key is which trust bundle to use for the destination. It could be the local or a peer's trust bundle. + // This will be a key in the trust bundle map. + TrustBundlePeerNameKey string `protobuf:"bytes,1,opt,name=trust_bundle_peer_name_key,json=trustBundlePeerNameKey,proto3" json:"trust_bundle_peer_name_key,omitempty"` + // spiffe_ids is one or more spiffe IDs to validate. + SpiffeIds []string `protobuf:"bytes,2,rep,name=spiffe_ids,json=spiffeIds,proto3" json:"spiffe_ids,omitempty"` +} + +func (x *MeshOutboundValidationContext) Reset() { + *x = MeshOutboundValidationContext{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeshOutboundValidationContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeshOutboundValidationContext) ProtoMessage() {} + +func (x *MeshOutboundValidationContext) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeshOutboundValidationContext.ProtoReflect.Descriptor instead. +func (*MeshOutboundValidationContext) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{7} +} + +func (x *MeshOutboundValidationContext) GetTrustBundlePeerNameKey() string { + if x != nil { + return x.TrustBundlePeerNameKey + } + return "" +} + +func (x *MeshOutboundValidationContext) GetSpiffeIds() []string { + if x != nil { + return x.SpiffeIds + } + return nil +} + +type NonMeshOutboundValidationContext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ca_file is a filename for a ca for outbound connections to validate the destination. + CaFile string `protobuf:"bytes,1,opt,name=ca_file,json=caFile,proto3" json:"ca_file,omitempty"` +} + +func (x *NonMeshOutboundValidationContext) Reset() { + *x = NonMeshOutboundValidationContext{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NonMeshOutboundValidationContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NonMeshOutboundValidationContext) ProtoMessage() {} + +func (x *NonMeshOutboundValidationContext) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NonMeshOutboundValidationContext.ProtoReflect.Descriptor instead. +func (*NonMeshOutboundValidationContext) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{8} +} + +func (x *NonMeshOutboundValidationContext) GetCaFile() string { + if x != nil { + return x.CaFile + } + return "" +} + +type SDSCertificate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterName string `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` + CertResource string `protobuf:"bytes,2,opt,name=cert_resource,json=certResource,proto3" json:"cert_resource,omitempty"` +} + +func (x *SDSCertificate) Reset() { + *x = SDSCertificate{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SDSCertificate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SDSCertificate) ProtoMessage() {} + +func (x *SDSCertificate) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SDSCertificate.ProtoReflect.Descriptor instead. +func (*SDSCertificate) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{9} +} + +func (x *SDSCertificate) GetClusterName() string { + if x != nil { + return x.ClusterName + } + return "" +} + +func (x *SDSCertificate) GetCertResource() string { + if x != nil { + return x.CertResource + } + return "" +} + +type TLSParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinVersion TLSVersion `protobuf:"varint,1,opt,name=min_version,json=minVersion,proto3,enum=hashicorp.consul.mesh.v1alpha1.TLSVersion" json:"min_version,omitempty"` + MaxVersion TLSVersion `protobuf:"varint,2,opt,name=max_version,json=maxVersion,proto3,enum=hashicorp.consul.mesh.v1alpha1.TLSVersion" json:"max_version,omitempty"` + CipherSuites []TLSCipherSuite `protobuf:"varint,3,rep,packed,name=cipher_suites,json=cipherSuites,proto3,enum=hashicorp.consul.mesh.v1alpha1.TLSCipherSuite" json:"cipher_suites,omitempty"` +} + +func (x *TLSParameters) Reset() { + *x = TLSParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TLSParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TLSParameters) ProtoMessage() {} + +func (x *TLSParameters) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TLSParameters.ProtoReflect.Descriptor instead. +func (*TLSParameters) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{10} +} + +func (x *TLSParameters) GetMinVersion() TLSVersion { + if x != nil { + return x.MinVersion + } + return TLSVersion_TLS_VERSION_AUTO +} + +func (x *TLSParameters) GetMaxVersion() TLSVersion { + if x != nil { + return x.MaxVersion + } + return TLSVersion_TLS_VERSION_AUTO +} + +func (x *TLSParameters) GetCipherSuites() []TLSCipherSuite { + if x != nil { + return x.CipherSuites + } + return nil +} + +type LeafCertificate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cert string `protobuf:"bytes,1,opt,name=cert,proto3" json:"cert,omitempty"` + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *LeafCertificate) Reset() { + *x = LeafCertificate{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeafCertificate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeafCertificate) ProtoMessage() {} + +func (x *LeafCertificate) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeafCertificate.ProtoReflect.Descriptor instead. +func (*LeafCertificate) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{11} +} + +func (x *LeafCertificate) GetCert() string { + if x != nil { + return x.Cert + } + return "" +} + +func (x *LeafCertificate) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +type TrustBundle struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ca string `protobuf:"bytes,1,opt,name=ca,proto3" json:"ca,omitempty"` +} + +func (x *TrustBundle) Reset() { + *x = TrustBundle{} + if protoimpl.UnsafeEnabled { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustBundle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustBundle) ProtoMessage() {} + +func (x *TrustBundle) ProtoReflect() protoreflect.Message { + mi := &file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustBundle.ProtoReflect.Descriptor instead. +func (*TrustBundle) Descriptor() ([]byte, []int) { + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP(), []int{12} +} + +func (x *TrustBundle) GetCa() string { + if x != nil { + return x.Ca + } + return "" +} + +var File_pbmesh_v1alpha1_transport_socket_proto protoreflect.FileDescriptor + +var file_pbmesh_v1alpha1_transport_socket_proto_rawDesc = []byte{ + 0x0a, 0x26, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0xee, 0x02, 0x0a, 0x03, 0x54, 0x4c, 0x53, + 0x12, 0x63, 0x0a, 0x16, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x14, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x6c, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x65, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, + 0x6c, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0d, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x72, 0x75, 0x73, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 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, 0x90, 0x04, 0x0a, 0x0f, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x54, 0x0a, + 0x0c, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x68, + 0x4d, 0x54, 0x4c, 0x53, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x68, 0x12, 0x57, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, + 0x6d, 0x65, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x54, 0x4c, 0x53, 0x48, 0x00, 0x52, 0x0c, + 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x68, 0x12, 0x5d, 0x0a, 0x10, + 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, + 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x4c, 0x53, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x12, 0x60, 0x0a, 0x11, 0x6f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x4c, 0x53, 0x48, 0x00, 0x52, 0x0f, 0x6f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x12, 0x54, 0x0a, + 0x0e, 0x74, 0x6c, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, + 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x70, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x22, 0xa1, 0x01, 0x0a, + 0x0f, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x54, 0x4c, 0x53, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x4b, 0x65, 0x79, 0x12, 0x6b, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x11, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x22, 0xb5, 0x01, 0x0a, 0x10, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, + 0x68, 0x4d, 0x54, 0x4c, 0x53, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x6c, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x69, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6e, 0x69, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x54, 0x4c, 0x53, 0x12, 0x1b, + 0x0a, 0x08, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x66, 0x4b, 0x65, 0x79, 0x12, 0x42, 0x0a, 0x03, 0x73, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x44, 0x53, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x64, 0x73, 0x42, + 0x0a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xbd, 0x01, 0x0a, 0x12, + 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x54, + 0x4c, 0x53, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x12, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x5c, 0x0a, 0x1c, 0x4d, + 0x65, 0x73, 0x68, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3c, 0x0a, 0x1b, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x17, 0x74, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x7a, 0x0a, 0x1d, 0x4d, 0x65, 0x73, + 0x68, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3a, 0x0a, 0x1a, 0x74, 0x72, + 0x75, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, + 0x74, 0x72, 0x75, 0x73, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x70, 0x69, 0x66, + 0x66, 0x65, 0x49, 0x64, 0x73, 0x22, 0x3b, 0x0a, 0x20, 0x4e, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x68, + 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x46, 0x69, + 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x0e, 0x53, 0x44, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xfe, 0x01, 0x0a, + 0x0d, 0x54, 0x4c, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4b, + 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x6d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, + 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x61, + 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0d, 0x63, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x52, + 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x22, 0x37, 0x0a, + 0x0f, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x65, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x1d, 0x0a, 0x0b, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x63, 0x61, 0x2a, 0xac, 0x01, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, + 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, + 0x5f, 0x31, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, + 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x33, 0x10, 0x04, 0x12, 0x17, + 0x0a, 0x13, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x4c, 0x53, 0x5f, 0x56, + 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x06, 0x2a, 0x84, 0x05, 0x0a, 0x0e, 0x54, 0x4c, 0x53, 0x43, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x2e, 0x54, 0x4c, 0x53, 0x5f, 0x43, + 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, + 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x47, + 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x54, + 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, + 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x43, 0x48, 0x41, 0x43, + 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x10, 0x01, 0x12, + 0x30, 0x0a, 0x2c, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, + 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x41, 0x45, + 0x53, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, + 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, + 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, + 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, + 0x35, 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, + 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, + 0x44, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x04, + 0x12, 0x29, 0x0a, 0x25, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, + 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x41, + 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x54, + 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, + 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, + 0x36, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, + 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x31, 0x32, 0x38, 0x5f, 0x53, + 0x48, 0x41, 0x10, 0x07, 0x12, 0x32, 0x0a, 0x2e, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, + 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, + 0x43, 0x44, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f, + 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x08, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x4c, 0x53, 0x5f, + 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, + 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, + 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x09, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x4c, + 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, + 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, + 0x36, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x0a, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x4c, 0x53, 0x5f, 0x43, + 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, + 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x48, 0x41, + 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, + 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, + 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x4c, + 0x53, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x41, + 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x0d, 0x42, 0x9c, 0x02, 0x0a, 0x22, + 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, + 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, + 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, + 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_pbmesh_v1alpha1_transport_socket_proto_rawDescOnce sync.Once + file_pbmesh_v1alpha1_transport_socket_proto_rawDescData = file_pbmesh_v1alpha1_transport_socket_proto_rawDesc +) + +func file_pbmesh_v1alpha1_transport_socket_proto_rawDescGZIP() []byte { + file_pbmesh_v1alpha1_transport_socket_proto_rawDescOnce.Do(func() { + file_pbmesh_v1alpha1_transport_socket_proto_rawDescData = protoimpl.X.CompressGZIP(file_pbmesh_v1alpha1_transport_socket_proto_rawDescData) + }) + return file_pbmesh_v1alpha1_transport_socket_proto_rawDescData +} + +var file_pbmesh_v1alpha1_transport_socket_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_pbmesh_v1alpha1_transport_socket_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_pbmesh_v1alpha1_transport_socket_proto_goTypes = []interface{}{ + (TLSVersion)(0), // 0: hashicorp.consul.mesh.v1alpha1.TLSVersion + (TLSCipherSuite)(0), // 1: hashicorp.consul.mesh.v1alpha1.TLSCipherSuite + (*TLS)(nil), // 2: hashicorp.consul.mesh.v1alpha1.TLS + (*TransportSocket)(nil), // 3: hashicorp.consul.mesh.v1alpha1.TransportSocket + (*InboundMeshMTLS)(nil), // 4: hashicorp.consul.mesh.v1alpha1.InboundMeshMTLS + (*OutboundMeshMTLS)(nil), // 5: hashicorp.consul.mesh.v1alpha1.OutboundMeshMTLS + (*InboundNonMeshTLS)(nil), // 6: hashicorp.consul.mesh.v1alpha1.InboundNonMeshTLS + (*OutboundNonMeshTLS)(nil), // 7: hashicorp.consul.mesh.v1alpha1.OutboundNonMeshTLS + (*MeshInboundValidationContext)(nil), // 8: hashicorp.consul.mesh.v1alpha1.MeshInboundValidationContext + (*MeshOutboundValidationContext)(nil), // 9: hashicorp.consul.mesh.v1alpha1.MeshOutboundValidationContext + (*NonMeshOutboundValidationContext)(nil), // 10: hashicorp.consul.mesh.v1alpha1.NonMeshOutboundValidationContext + (*SDSCertificate)(nil), // 11: hashicorp.consul.mesh.v1alpha1.SDSCertificate + (*TLSParameters)(nil), // 12: hashicorp.consul.mesh.v1alpha1.TLSParameters + (*LeafCertificate)(nil), // 13: hashicorp.consul.mesh.v1alpha1.LeafCertificate + (*TrustBundle)(nil), // 14: hashicorp.consul.mesh.v1alpha1.TrustBundle + nil, // 15: hashicorp.consul.mesh.v1alpha1.TLS.TrustBundlesEntry +} +var file_pbmesh_v1alpha1_transport_socket_proto_depIdxs = []int32{ + 12, // 0: hashicorp.consul.mesh.v1alpha1.TLS.inbound_tls_parameters:type_name -> hashicorp.consul.mesh.v1alpha1.TLSParameters + 12, // 1: hashicorp.consul.mesh.v1alpha1.TLS.outbound_tls_parameters:type_name -> hashicorp.consul.mesh.v1alpha1.TLSParameters + 15, // 2: hashicorp.consul.mesh.v1alpha1.TLS.trust_bundles:type_name -> hashicorp.consul.mesh.v1alpha1.TLS.TrustBundlesEntry + 4, // 3: hashicorp.consul.mesh.v1alpha1.TransportSocket.inbound_mesh:type_name -> hashicorp.consul.mesh.v1alpha1.InboundMeshMTLS + 5, // 4: hashicorp.consul.mesh.v1alpha1.TransportSocket.outbound_mesh:type_name -> hashicorp.consul.mesh.v1alpha1.OutboundMeshMTLS + 6, // 5: hashicorp.consul.mesh.v1alpha1.TransportSocket.inbound_non_mesh:type_name -> hashicorp.consul.mesh.v1alpha1.InboundNonMeshTLS + 7, // 6: hashicorp.consul.mesh.v1alpha1.TransportSocket.outbound_non_mesh:type_name -> hashicorp.consul.mesh.v1alpha1.OutboundNonMeshTLS + 12, // 7: hashicorp.consul.mesh.v1alpha1.TransportSocket.tls_parameters:type_name -> hashicorp.consul.mesh.v1alpha1.TLSParameters + 8, // 8: hashicorp.consul.mesh.v1alpha1.InboundMeshMTLS.validation_context:type_name -> hashicorp.consul.mesh.v1alpha1.MeshInboundValidationContext + 9, // 9: hashicorp.consul.mesh.v1alpha1.OutboundMeshMTLS.validation_context:type_name -> hashicorp.consul.mesh.v1alpha1.MeshOutboundValidationContext + 11, // 10: hashicorp.consul.mesh.v1alpha1.InboundNonMeshTLS.sds:type_name -> hashicorp.consul.mesh.v1alpha1.SDSCertificate + 10, // 11: hashicorp.consul.mesh.v1alpha1.OutboundNonMeshTLS.validation_context:type_name -> hashicorp.consul.mesh.v1alpha1.NonMeshOutboundValidationContext + 0, // 12: hashicorp.consul.mesh.v1alpha1.TLSParameters.min_version:type_name -> hashicorp.consul.mesh.v1alpha1.TLSVersion + 0, // 13: hashicorp.consul.mesh.v1alpha1.TLSParameters.max_version:type_name -> hashicorp.consul.mesh.v1alpha1.TLSVersion + 1, // 14: hashicorp.consul.mesh.v1alpha1.TLSParameters.cipher_suites:type_name -> hashicorp.consul.mesh.v1alpha1.TLSCipherSuite + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_pbmesh_v1alpha1_transport_socket_proto_init() } +func file_pbmesh_v1alpha1_transport_socket_proto_init() { + if File_pbmesh_v1alpha1_transport_socket_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TLS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransportSocket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InboundMeshMTLS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutboundMeshMTLS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InboundNonMeshTLS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutboundNonMeshTLS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeshInboundValidationContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeshOutboundValidationContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NonMeshOutboundValidationContext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SDSCertificate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TLSParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeafCertificate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustBundle); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*TransportSocket_InboundMesh)(nil), + (*TransportSocket_OutboundMesh)(nil), + (*TransportSocket_InboundNonMesh)(nil), + (*TransportSocket_OutboundNonMesh)(nil), + } + file_pbmesh_v1alpha1_transport_socket_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*InboundNonMeshTLS_LeafKey)(nil), + (*InboundNonMeshTLS_Sds)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pbmesh_v1alpha1_transport_socket_proto_rawDesc, + NumEnums: 2, + NumMessages: 14, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pbmesh_v1alpha1_transport_socket_proto_goTypes, + DependencyIndexes: file_pbmesh_v1alpha1_transport_socket_proto_depIdxs, + EnumInfos: file_pbmesh_v1alpha1_transport_socket_proto_enumTypes, + MessageInfos: file_pbmesh_v1alpha1_transport_socket_proto_msgTypes, + }.Build() + File_pbmesh_v1alpha1_transport_socket_proto = out.File + file_pbmesh_v1alpha1_transport_socket_proto_rawDesc = nil + file_pbmesh_v1alpha1_transport_socket_proto_goTypes = nil + file_pbmesh_v1alpha1_transport_socket_proto_depIdxs = nil +} diff --git a/proto-public/pbmesh/v1alpha1/transport_socket.proto b/proto-public/pbmesh/v1alpha1/transport_socket.proto new file mode 100644 index 000000000000..8b9b8359783e --- /dev/null +++ b/proto-public/pbmesh/v1alpha1/transport_socket.proto @@ -0,0 +1,136 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +syntax = "proto3"; + +package hashicorp.consul.mesh.v1alpha1; + +message TLS { + // inbound_tls_parameters has default TLS parameter configuration for inbound connections. These can be overridden per + // transport socket. + TLSParameters inbound_tls_parameters = 1; + // outbound_tls_parameters has default TLS parameter configuration for inbound connections. These can be overridden per transport socket. + TLSParameters outbound_tls_parameters = 2; + // TrustBundles is a map of peer name to trust domain. The V2 resource tenancy field will have the peer, which will be either local, or have a peer name. The map keys would be "local" or the name of the peer if it is for a remote peer. The peer name and trust domain will be used to look up CA pems for a trust domain. + map trust_bundles = 3; +} + +message TransportSocket { + oneof connection_tls { + // inbound_mesh is for incoming connections FROM the mesh. + InboundMeshMTLS inbound_mesh = 1; + // outbound_mesh is for outbound connections TO mesh destinations. + OutboundMeshMTLS outbound_mesh = 2; + // inbound_non_mesh is for incoming connections FROM non mesh. + InboundNonMeshTLS inbound_non_mesh = 3; + // outbound_non_mesh is for outbound connections TO non mesh destinations. + OutboundNonMeshTLS outbound_non_mesh = 4; + } + // tls_parameters can override any top level tls parameters that are configured. + TLSParameters tls_parameters = 5; + repeated string alpn_protocols = 6; +} + +message InboundMeshMTLS { + // identity_key is UUID key to use to look up the leaf certificate in ProxyState to present for incoming connections. + string identity_key = 1; + // validation_context has what is needed to validate incoming connections. + MeshInboundValidationContext validation_context = 2; +} + +message OutboundMeshMTLS { + // identity_key is UUID key to use to look up the leaf certificate in ProxyState when connecting to destinations. + string identity_key = 1; + // validation_context has what is needed to validate the destination. + MeshOutboundValidationContext validation_context = 2; + // sni to use when connecting to the destination. + string sni = 3; +} + +message InboundNonMeshTLS { + // identity is the reference to the leaf certificate to present for incoming connections. + oneof identity { + // leaf_key is the UUID key to use to look up the leaf certificate in the ProxyState leaf certificate map. + string leaf_key = 1; + // sds refers to certificates retrieved via Envoy SDS. + SDSCertificate sds = 2; + } +} + +message OutboundNonMeshTLS { + // cert_file is a filename for a certificate to present for outbound connections. + string cert_file = 1; + // key_file is a filename for a key for outbound connections. + string key_file = 2; + // validation_context has what is needed to validate the destination. + NonMeshOutboundValidationContext validation_context = 3; +} + +message MeshInboundValidationContext { + // trust_bundle_peer_name_keys is which trust bundles to use for validating incoming connections. If this workload is exported + // to peers, the incoming connection could be from a different peer, requiring that trust bundle to validate the + // connection. These could be local or peered trust bundles. This will be a key in the trust bundle map. + repeated string trust_bundle_peer_name_keys = 1; +} + +message MeshOutboundValidationContext { + // trust_bundle_peer_name_key is which trust bundle to use for the destination. It could be the local or a peer's trust bundle. + // This will be a key in the trust bundle map. + string trust_bundle_peer_name_key = 1; + // spiffe_ids is one or more spiffe IDs to validate. + repeated string spiffe_ids = 2; +} + +message NonMeshOutboundValidationContext { + // ca_file is a filename for a ca for outbound connections to validate the destination. + string ca_file = 1; +} + +message SDSCertificate { + string cluster_name = 1; + string cert_resource = 2; +} + +message TLSParameters { + TLSVersion min_version = 1; + TLSVersion max_version = 2; + repeated TLSCipherSuite cipher_suites = 3; +} + +message LeafCertificate { + string cert = 1; + string key = 2; +} + +message TrustBundle { + string ca = 1; +} + +enum TLSVersion { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + TLS_VERSION_AUTO = 0; + TLS_VERSION_1_0 = 1; + TLS_VERSION_1_1 = 2; + TLS_VERSION_1_2 = 3; + TLS_VERSION_1_3 = 4; + TLS_VERSION_INVALID = 5; + TLS_VERSION_UNSPECIFIED = 6; +} + +enum TLSCipherSuite { + // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX + TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_GCM_SHA256 = 0; + TLS_CIPHER_SUITE_ECDHE_ECDSA_CHACHA20_POLY1305 = 1; + TLS_CIPHER_SUITE_ECDHE_RSA_AES128_GCM_SHA256 = 2; + TLS_CIPHER_SUITE_ECDHE_RSA_CHACHA20_POLY1305 = 3; + TLS_CIPHER_SUITE_ECDHE_ECDSA_AES128_SHA = 4; + TLS_CIPHER_SUITE_ECDHE_RSA_AES128_SHA = 5; + TLS_CIPHER_SUITE_AES128_GCM_SHA256 = 6; + TLS_CIPHER_SUITE_AES128_SHA = 7; + TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_GCM_SHA384 = 8; + TLS_CIPHER_SUITE_ECDHE_RSA_AES256_GCM_SHA384 = 9; + TLS_CIPHER_SUITE_ECDHE_ECDSA_AES256_SHA = 10; + TLS_CIPHER_SUITE_ECDHE_RSA_AES256_SHA = 11; + TLS_CIPHER_SUITE_AES256_GCM_SHA384 = 12; + TLS_CIPHER_SUITE_AES256_SHA = 13; +} diff --git a/proto-public/pbmesh/v1alpha1/upstreams_configuration.pb.go b/proto-public/pbmesh/v1alpha1/upstreams_configuration.pb.go index a4e2cc66c82e..61f9709cdcd1 100644 --- a/proto-public/pbmesh/v1alpha1/upstreams_configuration.pb.go +++ b/proto-public/pbmesh/v1alpha1/upstreams_configuration.pb.go @@ -15,6 +15,7 @@ import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) @@ -280,16 +281,16 @@ type UpstreamLimits struct { // max_connections is the maximum number of connections the local proxy can // make to the upstream service. - MaxConnections int32 `protobuf:"varint,1,opt,name=max_connections,json=maxConnections,proto3" json:"max_connections,omitempty"` + MaxConnections *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=max_connections,json=maxConnections,proto3" json:"max_connections,omitempty"` // max_pending_requests is the maximum number of requests that will be queued // waiting for an available connection. This is mostly applicable to HTTP/1.1 // clusters since all HTTP/2 requests are streamed over a single // connection. - MaxPendingRequests int32 `protobuf:"varint,2,opt,name=max_pending_requests,json=maxPendingRequests,proto3" json:"max_pending_requests,omitempty"` + MaxPendingRequests *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=max_pending_requests,json=maxPendingRequests,proto3" json:"max_pending_requests,omitempty"` // max_concurrent_requests is the maximum number of in-flight requests that will be allowed // to the upstream cluster at a point in time. This is mostly applicable to HTTP/2 // clusters since all HTTP/1.1 requests are limited by MaxConnections. - MaxConcurrentRequests int32 `protobuf:"varint,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests,proto3" json:"max_concurrent_requests,omitempty"` + MaxConcurrentRequests *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=max_concurrent_requests,json=maxConcurrentRequests,proto3" json:"max_concurrent_requests,omitempty"` } func (x *UpstreamLimits) Reset() { @@ -324,25 +325,25 @@ func (*UpstreamLimits) Descriptor() ([]byte, []int) { return file_pbmesh_v1alpha1_upstreams_configuration_proto_rawDescGZIP(), []int{3} } -func (x *UpstreamLimits) GetMaxConnections() int32 { +func (x *UpstreamLimits) GetMaxConnections() *wrapperspb.UInt32Value { if x != nil { return x.MaxConnections } - return 0 + return nil } -func (x *UpstreamLimits) GetMaxPendingRequests() int32 { +func (x *UpstreamLimits) GetMaxPendingRequests() *wrapperspb.UInt32Value { if x != nil { return x.MaxPendingRequests } - return 0 + return nil } -func (x *UpstreamLimits) GetMaxConcurrentRequests() int32 { +func (x *UpstreamLimits) GetMaxConcurrentRequests() *wrapperspb.UInt32Value { if x != nil { return x.MaxConcurrentRequests } - return 0 + return nil } type PassiveHealthCheck struct { @@ -425,6 +426,8 @@ var file_pbmesh_v1alpha1_upstreams_configuration_proto_rawDesc = []byte{ 0x6c, 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, + 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, 0x21, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x70, 0x62, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x31, @@ -503,47 +506,53 @@ var file_pbmesh_v1alpha1_upstreams_configuration_proto_rawDesc = []byte{ 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x68, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0e, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x0e, 0x55, 0x70, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x63, - 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, - 0xaa, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 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, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21, 0x0a, - 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, - 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, - 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x42, 0xa3, 0x02, 0x0a, - 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x42, 0x1b, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, - 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, - 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, - 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, - 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x50, 0x61, + 0x73, 0x73, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 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, 0x08, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, + 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, + 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x35, 0x78, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x65, + 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x76, 0x65, 0x35, 0x78, 0x78, 0x42, 0xa3, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x68, + 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x1b, 0x55, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, + 0x72, 0x70, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x70, 0x62, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6d, 0x65, 0x73, 0x68, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x4d, 0xaa, 0x02, 0x1e, 0x48, 0x61, 0x73, 0x68, + 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x2e, 0x4d, 0x65, 0x73, + 0x68, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1e, 0x48, 0x61, 0x73, + 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, 0x65, + 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2a, 0x48, 0x61, + 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x5c, 0x4d, + 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x48, 0x61, 0x73, 0x68, 0x69, + 0x63, 0x6f, 0x72, 0x70, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x3a, 0x3a, 0x4d, 0x65, + 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -571,6 +580,7 @@ var file_pbmesh_v1alpha1_upstreams_configuration_proto_goTypes = []interface{}{ (*durationpb.Duration)(nil), // 8: google.protobuf.Duration (BalanceConnections)(0), // 9: hashicorp.consul.mesh.v1alpha1.BalanceConnections (MeshGatewayMode)(0), // 10: hashicorp.consul.mesh.v1alpha1.MeshGatewayMode + (*wrapperspb.UInt32Value)(nil), // 11: google.protobuf.UInt32Value } var file_pbmesh_v1alpha1_upstreams_configuration_proto_depIdxs = []int32{ 5, // 0: hashicorp.consul.mesh.v1alpha1.UpstreamsConfiguration.workloads:type_name -> hashicorp.consul.catalog.v1alpha1.WorkloadSelector @@ -584,12 +594,15 @@ var file_pbmesh_v1alpha1_upstreams_configuration_proto_depIdxs = []int32{ 4, // 8: hashicorp.consul.mesh.v1alpha1.UpstreamConfig.passive_health_check:type_name -> hashicorp.consul.mesh.v1alpha1.PassiveHealthCheck 9, // 9: hashicorp.consul.mesh.v1alpha1.UpstreamConfig.balance_outbound_connections:type_name -> hashicorp.consul.mesh.v1alpha1.BalanceConnections 10, // 10: hashicorp.consul.mesh.v1alpha1.UpstreamConfig.mesh_gateway_mode:type_name -> hashicorp.consul.mesh.v1alpha1.MeshGatewayMode - 8, // 11: hashicorp.consul.mesh.v1alpha1.PassiveHealthCheck.interval:type_name -> google.protobuf.Duration - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 11, // 11: hashicorp.consul.mesh.v1alpha1.UpstreamLimits.max_connections:type_name -> google.protobuf.UInt32Value + 11, // 12: hashicorp.consul.mesh.v1alpha1.UpstreamLimits.max_pending_requests:type_name -> google.protobuf.UInt32Value + 11, // 13: hashicorp.consul.mesh.v1alpha1.UpstreamLimits.max_concurrent_requests:type_name -> google.protobuf.UInt32Value + 8, // 14: hashicorp.consul.mesh.v1alpha1.PassiveHealthCheck.interval:type_name -> google.protobuf.Duration + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_pbmesh_v1alpha1_upstreams_configuration_proto_init() } diff --git a/proto-public/pbmesh/v1alpha1/upstreams_configuration.proto b/proto-public/pbmesh/v1alpha1/upstreams_configuration.proto index 9124528e2d90..81bbbf5f8269 100644 --- a/proto-public/pbmesh/v1alpha1/upstreams_configuration.proto +++ b/proto-public/pbmesh/v1alpha1/upstreams_configuration.proto @@ -6,6 +6,7 @@ syntax = "proto3"; package hashicorp.consul.mesh.v1alpha1; import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; import "pbcatalog/v1alpha1/protocol.proto"; import "pbcatalog/v1alpha1/selector.proto"; import "pbmesh/v1alpha1/connection.proto"; @@ -73,18 +74,18 @@ message UpstreamConfig { message UpstreamLimits { // max_connections is the maximum number of connections the local proxy can // make to the upstream service. - int32 max_connections = 1; + google.protobuf.UInt32Value max_connections = 1; // max_pending_requests is the maximum number of requests that will be queued // waiting for an available connection. This is mostly applicable to HTTP/1.1 // clusters since all HTTP/2 requests are streamed over a single // connection. - int32 max_pending_requests = 2; + google.protobuf.UInt32Value max_pending_requests = 2; // max_concurrent_requests is the maximum number of in-flight requests that will be allowed // to the upstream cluster at a point in time. This is mostly applicable to HTTP/2 // clusters since all HTTP/1.1 requests are limited by MaxConnections. - int32 max_concurrent_requests = 3; + google.protobuf.UInt32Value max_concurrent_requests = 3; } message PassiveHealthCheck {