mirror of
https://github.com/netbirdio/netbird.git
synced 2026-07-16 19:49:56 +00:00
* [agent-network] Shared proto, OpenAPI schema, and generated types * [agent-network] Management: store, manager, synthesizer, policy engine, provider catalog, HTTP/gRPC API Adds the account-scoped agent-network module: provider/policy/budget CRUD and store, the reverse-proxy service synthesizer, policy selection + limit enforcement, the provider catalog (incl. Vertex AI and AWS Bedrock entries), and the management HTTP + proxy gRPC surfaces. * [management] Fix agent-network proxy-peer fan-out on affected-peer recompute The affected-peers resolver loaded only persisted reverse-proxy services, but agent-network services are synthesized on demand and never persisted. As a result the embedded proxy peer was never folded into the affected set when a client's group changed, so the proxy received no network-map update for a newly authorised client and rejected its handshake until a full resync (restart). loadProxyServices now merges the synthesized agent-network services (injected via a registration hook to avoid an import cycle), so proxy peers learn newly authorised clients immediately. * [proxy] Reverse-proxy middleware framework, chain, and request plumbing The per-target middleware chain (slots, dispatcher, mutation gate, metadata merger), body capture, access-log terminal sink, and the proxy wiring that builds + runs chains for synthesized agent-network services. * [proxy] LLM parsers, pricing, and builtin middlewares (OpenAI, Anthropic, Vertex AI, AWS Bedrock) Request/response parsers and SSE/event-stream metering, the embedded pricing table, and the builtin middleware set: request parser, router, policy limit-check/record, cost meter, guardrail, identity inject, response parser. Includes the path-routed providers — Google Vertex AI (keyfile:: service-account OAuth minting) and AWS Bedrock (bearer auth, invoke/converse/streaming, optional /bedrock prefix) — plus the Models allowlist and unmeterable-publisher deny. * [proxy] IPv6 in-place apply and TCP accept-loop hardening on netstack listeners * [agent-network] End-to-end test suite, module docs, and deployment preset * [agent-network] Fix codespell typos and exclude false positives - labelgen word pool: vermillion -> vermilion, racoon -> raccoon. - codespell ignore list: add flate (Go compress/flate package), recordin (a test-local identifier), and unparseable (a valid alternative spelling used consistently across identifiers + a metadata-value constant). * [management] Set LastSeen on injected proxy peer in realstack test (MySQL strict-mode) The injected embedded proxy peer had a PeerStatus with a zero LastSeen, which serializes to '0000-00-00' and is rejected by MySQL in strict mode (SQLite tolerates it). Set LastSeen to a valid time so SaveAccount succeeds on both engines. * [agent-network] Remove e2e shell-script suite from this branch The end-to-end shell scripts under scripts/e2e/ are maintained in a separate testing suite and are not part of this change set. * [agent-network] Polish module docs: remove internal review scaffolding, fix links, verify diagrams Strip PR-review framing, commit references, absolute paths, and stale internal references from the agent-network module docs; fix broken relative links; verify all diagrams against the current architecture. Remove the internal AI-reviewer prompt file. * [management] Refine session expiration handling to support 3-state encoding for SSO deadlines * [agent-network] Relocate agentnetwork package to internals/modules Move management/server/agentnetwork (and its catalog/, labelgen/, types/ subpackages) to management/internals/modules/agentnetwork, alongside the reverse-proxy module, and rewrite all importers. Pure relocation: package names, the synthesizer + affectedpeers registration hook, and store access (shared store.Store) are unchanged, so no import cycle is introduced (affectedpeers still depends only on the agentnetwork/types leaf). * [agent-network] Co-locate HTTP handlers in the module (RegisterEndpoints) Move the agent-network HTTP handlers from server/http/handlers/agentnetwork into the module at internals/modules/agentnetwork/handlers (package handlers) and rename the entrypoint AddEndpoints -> RegisterEndpoints, matching the reverse-proxy module convention. Wiring in http/handler.go updated accordingly.
4330 lines
164 KiB
Go
4330 lines
164 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.26.0
|
|
// protoc v7.34.1
|
|
// source: proxy_service.proto
|
|
|
|
package proto
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
|
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 ProxyMappingUpdateType int32
|
|
|
|
const (
|
|
ProxyMappingUpdateType_UPDATE_TYPE_CREATED ProxyMappingUpdateType = 0
|
|
ProxyMappingUpdateType_UPDATE_TYPE_MODIFIED ProxyMappingUpdateType = 1
|
|
ProxyMappingUpdateType_UPDATE_TYPE_REMOVED ProxyMappingUpdateType = 2
|
|
)
|
|
|
|
// Enum value maps for ProxyMappingUpdateType.
|
|
var (
|
|
ProxyMappingUpdateType_name = map[int32]string{
|
|
0: "UPDATE_TYPE_CREATED",
|
|
1: "UPDATE_TYPE_MODIFIED",
|
|
2: "UPDATE_TYPE_REMOVED",
|
|
}
|
|
ProxyMappingUpdateType_value = map[string]int32{
|
|
"UPDATE_TYPE_CREATED": 0,
|
|
"UPDATE_TYPE_MODIFIED": 1,
|
|
"UPDATE_TYPE_REMOVED": 2,
|
|
}
|
|
)
|
|
|
|
func (x ProxyMappingUpdateType) Enum() *ProxyMappingUpdateType {
|
|
p := new(ProxyMappingUpdateType)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x ProxyMappingUpdateType) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (ProxyMappingUpdateType) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proxy_service_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (ProxyMappingUpdateType) Type() protoreflect.EnumType {
|
|
return &file_proxy_service_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x ProxyMappingUpdateType) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use ProxyMappingUpdateType.Descriptor instead.
|
|
func (ProxyMappingUpdateType) EnumDescriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
type PathRewriteMode int32
|
|
|
|
const (
|
|
PathRewriteMode_PATH_REWRITE_DEFAULT PathRewriteMode = 0
|
|
PathRewriteMode_PATH_REWRITE_PRESERVE PathRewriteMode = 1
|
|
)
|
|
|
|
// Enum value maps for PathRewriteMode.
|
|
var (
|
|
PathRewriteMode_name = map[int32]string{
|
|
0: "PATH_REWRITE_DEFAULT",
|
|
1: "PATH_REWRITE_PRESERVE",
|
|
}
|
|
PathRewriteMode_value = map[string]int32{
|
|
"PATH_REWRITE_DEFAULT": 0,
|
|
"PATH_REWRITE_PRESERVE": 1,
|
|
}
|
|
)
|
|
|
|
func (x PathRewriteMode) Enum() *PathRewriteMode {
|
|
p := new(PathRewriteMode)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x PathRewriteMode) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (PathRewriteMode) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proxy_service_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (PathRewriteMode) Type() protoreflect.EnumType {
|
|
return &file_proxy_service_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x PathRewriteMode) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use PathRewriteMode.Descriptor instead.
|
|
func (PathRewriteMode) EnumDescriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
// MiddlewareSlot identifies where in the request lifecycle a middleware
|
|
// runs. Mirrors proxy/internal/middleware.Slot.
|
|
type MiddlewareSlot int32
|
|
|
|
const (
|
|
MiddlewareSlot_MIDDLEWARE_SLOT_UNSPECIFIED MiddlewareSlot = 0
|
|
MiddlewareSlot_MIDDLEWARE_SLOT_ON_REQUEST MiddlewareSlot = 1
|
|
MiddlewareSlot_MIDDLEWARE_SLOT_ON_RESPONSE MiddlewareSlot = 2
|
|
MiddlewareSlot_MIDDLEWARE_SLOT_TERMINAL MiddlewareSlot = 3
|
|
)
|
|
|
|
// Enum value maps for MiddlewareSlot.
|
|
var (
|
|
MiddlewareSlot_name = map[int32]string{
|
|
0: "MIDDLEWARE_SLOT_UNSPECIFIED",
|
|
1: "MIDDLEWARE_SLOT_ON_REQUEST",
|
|
2: "MIDDLEWARE_SLOT_ON_RESPONSE",
|
|
3: "MIDDLEWARE_SLOT_TERMINAL",
|
|
}
|
|
MiddlewareSlot_value = map[string]int32{
|
|
"MIDDLEWARE_SLOT_UNSPECIFIED": 0,
|
|
"MIDDLEWARE_SLOT_ON_REQUEST": 1,
|
|
"MIDDLEWARE_SLOT_ON_RESPONSE": 2,
|
|
"MIDDLEWARE_SLOT_TERMINAL": 3,
|
|
}
|
|
)
|
|
|
|
func (x MiddlewareSlot) Enum() *MiddlewareSlot {
|
|
p := new(MiddlewareSlot)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x MiddlewareSlot) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (MiddlewareSlot) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proxy_service_proto_enumTypes[2].Descriptor()
|
|
}
|
|
|
|
func (MiddlewareSlot) Type() protoreflect.EnumType {
|
|
return &file_proxy_service_proto_enumTypes[2]
|
|
}
|
|
|
|
func (x MiddlewareSlot) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use MiddlewareSlot.Descriptor instead.
|
|
func (MiddlewareSlot) EnumDescriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
type ProxyStatus int32
|
|
|
|
const (
|
|
ProxyStatus_PROXY_STATUS_PENDING ProxyStatus = 0
|
|
ProxyStatus_PROXY_STATUS_ACTIVE ProxyStatus = 1
|
|
ProxyStatus_PROXY_STATUS_TUNNEL_NOT_CREATED ProxyStatus = 2
|
|
ProxyStatus_PROXY_STATUS_CERTIFICATE_PENDING ProxyStatus = 3
|
|
ProxyStatus_PROXY_STATUS_CERTIFICATE_FAILED ProxyStatus = 4
|
|
ProxyStatus_PROXY_STATUS_ERROR ProxyStatus = 5
|
|
)
|
|
|
|
// Enum value maps for ProxyStatus.
|
|
var (
|
|
ProxyStatus_name = map[int32]string{
|
|
0: "PROXY_STATUS_PENDING",
|
|
1: "PROXY_STATUS_ACTIVE",
|
|
2: "PROXY_STATUS_TUNNEL_NOT_CREATED",
|
|
3: "PROXY_STATUS_CERTIFICATE_PENDING",
|
|
4: "PROXY_STATUS_CERTIFICATE_FAILED",
|
|
5: "PROXY_STATUS_ERROR",
|
|
}
|
|
ProxyStatus_value = map[string]int32{
|
|
"PROXY_STATUS_PENDING": 0,
|
|
"PROXY_STATUS_ACTIVE": 1,
|
|
"PROXY_STATUS_TUNNEL_NOT_CREATED": 2,
|
|
"PROXY_STATUS_CERTIFICATE_PENDING": 3,
|
|
"PROXY_STATUS_CERTIFICATE_FAILED": 4,
|
|
"PROXY_STATUS_ERROR": 5,
|
|
}
|
|
)
|
|
|
|
func (x ProxyStatus) Enum() *ProxyStatus {
|
|
p := new(ProxyStatus)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x ProxyStatus) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (ProxyStatus) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proxy_service_proto_enumTypes[3].Descriptor()
|
|
}
|
|
|
|
func (ProxyStatus) Type() protoreflect.EnumType {
|
|
return &file_proxy_service_proto_enumTypes[3]
|
|
}
|
|
|
|
func (x ProxyStatus) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use ProxyStatus.Descriptor instead.
|
|
func (ProxyStatus) EnumDescriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
type MiddlewareConfig_FailMode int32
|
|
|
|
const (
|
|
MiddlewareConfig_FAIL_OPEN MiddlewareConfig_FailMode = 0
|
|
MiddlewareConfig_FAIL_CLOSED MiddlewareConfig_FailMode = 1
|
|
)
|
|
|
|
// Enum value maps for MiddlewareConfig_FailMode.
|
|
var (
|
|
MiddlewareConfig_FailMode_name = map[int32]string{
|
|
0: "FAIL_OPEN",
|
|
1: "FAIL_CLOSED",
|
|
}
|
|
MiddlewareConfig_FailMode_value = map[string]int32{
|
|
"FAIL_OPEN": 0,
|
|
"FAIL_CLOSED": 1,
|
|
}
|
|
)
|
|
|
|
func (x MiddlewareConfig_FailMode) Enum() *MiddlewareConfig_FailMode {
|
|
p := new(MiddlewareConfig_FailMode)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x MiddlewareConfig_FailMode) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (MiddlewareConfig_FailMode) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_proxy_service_proto_enumTypes[4].Descriptor()
|
|
}
|
|
|
|
func (MiddlewareConfig_FailMode) Type() protoreflect.EnumType {
|
|
return &file_proxy_service_proto_enumTypes[4]
|
|
}
|
|
|
|
func (x MiddlewareConfig_FailMode) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use MiddlewareConfig_FailMode.Descriptor instead.
|
|
func (MiddlewareConfig_FailMode) EnumDescriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{4, 0}
|
|
}
|
|
|
|
// ProxyCapabilities describes what a proxy can handle.
|
|
type ProxyCapabilities struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Whether the proxy can bind arbitrary ports for TCP/UDP/TLS services.
|
|
SupportsCustomPorts *bool `protobuf:"varint,1,opt,name=supports_custom_ports,json=supportsCustomPorts,proto3,oneof" json:"supports_custom_ports,omitempty"`
|
|
// Whether the proxy requires a subdomain label in front of its cluster domain.
|
|
// When true, accounts cannot use the cluster domain bare.
|
|
RequireSubdomain *bool `protobuf:"varint,2,opt,name=require_subdomain,json=requireSubdomain,proto3,oneof" json:"require_subdomain,omitempty"`
|
|
// Whether the proxy has CrowdSec configured and can enforce IP reputation checks.
|
|
SupportsCrowdsec *bool `protobuf:"varint,3,opt,name=supports_crowdsec,json=supportsCrowdsec,proto3,oneof" json:"supports_crowdsec,omitempty"`
|
|
// Whether the proxy is running embedded in the netbird client and serving
|
|
// exclusively over the WireGuard tunnel (i.e. `netbird proxy` rather than
|
|
// the standalone netbird-proxy binary). Surfaces upstream so dashboards can
|
|
// distinguish per-peer / private clusters from centralised ones.
|
|
Private *bool `protobuf:"varint,4,opt,name=private,proto3,oneof" json:"private,omitempty"`
|
|
// Whether the proxy enforces ProxyMapping.private (fails closed on ValidateTunnelPeer failure). Management MUST NOT stream private mappings to proxies that don't claim this.
|
|
SupportsPrivateService *bool `protobuf:"varint,5,opt,name=supports_private_service,json=supportsPrivateService,proto3,oneof" json:"supports_private_service,omitempty"`
|
|
}
|
|
|
|
func (x *ProxyCapabilities) Reset() {
|
|
*x = ProxyCapabilities{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ProxyCapabilities) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ProxyCapabilities) ProtoMessage() {}
|
|
|
|
func (x *ProxyCapabilities) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 ProxyCapabilities.ProtoReflect.Descriptor instead.
|
|
func (*ProxyCapabilities) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *ProxyCapabilities) GetSupportsCustomPorts() bool {
|
|
if x != nil && x.SupportsCustomPorts != nil {
|
|
return *x.SupportsCustomPorts
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyCapabilities) GetRequireSubdomain() bool {
|
|
if x != nil && x.RequireSubdomain != nil {
|
|
return *x.RequireSubdomain
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyCapabilities) GetSupportsCrowdsec() bool {
|
|
if x != nil && x.SupportsCrowdsec != nil {
|
|
return *x.SupportsCrowdsec
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyCapabilities) GetPrivate() bool {
|
|
if x != nil && x.Private != nil {
|
|
return *x.Private
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyCapabilities) GetSupportsPrivateService() bool {
|
|
if x != nil && x.SupportsPrivateService != nil {
|
|
return *x.SupportsPrivateService
|
|
}
|
|
return false
|
|
}
|
|
|
|
// GetMappingUpdateRequest is sent to initialise a mapping stream.
|
|
type GetMappingUpdateRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
ProxyId string `protobuf:"bytes,1,opt,name=proxy_id,json=proxyId,proto3" json:"proxy_id,omitempty"`
|
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
|
StartedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
|
|
Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"`
|
|
Capabilities *ProxyCapabilities `protobuf:"bytes,5,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) Reset() {
|
|
*x = GetMappingUpdateRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetMappingUpdateRequest) ProtoMessage() {}
|
|
|
|
func (x *GetMappingUpdateRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 GetMappingUpdateRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetMappingUpdateRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) GetProxyId() string {
|
|
if x != nil {
|
|
return x.ProxyId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) GetStartedAt() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.StartedAt
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) GetAddress() string {
|
|
if x != nil {
|
|
return x.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GetMappingUpdateRequest) GetCapabilities() *ProxyCapabilities {
|
|
if x != nil {
|
|
return x.Capabilities
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetMappingUpdateResponse contains zero or more ProxyMappings.
|
|
// No mappings may be sent to test the liveness of the Proxy.
|
|
// Mappings that are sent should be interpreted by the Proxy appropriately.
|
|
type GetMappingUpdateResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Mapping []*ProxyMapping `protobuf:"bytes,1,rep,name=mapping,proto3" json:"mapping,omitempty"`
|
|
// initial_sync_complete is set on the last message of the initial snapshot.
|
|
// The proxy uses this to signal that startup is complete.
|
|
InitialSyncComplete bool `protobuf:"varint,2,opt,name=initial_sync_complete,json=initialSyncComplete,proto3" json:"initial_sync_complete,omitempty"`
|
|
}
|
|
|
|
func (x *GetMappingUpdateResponse) Reset() {
|
|
*x = GetMappingUpdateResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *GetMappingUpdateResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetMappingUpdateResponse) ProtoMessage() {}
|
|
|
|
func (x *GetMappingUpdateResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 GetMappingUpdateResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetMappingUpdateResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *GetMappingUpdateResponse) GetMapping() []*ProxyMapping {
|
|
if x != nil {
|
|
return x.Mapping
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *GetMappingUpdateResponse) GetInitialSyncComplete() bool {
|
|
if x != nil {
|
|
return x.InitialSyncComplete
|
|
}
|
|
return false
|
|
}
|
|
|
|
type PathTargetOptions struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
SkipTlsVerify bool `protobuf:"varint,1,opt,name=skip_tls_verify,json=skipTlsVerify,proto3" json:"skip_tls_verify,omitempty"`
|
|
RequestTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=request_timeout,json=requestTimeout,proto3" json:"request_timeout,omitempty"`
|
|
PathRewrite PathRewriteMode `protobuf:"varint,3,opt,name=path_rewrite,json=pathRewrite,proto3,enum=management.PathRewriteMode" json:"path_rewrite,omitempty"`
|
|
CustomHeaders map[string]string `protobuf:"bytes,4,rep,name=custom_headers,json=customHeaders,proto3" json:"custom_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
|
// Send PROXY protocol v2 header to this backend.
|
|
ProxyProtocol bool `protobuf:"varint,5,opt,name=proxy_protocol,json=proxyProtocol,proto3" json:"proxy_protocol,omitempty"`
|
|
// Idle timeout before a UDP session is reaped.
|
|
SessionIdleTimeout *durationpb.Duration `protobuf:"bytes,6,opt,name=session_idle_timeout,json=sessionIdleTimeout,proto3" json:"session_idle_timeout,omitempty"`
|
|
// When true, the proxy dials this target via the host's network stack
|
|
// instead of through the embedded NetBird client. Useful for upstreams
|
|
// reachable without WireGuard (public APIs, LAN services, localhost
|
|
// sidecars). Defaults to false — embedded client is the standard path.
|
|
DirectUpstream bool `protobuf:"varint,7,opt,name=direct_upstream,json=directUpstream,proto3" json:"direct_upstream,omitempty"`
|
|
// Proxy clamps to [0, proxy-wide max (1 MiB)] at apply time. Agent-network
|
|
// synthesized targets only; private services leave these zero.
|
|
CaptureMaxRequestBytes int64 `protobuf:"varint,8,opt,name=capture_max_request_bytes,json=captureMaxRequestBytes,proto3" json:"capture_max_request_bytes,omitempty"`
|
|
// Proxy clamps to [0, proxy-wide max (1 MiB)] at apply time.
|
|
CaptureMaxResponseBytes int64 `protobuf:"varint,9,opt,name=capture_max_response_bytes,json=captureMaxResponseBytes,proto3" json:"capture_max_response_bytes,omitempty"`
|
|
// Content types eligible for body capture (e.g. "application/json").
|
|
CaptureContentTypes []string `protobuf:"bytes,10,rep,name=capture_content_types,json=captureContentTypes,proto3" json:"capture_content_types,omitempty"`
|
|
// Per-target middleware configurations populated by the agent-network
|
|
// synthesizer. Validated and clamped by the proxy at apply time.
|
|
Middlewares []*MiddlewareConfig `protobuf:"bytes,11,rep,name=middlewares,proto3" json:"middlewares,omitempty"`
|
|
// When true, the proxy stamps agent_network=true on access-log entries
|
|
// for this target so management routes them to the agent-network log
|
|
// surface.
|
|
AgentNetwork bool `protobuf:"varint,12,opt,name=agent_network,json=agentNetwork,proto3" json:"agent_network,omitempty"`
|
|
// When true, the proxy suppresses the per-request access-log emission for
|
|
// this target. Defaults false to preserve existing access-log behavior for
|
|
// every non-agent-network target. The agent-network synth target sets this
|
|
// true only when the account's EnableLogCollection toggle is off.
|
|
DisableAccessLog bool `protobuf:"varint,13,opt,name=disable_access_log,json=disableAccessLog,proto3" json:"disable_access_log,omitempty"`
|
|
}
|
|
|
|
func (x *PathTargetOptions) Reset() {
|
|
*x = PathTargetOptions{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *PathTargetOptions) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PathTargetOptions) ProtoMessage() {}
|
|
|
|
func (x *PathTargetOptions) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 PathTargetOptions.ProtoReflect.Descriptor instead.
|
|
func (*PathTargetOptions) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetSkipTlsVerify() bool {
|
|
if x != nil {
|
|
return x.SkipTlsVerify
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetRequestTimeout() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.RequestTimeout
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetPathRewrite() PathRewriteMode {
|
|
if x != nil {
|
|
return x.PathRewrite
|
|
}
|
|
return PathRewriteMode_PATH_REWRITE_DEFAULT
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetCustomHeaders() map[string]string {
|
|
if x != nil {
|
|
return x.CustomHeaders
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetProxyProtocol() bool {
|
|
if x != nil {
|
|
return x.ProxyProtocol
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetSessionIdleTimeout() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.SessionIdleTimeout
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetDirectUpstream() bool {
|
|
if x != nil {
|
|
return x.DirectUpstream
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetCaptureMaxRequestBytes() int64 {
|
|
if x != nil {
|
|
return x.CaptureMaxRequestBytes
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetCaptureMaxResponseBytes() int64 {
|
|
if x != nil {
|
|
return x.CaptureMaxResponseBytes
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetCaptureContentTypes() []string {
|
|
if x != nil {
|
|
return x.CaptureContentTypes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetMiddlewares() []*MiddlewareConfig {
|
|
if x != nil {
|
|
return x.Middlewares
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetAgentNetwork() bool {
|
|
if x != nil {
|
|
return x.AgentNetwork
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PathTargetOptions) GetDisableAccessLog() bool {
|
|
if x != nil {
|
|
return x.DisableAccessLog
|
|
}
|
|
return false
|
|
}
|
|
|
|
// MiddlewareConfig is the per-target configuration for a single middleware.
|
|
// The proxy validates every incoming MiddlewareConfig at apply time:
|
|
// unknown ids are rejected, timeout is clamped to [10ms, 5s], and the
|
|
// declared slot must match the registered middleware's slot.
|
|
type MiddlewareConfig struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Middleware id; must match the proxy-local compiled-in registry.
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
|
|
Slot MiddlewareSlot `protobuf:"varint,3,opt,name=slot,proto3,enum=management.MiddlewareSlot" json:"slot,omitempty"`
|
|
// Free-form JSON unmarshalled by the middleware factory into its own typed
|
|
// config struct. Empty / null / {} are valid (zero-value config).
|
|
ConfigJson []byte `protobuf:"bytes,4,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"`
|
|
FailMode MiddlewareConfig_FailMode `protobuf:"varint,5,opt,name=fail_mode,json=failMode,proto3,enum=management.MiddlewareConfig_FailMode" json:"fail_mode,omitempty"`
|
|
// Clamped to [10ms, 5s] at apply time; zero → 500ms default.
|
|
Timeout *durationpb.Duration `protobuf:"bytes,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
|
|
// When true, the middleware may mutate request headers or body (subject to
|
|
// policy). Honoured only when the implementation also declares
|
|
// MutationsSupported.
|
|
CanMutate bool `protobuf:"varint,7,opt,name=can_mutate,json=canMutate,proto3" json:"can_mutate,omitempty"`
|
|
}
|
|
|
|
func (x *MiddlewareConfig) Reset() {
|
|
*x = MiddlewareConfig{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *MiddlewareConfig) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MiddlewareConfig) ProtoMessage() {}
|
|
|
|
func (x *MiddlewareConfig) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 MiddlewareConfig.ProtoReflect.Descriptor instead.
|
|
func (*MiddlewareConfig) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetEnabled() bool {
|
|
if x != nil {
|
|
return x.Enabled
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetSlot() MiddlewareSlot {
|
|
if x != nil {
|
|
return x.Slot
|
|
}
|
|
return MiddlewareSlot_MIDDLEWARE_SLOT_UNSPECIFIED
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetConfigJson() []byte {
|
|
if x != nil {
|
|
return x.ConfigJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetFailMode() MiddlewareConfig_FailMode {
|
|
if x != nil {
|
|
return x.FailMode
|
|
}
|
|
return MiddlewareConfig_FAIL_OPEN
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetTimeout() *durationpb.Duration {
|
|
if x != nil {
|
|
return x.Timeout
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MiddlewareConfig) GetCanMutate() bool {
|
|
if x != nil {
|
|
return x.CanMutate
|
|
}
|
|
return false
|
|
}
|
|
|
|
type PathMapping struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
|
|
Target string `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
|
|
Options *PathTargetOptions `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"`
|
|
}
|
|
|
|
func (x *PathMapping) Reset() {
|
|
*x = PathMapping{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *PathMapping) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PathMapping) ProtoMessage() {}
|
|
|
|
func (x *PathMapping) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 PathMapping.ProtoReflect.Descriptor instead.
|
|
func (*PathMapping) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *PathMapping) GetPath() string {
|
|
if x != nil {
|
|
return x.Path
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PathMapping) GetTarget() string {
|
|
if x != nil {
|
|
return x.Target
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PathMapping) GetOptions() *PathTargetOptions {
|
|
if x != nil {
|
|
return x.Options
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type HeaderAuth struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Header name to check, e.g. "Authorization", "X-API-Key".
|
|
Header string `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
|
|
// argon2id hash of the expected full header value.
|
|
HashedValue string `protobuf:"bytes,2,opt,name=hashed_value,json=hashedValue,proto3" json:"hashed_value,omitempty"`
|
|
}
|
|
|
|
func (x *HeaderAuth) Reset() {
|
|
*x = HeaderAuth{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *HeaderAuth) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HeaderAuth) ProtoMessage() {}
|
|
|
|
func (x *HeaderAuth) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 HeaderAuth.ProtoReflect.Descriptor instead.
|
|
func (*HeaderAuth) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *HeaderAuth) GetHeader() string {
|
|
if x != nil {
|
|
return x.Header
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HeaderAuth) GetHashedValue() string {
|
|
if x != nil {
|
|
return x.HashedValue
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type Authentication struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
SessionKey string `protobuf:"bytes,1,opt,name=session_key,json=sessionKey,proto3" json:"session_key,omitempty"`
|
|
MaxSessionAgeSeconds int64 `protobuf:"varint,2,opt,name=max_session_age_seconds,json=maxSessionAgeSeconds,proto3" json:"max_session_age_seconds,omitempty"`
|
|
Password bool `protobuf:"varint,3,opt,name=password,proto3" json:"password,omitempty"`
|
|
Pin bool `protobuf:"varint,4,opt,name=pin,proto3" json:"pin,omitempty"`
|
|
Oidc bool `protobuf:"varint,5,opt,name=oidc,proto3" json:"oidc,omitempty"`
|
|
HeaderAuths []*HeaderAuth `protobuf:"bytes,6,rep,name=header_auths,json=headerAuths,proto3" json:"header_auths,omitempty"`
|
|
}
|
|
|
|
func (x *Authentication) Reset() {
|
|
*x = Authentication{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *Authentication) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Authentication) ProtoMessage() {}
|
|
|
|
func (x *Authentication) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 Authentication.ProtoReflect.Descriptor instead.
|
|
func (*Authentication) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *Authentication) GetSessionKey() string {
|
|
if x != nil {
|
|
return x.SessionKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Authentication) GetMaxSessionAgeSeconds() int64 {
|
|
if x != nil {
|
|
return x.MaxSessionAgeSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *Authentication) GetPassword() bool {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Authentication) GetPin() bool {
|
|
if x != nil {
|
|
return x.Pin
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Authentication) GetOidc() bool {
|
|
if x != nil {
|
|
return x.Oidc
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *Authentication) GetHeaderAuths() []*HeaderAuth {
|
|
if x != nil {
|
|
return x.HeaderAuths
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type AccessRestrictions struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
AllowedCidrs []string `protobuf:"bytes,1,rep,name=allowed_cidrs,json=allowedCidrs,proto3" json:"allowed_cidrs,omitempty"`
|
|
BlockedCidrs []string `protobuf:"bytes,2,rep,name=blocked_cidrs,json=blockedCidrs,proto3" json:"blocked_cidrs,omitempty"`
|
|
AllowedCountries []string `protobuf:"bytes,3,rep,name=allowed_countries,json=allowedCountries,proto3" json:"allowed_countries,omitempty"`
|
|
BlockedCountries []string `protobuf:"bytes,4,rep,name=blocked_countries,json=blockedCountries,proto3" json:"blocked_countries,omitempty"`
|
|
// CrowdSec IP reputation mode: "", "off", "enforce", or "observe".
|
|
CrowdsecMode string `protobuf:"bytes,5,opt,name=crowdsec_mode,json=crowdsecMode,proto3" json:"crowdsec_mode,omitempty"`
|
|
}
|
|
|
|
func (x *AccessRestrictions) Reset() {
|
|
*x = AccessRestrictions{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *AccessRestrictions) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AccessRestrictions) ProtoMessage() {}
|
|
|
|
func (x *AccessRestrictions) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 AccessRestrictions.ProtoReflect.Descriptor instead.
|
|
func (*AccessRestrictions) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *AccessRestrictions) GetAllowedCidrs() []string {
|
|
if x != nil {
|
|
return x.AllowedCidrs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessRestrictions) GetBlockedCidrs() []string {
|
|
if x != nil {
|
|
return x.BlockedCidrs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessRestrictions) GetAllowedCountries() []string {
|
|
if x != nil {
|
|
return x.AllowedCountries
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessRestrictions) GetBlockedCountries() []string {
|
|
if x != nil {
|
|
return x.BlockedCountries
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessRestrictions) GetCrowdsecMode() string {
|
|
if x != nil {
|
|
return x.CrowdsecMode
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type ProxyMapping struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Type ProxyMappingUpdateType `protobuf:"varint,1,opt,name=type,proto3,enum=management.ProxyMappingUpdateType" json:"type,omitempty"`
|
|
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
|
|
AccountId string `protobuf:"bytes,3,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
|
|
Path []*PathMapping `protobuf:"bytes,5,rep,name=path,proto3" json:"path,omitempty"`
|
|
AuthToken string `protobuf:"bytes,6,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"`
|
|
Auth *Authentication `protobuf:"bytes,7,opt,name=auth,proto3" json:"auth,omitempty"`
|
|
// When true, the original Host header from the client request is passed
|
|
// through to the backend instead of being rewritten to the backend's address.
|
|
PassHostHeader bool `protobuf:"varint,8,opt,name=pass_host_header,json=passHostHeader,proto3" json:"pass_host_header,omitempty"`
|
|
// When true, Location headers in backend responses are rewritten to replace
|
|
// the backend address with the public-facing domain.
|
|
RewriteRedirects bool `protobuf:"varint,9,opt,name=rewrite_redirects,json=rewriteRedirects,proto3" json:"rewrite_redirects,omitempty"`
|
|
// Service mode: "http", "tcp", "udp", or "tls".
|
|
Mode string `protobuf:"bytes,10,opt,name=mode,proto3" json:"mode,omitempty"`
|
|
// For L4/TLS: the port the proxy listens on.
|
|
ListenPort int32 `protobuf:"varint,11,opt,name=listen_port,json=listenPort,proto3" json:"listen_port,omitempty"`
|
|
AccessRestrictions *AccessRestrictions `protobuf:"bytes,12,opt,name=access_restrictions,json=accessRestrictions,proto3" json:"access_restrictions,omitempty"`
|
|
// NetBird-only: the proxy MUST call ValidateTunnelPeer and fail closed; operator auth schemes are bypassed.
|
|
Private bool `protobuf:"varint,13,opt,name=private,proto3" json:"private,omitempty"`
|
|
}
|
|
|
|
func (x *ProxyMapping) Reset() {
|
|
*x = ProxyMapping{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ProxyMapping) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ProxyMapping) ProtoMessage() {}
|
|
|
|
func (x *ProxyMapping) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 ProxyMapping.ProtoReflect.Descriptor instead.
|
|
func (*ProxyMapping) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
func (x *ProxyMapping) GetType() ProxyMappingUpdateType {
|
|
if x != nil {
|
|
return x.Type
|
|
}
|
|
return ProxyMappingUpdateType_UPDATE_TYPE_CREATED
|
|
}
|
|
|
|
func (x *ProxyMapping) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyMapping) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyMapping) GetDomain() string {
|
|
if x != nil {
|
|
return x.Domain
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyMapping) GetPath() []*PathMapping {
|
|
if x != nil {
|
|
return x.Path
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ProxyMapping) GetAuthToken() string {
|
|
if x != nil {
|
|
return x.AuthToken
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyMapping) GetAuth() *Authentication {
|
|
if x != nil {
|
|
return x.Auth
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ProxyMapping) GetPassHostHeader() bool {
|
|
if x != nil {
|
|
return x.PassHostHeader
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyMapping) GetRewriteRedirects() bool {
|
|
if x != nil {
|
|
return x.RewriteRedirects
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ProxyMapping) GetMode() string {
|
|
if x != nil {
|
|
return x.Mode
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyMapping) GetListenPort() int32 {
|
|
if x != nil {
|
|
return x.ListenPort
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *ProxyMapping) GetAccessRestrictions() *AccessRestrictions {
|
|
if x != nil {
|
|
return x.AccessRestrictions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ProxyMapping) GetPrivate() bool {
|
|
if x != nil {
|
|
return x.Private
|
|
}
|
|
return false
|
|
}
|
|
|
|
// SendAccessLogRequest consists of one or more AccessLogs from a Proxy.
|
|
type SendAccessLogRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Log *AccessLog `protobuf:"bytes,1,opt,name=log,proto3" json:"log,omitempty"`
|
|
}
|
|
|
|
func (x *SendAccessLogRequest) Reset() {
|
|
*x = SendAccessLogRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SendAccessLogRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendAccessLogRequest) ProtoMessage() {}
|
|
|
|
func (x *SendAccessLogRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 SendAccessLogRequest.ProtoReflect.Descriptor instead.
|
|
func (*SendAccessLogRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *SendAccessLogRequest) GetLog() *AccessLog {
|
|
if x != nil {
|
|
return x.Log
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SendAccessLogResponse is intentionally empty to allow for future expansion.
|
|
type SendAccessLogResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
}
|
|
|
|
func (x *SendAccessLogResponse) Reset() {
|
|
*x = SendAccessLogResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SendAccessLogResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendAccessLogResponse) ProtoMessage() {}
|
|
|
|
func (x *SendAccessLogResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 SendAccessLogResponse.ProtoReflect.Descriptor instead.
|
|
func (*SendAccessLogResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
type AccessLog struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
|
LogId string `protobuf:"bytes,2,opt,name=log_id,json=logId,proto3" json:"log_id,omitempty"`
|
|
AccountId string `protobuf:"bytes,3,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
ServiceId string `protobuf:"bytes,4,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
|
|
Host string `protobuf:"bytes,5,opt,name=host,proto3" json:"host,omitempty"`
|
|
Path string `protobuf:"bytes,6,opt,name=path,proto3" json:"path,omitempty"`
|
|
DurationMs int64 `protobuf:"varint,7,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
|
|
Method string `protobuf:"bytes,8,opt,name=method,proto3" json:"method,omitempty"`
|
|
ResponseCode int32 `protobuf:"varint,9,opt,name=response_code,json=responseCode,proto3" json:"response_code,omitempty"`
|
|
SourceIp string `protobuf:"bytes,10,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"`
|
|
AuthMechanism string `protobuf:"bytes,11,opt,name=auth_mechanism,json=authMechanism,proto3" json:"auth_mechanism,omitempty"`
|
|
UserId string `protobuf:"bytes,12,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
|
AuthSuccess bool `protobuf:"varint,13,opt,name=auth_success,json=authSuccess,proto3" json:"auth_success,omitempty"`
|
|
BytesUpload int64 `protobuf:"varint,14,opt,name=bytes_upload,json=bytesUpload,proto3" json:"bytes_upload,omitempty"`
|
|
BytesDownload int64 `protobuf:"varint,15,opt,name=bytes_download,json=bytesDownload,proto3" json:"bytes_download,omitempty"`
|
|
Protocol string `protobuf:"bytes,16,opt,name=protocol,proto3" json:"protocol,omitempty"`
|
|
// Extra key-value metadata for the access log entry (e.g. crowdsec_verdict, scenario).
|
|
Metadata map[string]string `protobuf:"bytes,17,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
|
// When true, the entry was emitted by an agent-network synth service.
|
|
// Management routes these to the agent-network access-log surface instead
|
|
// of the standard service log.
|
|
AgentNetwork bool `protobuf:"varint,18,opt,name=agent_network,json=agentNetwork,proto3" json:"agent_network,omitempty"`
|
|
}
|
|
|
|
func (x *AccessLog) Reset() {
|
|
*x = AccessLog{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *AccessLog) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AccessLog) ProtoMessage() {}
|
|
|
|
func (x *AccessLog) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 AccessLog.ProtoReflect.Descriptor instead.
|
|
func (*AccessLog) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *AccessLog) GetTimestamp() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.Timestamp
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessLog) GetLogId() string {
|
|
if x != nil {
|
|
return x.LogId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetServiceId() string {
|
|
if x != nil {
|
|
return x.ServiceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetHost() string {
|
|
if x != nil {
|
|
return x.Host
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetPath() string {
|
|
if x != nil {
|
|
return x.Path
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetDurationMs() int64 {
|
|
if x != nil {
|
|
return x.DurationMs
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AccessLog) GetMethod() string {
|
|
if x != nil {
|
|
return x.Method
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetResponseCode() int32 {
|
|
if x != nil {
|
|
return x.ResponseCode
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AccessLog) GetSourceIp() string {
|
|
if x != nil {
|
|
return x.SourceIp
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetAuthMechanism() string {
|
|
if x != nil {
|
|
return x.AuthMechanism
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetUserId() string {
|
|
if x != nil {
|
|
return x.UserId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetAuthSuccess() bool {
|
|
if x != nil {
|
|
return x.AuthSuccess
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *AccessLog) GetBytesUpload() int64 {
|
|
if x != nil {
|
|
return x.BytesUpload
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AccessLog) GetBytesDownload() int64 {
|
|
if x != nil {
|
|
return x.BytesDownload
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *AccessLog) GetProtocol() string {
|
|
if x != nil {
|
|
return x.Protocol
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AccessLog) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AccessLog) GetAgentNetwork() bool {
|
|
if x != nil {
|
|
return x.AgentNetwork
|
|
}
|
|
return false
|
|
}
|
|
|
|
type AuthenticateRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
// Types that are assignable to Request:
|
|
//
|
|
// *AuthenticateRequest_Password
|
|
// *AuthenticateRequest_Pin
|
|
// *AuthenticateRequest_HeaderAuth
|
|
Request isAuthenticateRequest_Request `protobuf_oneof:"request"`
|
|
}
|
|
|
|
func (x *AuthenticateRequest) Reset() {
|
|
*x = AuthenticateRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *AuthenticateRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AuthenticateRequest) ProtoMessage() {}
|
|
|
|
func (x *AuthenticateRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 AuthenticateRequest.ProtoReflect.Descriptor instead.
|
|
func (*AuthenticateRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
func (x *AuthenticateRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AuthenticateRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *AuthenticateRequest) GetRequest() isAuthenticateRequest_Request {
|
|
if m != nil {
|
|
return m.Request
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AuthenticateRequest) GetPassword() *PasswordRequest {
|
|
if x, ok := x.GetRequest().(*AuthenticateRequest_Password); ok {
|
|
return x.Password
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AuthenticateRequest) GetPin() *PinRequest {
|
|
if x, ok := x.GetRequest().(*AuthenticateRequest_Pin); ok {
|
|
return x.Pin
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *AuthenticateRequest) GetHeaderAuth() *HeaderAuthRequest {
|
|
if x, ok := x.GetRequest().(*AuthenticateRequest_HeaderAuth); ok {
|
|
return x.HeaderAuth
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isAuthenticateRequest_Request interface {
|
|
isAuthenticateRequest_Request()
|
|
}
|
|
|
|
type AuthenticateRequest_Password struct {
|
|
Password *PasswordRequest `protobuf:"bytes,3,opt,name=password,proto3,oneof"`
|
|
}
|
|
|
|
type AuthenticateRequest_Pin struct {
|
|
Pin *PinRequest `protobuf:"bytes,4,opt,name=pin,proto3,oneof"`
|
|
}
|
|
|
|
type AuthenticateRequest_HeaderAuth struct {
|
|
HeaderAuth *HeaderAuthRequest `protobuf:"bytes,5,opt,name=header_auth,json=headerAuth,proto3,oneof"`
|
|
}
|
|
|
|
func (*AuthenticateRequest_Password) isAuthenticateRequest_Request() {}
|
|
|
|
func (*AuthenticateRequest_Pin) isAuthenticateRequest_Request() {}
|
|
|
|
func (*AuthenticateRequest_HeaderAuth) isAuthenticateRequest_Request() {}
|
|
|
|
type HeaderAuthRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
HeaderValue string `protobuf:"bytes,1,opt,name=header_value,json=headerValue,proto3" json:"header_value,omitempty"`
|
|
HeaderName string `protobuf:"bytes,2,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
|
|
}
|
|
|
|
func (x *HeaderAuthRequest) Reset() {
|
|
*x = HeaderAuthRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *HeaderAuthRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*HeaderAuthRequest) ProtoMessage() {}
|
|
|
|
func (x *HeaderAuthRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 HeaderAuthRequest.ProtoReflect.Descriptor instead.
|
|
func (*HeaderAuthRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *HeaderAuthRequest) GetHeaderValue() string {
|
|
if x != nil {
|
|
return x.HeaderValue
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *HeaderAuthRequest) GetHeaderName() string {
|
|
if x != nil {
|
|
return x.HeaderName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type PasswordRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"`
|
|
}
|
|
|
|
func (x *PasswordRequest) Reset() {
|
|
*x = PasswordRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *PasswordRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PasswordRequest) ProtoMessage() {}
|
|
|
|
func (x *PasswordRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 PasswordRequest.ProtoReflect.Descriptor instead.
|
|
func (*PasswordRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{15}
|
|
}
|
|
|
|
func (x *PasswordRequest) GetPassword() string {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type PinRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Pin string `protobuf:"bytes,1,opt,name=pin,proto3" json:"pin,omitempty"`
|
|
}
|
|
|
|
func (x *PinRequest) Reset() {
|
|
*x = PinRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *PinRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PinRequest) ProtoMessage() {}
|
|
|
|
func (x *PinRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 PinRequest.ProtoReflect.Descriptor instead.
|
|
func (*PinRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{16}
|
|
}
|
|
|
|
func (x *PinRequest) GetPin() string {
|
|
if x != nil {
|
|
return x.Pin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type AuthenticateResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
|
|
SessionToken string `protobuf:"bytes,2,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
|
|
}
|
|
|
|
func (x *AuthenticateResponse) Reset() {
|
|
*x = AuthenticateResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *AuthenticateResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AuthenticateResponse) ProtoMessage() {}
|
|
|
|
func (x *AuthenticateResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 AuthenticateResponse.ProtoReflect.Descriptor instead.
|
|
func (*AuthenticateResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
func (x *AuthenticateResponse) GetSuccess() bool {
|
|
if x != nil {
|
|
return x.Success
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *AuthenticateResponse) GetSessionToken() string {
|
|
if x != nil {
|
|
return x.SessionToken
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// SendStatusUpdateRequest is sent by the proxy to update its status
|
|
type SendStatusUpdateRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
ServiceId string `protobuf:"bytes,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
|
|
AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
Status ProxyStatus `protobuf:"varint,3,opt,name=status,proto3,enum=management.ProxyStatus" json:"status,omitempty"`
|
|
CertificateIssued bool `protobuf:"varint,4,opt,name=certificate_issued,json=certificateIssued,proto3" json:"certificate_issued,omitempty"`
|
|
ErrorMessage *string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3,oneof" json:"error_message,omitempty"`
|
|
// Per-account inbound listener state for the account that owns
|
|
// service_id. Populated only when --private is enabled and the
|
|
// embedded client for the account is up. Field numbers >=50 reserved
|
|
// for observability extensions.
|
|
InboundListener *ProxyInboundListener `protobuf:"bytes,50,opt,name=inbound_listener,json=inboundListener,proto3,oneof" json:"inbound_listener,omitempty"`
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) Reset() {
|
|
*x = SendStatusUpdateRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[18]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendStatusUpdateRequest) ProtoMessage() {}
|
|
|
|
func (x *SendStatusUpdateRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 SendStatusUpdateRequest.ProtoReflect.Descriptor instead.
|
|
func (*SendStatusUpdateRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{18}
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetServiceId() string {
|
|
if x != nil {
|
|
return x.ServiceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetStatus() ProxyStatus {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ProxyStatus_PROXY_STATUS_PENDING
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetCertificateIssued() bool {
|
|
if x != nil {
|
|
return x.CertificateIssued
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetErrorMessage() string {
|
|
if x != nil && x.ErrorMessage != nil {
|
|
return *x.ErrorMessage
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SendStatusUpdateRequest) GetInboundListener() *ProxyInboundListener {
|
|
if x != nil {
|
|
return x.InboundListener
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ProxyInboundListener describes a per-account inbound listener that the
|
|
// proxy has bound on the embedded netstack of the account's WireGuard
|
|
// client. Surfaced so dashboards can render "this account is reachable
|
|
// at <tunnel_ip>:<https_port> on this proxy".
|
|
type ProxyInboundListener struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Tunnel IP the embedded netstack listens on. Same address other peers
|
|
// in the account see for the proxy peer.
|
|
TunnelIp string `protobuf:"bytes,1,opt,name=tunnel_ip,json=tunnelIp,proto3" json:"tunnel_ip,omitempty"`
|
|
// TLS port served on tunnel_ip (auto-detected, default 443).
|
|
HttpsPort uint32 `protobuf:"varint,2,opt,name=https_port,json=httpsPort,proto3" json:"https_port,omitempty"`
|
|
// Plain-HTTP port served on tunnel_ip (auto-detected, default 80).
|
|
HttpPort uint32 `protobuf:"varint,3,opt,name=http_port,json=httpPort,proto3" json:"http_port,omitempty"`
|
|
}
|
|
|
|
func (x *ProxyInboundListener) Reset() {
|
|
*x = ProxyInboundListener{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[19]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ProxyInboundListener) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ProxyInboundListener) ProtoMessage() {}
|
|
|
|
func (x *ProxyInboundListener) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 ProxyInboundListener.ProtoReflect.Descriptor instead.
|
|
func (*ProxyInboundListener) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{19}
|
|
}
|
|
|
|
func (x *ProxyInboundListener) GetTunnelIp() string {
|
|
if x != nil {
|
|
return x.TunnelIp
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ProxyInboundListener) GetHttpsPort() uint32 {
|
|
if x != nil {
|
|
return x.HttpsPort
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *ProxyInboundListener) GetHttpPort() uint32 {
|
|
if x != nil {
|
|
return x.HttpPort
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// SendStatusUpdateResponse is intentionally empty to allow for future expansion
|
|
type SendStatusUpdateResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
}
|
|
|
|
func (x *SendStatusUpdateResponse) Reset() {
|
|
*x = SendStatusUpdateResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[20]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SendStatusUpdateResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SendStatusUpdateResponse) ProtoMessage() {}
|
|
|
|
func (x *SendStatusUpdateResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 SendStatusUpdateResponse.ProtoReflect.Descriptor instead.
|
|
func (*SendStatusUpdateResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{20}
|
|
}
|
|
|
|
// CreateProxyPeerRequest is sent by the proxy to create a peer connection
|
|
// The token is a one-time authentication token sent via ProxyMapping
|
|
type CreateProxyPeerRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
ServiceId string `protobuf:"bytes,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
|
|
AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
|
|
WireguardPublicKey string `protobuf:"bytes,4,opt,name=wireguard_public_key,json=wireguardPublicKey,proto3" json:"wireguard_public_key,omitempty"`
|
|
Cluster string `protobuf:"bytes,5,opt,name=cluster,proto3" json:"cluster,omitempty"`
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) Reset() {
|
|
*x = CreateProxyPeerRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[21]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CreateProxyPeerRequest) ProtoMessage() {}
|
|
|
|
func (x *CreateProxyPeerRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 CreateProxyPeerRequest.ProtoReflect.Descriptor instead.
|
|
func (*CreateProxyPeerRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{21}
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) GetServiceId() string {
|
|
if x != nil {
|
|
return x.ServiceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) GetToken() string {
|
|
if x != nil {
|
|
return x.Token
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) GetWireguardPublicKey() string {
|
|
if x != nil {
|
|
return x.WireguardPublicKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateProxyPeerRequest) GetCluster() string {
|
|
if x != nil {
|
|
return x.Cluster
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// CreateProxyPeerResponse contains the result of peer creation
|
|
type CreateProxyPeerResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
|
|
ErrorMessage *string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3,oneof" json:"error_message,omitempty"`
|
|
}
|
|
|
|
func (x *CreateProxyPeerResponse) Reset() {
|
|
*x = CreateProxyPeerResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[22]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *CreateProxyPeerResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CreateProxyPeerResponse) ProtoMessage() {}
|
|
|
|
func (x *CreateProxyPeerResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 CreateProxyPeerResponse.ProtoReflect.Descriptor instead.
|
|
func (*CreateProxyPeerResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{22}
|
|
}
|
|
|
|
func (x *CreateProxyPeerResponse) GetSuccess() bool {
|
|
if x != nil {
|
|
return x.Success
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *CreateProxyPeerResponse) GetErrorMessage() string {
|
|
if x != nil && x.ErrorMessage != nil {
|
|
return *x.ErrorMessage
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type GetOIDCURLRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
RedirectUrl string `protobuf:"bytes,3,opt,name=redirect_url,json=redirectUrl,proto3" json:"redirect_url,omitempty"`
|
|
}
|
|
|
|
func (x *GetOIDCURLRequest) Reset() {
|
|
*x = GetOIDCURLRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[23]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *GetOIDCURLRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetOIDCURLRequest) ProtoMessage() {}
|
|
|
|
func (x *GetOIDCURLRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_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 GetOIDCURLRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetOIDCURLRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{23}
|
|
}
|
|
|
|
func (x *GetOIDCURLRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GetOIDCURLRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *GetOIDCURLRequest) GetRedirectUrl() string {
|
|
if x != nil {
|
|
return x.RedirectUrl
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type GetOIDCURLResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
|
|
}
|
|
|
|
func (x *GetOIDCURLResponse) Reset() {
|
|
*x = GetOIDCURLResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[24]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *GetOIDCURLResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetOIDCURLResponse) ProtoMessage() {}
|
|
|
|
func (x *GetOIDCURLResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[24]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetOIDCURLResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetOIDCURLResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{24}
|
|
}
|
|
|
|
func (x *GetOIDCURLResponse) GetUrl() string {
|
|
if x != nil {
|
|
return x.Url
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type ValidateSessionRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
|
|
SessionToken string `protobuf:"bytes,2,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
|
|
}
|
|
|
|
func (x *ValidateSessionRequest) Reset() {
|
|
*x = ValidateSessionRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[25]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ValidateSessionRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateSessionRequest) ProtoMessage() {}
|
|
|
|
func (x *ValidateSessionRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[25]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateSessionRequest.ProtoReflect.Descriptor instead.
|
|
func (*ValidateSessionRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{25}
|
|
}
|
|
|
|
func (x *ValidateSessionRequest) GetDomain() string {
|
|
if x != nil {
|
|
return x.Domain
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateSessionRequest) GetSessionToken() string {
|
|
if x != nil {
|
|
return x.SessionToken
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type ValidateSessionResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
|
|
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
|
UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
|
|
DeniedReason string `protobuf:"bytes,4,opt,name=denied_reason,json=deniedReason,proto3" json:"denied_reason,omitempty"`
|
|
// peer_group_ids carries the calling user's group memberships so the
|
|
// proxy can authorise policy-aware middlewares without an additional
|
|
// management round-trip.
|
|
PeerGroupIds []string `protobuf:"bytes,5,rep,name=peer_group_ids,json=peerGroupIds,proto3" json:"peer_group_ids,omitempty"`
|
|
// peer_group_names carries the human-readable display names for the
|
|
// ids in peer_group_ids, ordered identically (positional pairing).
|
|
// Stamped onto upstream requests as X-NetBird-Groups so downstream
|
|
// services can read names rather than opaque ids.
|
|
PeerGroupNames []string `protobuf:"bytes,6,rep,name=peer_group_names,json=peerGroupNames,proto3" json:"peer_group_names,omitempty"`
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) Reset() {
|
|
*x = ValidateSessionResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[26]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateSessionResponse) ProtoMessage() {}
|
|
|
|
func (x *ValidateSessionResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[26]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ValidateSessionResponse.ProtoReflect.Descriptor instead.
|
|
func (*ValidateSessionResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{26}
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetValid() bool {
|
|
if x != nil {
|
|
return x.Valid
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetUserId() string {
|
|
if x != nil {
|
|
return x.UserId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetUserEmail() string {
|
|
if x != nil {
|
|
return x.UserEmail
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetDeniedReason() string {
|
|
if x != nil {
|
|
return x.DeniedReason
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetPeerGroupIds() []string {
|
|
if x != nil {
|
|
return x.PeerGroupIds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ValidateSessionResponse) GetPeerGroupNames() []string {
|
|
if x != nil {
|
|
return x.PeerGroupNames
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ValidateTunnelPeerRequest carries the inbound peer's tunnel IP and the
|
|
// service domain whose group requirements should gate access. The calling
|
|
// account is inferred from the proxy's gRPC metadata (ProxyToken).
|
|
type ValidateTunnelPeerRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
TunnelIp string `protobuf:"bytes,1,opt,name=tunnel_ip,json=tunnelIp,proto3" json:"tunnel_ip,omitempty"`
|
|
Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerRequest) Reset() {
|
|
*x = ValidateTunnelPeerRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[27]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateTunnelPeerRequest) ProtoMessage() {}
|
|
|
|
func (x *ValidateTunnelPeerRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[27]
|
|
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 ValidateTunnelPeerRequest.ProtoReflect.Descriptor instead.
|
|
func (*ValidateTunnelPeerRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{27}
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerRequest) GetTunnelIp() string {
|
|
if x != nil {
|
|
return x.TunnelIp
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerRequest) GetDomain() string {
|
|
if x != nil {
|
|
return x.Domain
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// ValidateTunnelPeerResponse mirrors ValidateSessionResponse plus a freshly
|
|
// minted session_token: when valid is true, the proxy installs the token as
|
|
// a session cookie so subsequent requests skip the management round-trip,
|
|
// matching the OIDC flow's UX. denied_reason values:
|
|
//
|
|
// "peer_not_found" — no peer with that tunnel IP in the calling account
|
|
// "no_user" — peer exists but is not bound to a user
|
|
// "service_not_found"
|
|
// "account_mismatch"
|
|
// "not_in_group" — peer resolved but not in service.access_groups
|
|
type ValidateTunnelPeerResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
|
|
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
|
UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
|
|
DeniedReason string `protobuf:"bytes,4,opt,name=denied_reason,json=deniedReason,proto3" json:"denied_reason,omitempty"`
|
|
// session_token is set only when valid is true. Same shape as the JWT
|
|
// the OIDC flow produces — proxy installs it via setSessionCookie so the
|
|
// tunnel fast-path is indistinguishable from OIDC for subsequent requests.
|
|
SessionToken string `protobuf:"bytes,5,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
|
|
// peer_group_ids carries the resolved peer's user group memberships so
|
|
// the proxy can authorise policy-aware middlewares without an additional
|
|
// management round-trip.
|
|
PeerGroupIds []string `protobuf:"bytes,6,rep,name=peer_group_ids,json=peerGroupIds,proto3" json:"peer_group_ids,omitempty"`
|
|
// peer_group_names carries the human-readable display names for the
|
|
// ids in peer_group_ids, ordered identically (positional pairing).
|
|
// Stamped onto upstream requests as X-NetBird-Groups so downstream
|
|
// services can read names rather than opaque ids.
|
|
PeerGroupNames []string `protobuf:"bytes,7,rep,name=peer_group_names,json=peerGroupNames,proto3" json:"peer_group_names,omitempty"`
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) Reset() {
|
|
*x = ValidateTunnelPeerResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[28]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ValidateTunnelPeerResponse) ProtoMessage() {}
|
|
|
|
func (x *ValidateTunnelPeerResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[28]
|
|
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 ValidateTunnelPeerResponse.ProtoReflect.Descriptor instead.
|
|
func (*ValidateTunnelPeerResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{28}
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetValid() bool {
|
|
if x != nil {
|
|
return x.Valid
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetUserId() string {
|
|
if x != nil {
|
|
return x.UserId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetUserEmail() string {
|
|
if x != nil {
|
|
return x.UserEmail
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetDeniedReason() string {
|
|
if x != nil {
|
|
return x.DeniedReason
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetSessionToken() string {
|
|
if x != nil {
|
|
return x.SessionToken
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetPeerGroupIds() []string {
|
|
if x != nil {
|
|
return x.PeerGroupIds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *ValidateTunnelPeerResponse) GetPeerGroupNames() []string {
|
|
if x != nil {
|
|
return x.PeerGroupNames
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SyncMappingsRequest is sent by the proxy on the bidirectional SyncMappings
|
|
// stream. The first message MUST be an init; all subsequent messages MUST be
|
|
// acks.
|
|
type SyncMappingsRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Types that are assignable to Msg:
|
|
//
|
|
// *SyncMappingsRequest_Init
|
|
// *SyncMappingsRequest_Ack
|
|
Msg isSyncMappingsRequest_Msg `protobuf_oneof:"msg"`
|
|
}
|
|
|
|
func (x *SyncMappingsRequest) Reset() {
|
|
*x = SyncMappingsRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[29]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SyncMappingsRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SyncMappingsRequest) ProtoMessage() {}
|
|
|
|
func (x *SyncMappingsRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[29]
|
|
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 SyncMappingsRequest.ProtoReflect.Descriptor instead.
|
|
func (*SyncMappingsRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{29}
|
|
}
|
|
|
|
func (m *SyncMappingsRequest) GetMsg() isSyncMappingsRequest_Msg {
|
|
if m != nil {
|
|
return m.Msg
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *SyncMappingsRequest) GetInit() *SyncMappingsInit {
|
|
if x, ok := x.GetMsg().(*SyncMappingsRequest_Init); ok {
|
|
return x.Init
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *SyncMappingsRequest) GetAck() *SyncMappingsAck {
|
|
if x, ok := x.GetMsg().(*SyncMappingsRequest_Ack); ok {
|
|
return x.Ack
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type isSyncMappingsRequest_Msg interface {
|
|
isSyncMappingsRequest_Msg()
|
|
}
|
|
|
|
type SyncMappingsRequest_Init struct {
|
|
Init *SyncMappingsInit `protobuf:"bytes,1,opt,name=init,proto3,oneof"`
|
|
}
|
|
|
|
type SyncMappingsRequest_Ack struct {
|
|
Ack *SyncMappingsAck `protobuf:"bytes,2,opt,name=ack,proto3,oneof"`
|
|
}
|
|
|
|
func (*SyncMappingsRequest_Init) isSyncMappingsRequest_Msg() {}
|
|
|
|
func (*SyncMappingsRequest_Ack) isSyncMappingsRequest_Msg() {}
|
|
|
|
// SyncMappingsInit is the first message on the stream, carrying the same
|
|
// identification fields as GetMappingUpdateRequest.
|
|
type SyncMappingsInit struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
ProxyId string `protobuf:"bytes,1,opt,name=proxy_id,json=proxyId,proto3" json:"proxy_id,omitempty"`
|
|
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
|
|
StartedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
|
|
Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"`
|
|
Capabilities *ProxyCapabilities `protobuf:"bytes,5,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
|
|
}
|
|
|
|
func (x *SyncMappingsInit) Reset() {
|
|
*x = SyncMappingsInit{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[30]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SyncMappingsInit) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SyncMappingsInit) ProtoMessage() {}
|
|
|
|
func (x *SyncMappingsInit) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[30]
|
|
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 SyncMappingsInit.ProtoReflect.Descriptor instead.
|
|
func (*SyncMappingsInit) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{30}
|
|
}
|
|
|
|
func (x *SyncMappingsInit) GetProxyId() string {
|
|
if x != nil {
|
|
return x.ProxyId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SyncMappingsInit) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SyncMappingsInit) GetStartedAt() *timestamppb.Timestamp {
|
|
if x != nil {
|
|
return x.StartedAt
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *SyncMappingsInit) GetAddress() string {
|
|
if x != nil {
|
|
return x.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SyncMappingsInit) GetCapabilities() *ProxyCapabilities {
|
|
if x != nil {
|
|
return x.Capabilities
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SyncMappingsAck is sent by the proxy after it has fully processed a batch.
|
|
// Management waits for this before sending the next batch.
|
|
type SyncMappingsAck struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
}
|
|
|
|
func (x *SyncMappingsAck) Reset() {
|
|
*x = SyncMappingsAck{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[31]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SyncMappingsAck) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SyncMappingsAck) ProtoMessage() {}
|
|
|
|
func (x *SyncMappingsAck) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[31]
|
|
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 SyncMappingsAck.ProtoReflect.Descriptor instead.
|
|
func (*SyncMappingsAck) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{31}
|
|
}
|
|
|
|
// SyncMappingsResponse is a batch of mappings sent by management.
|
|
// Identical semantics to GetMappingUpdateResponse.
|
|
type SyncMappingsResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
Mapping []*ProxyMapping `protobuf:"bytes,1,rep,name=mapping,proto3" json:"mapping,omitempty"`
|
|
// initial_sync_complete is set on the last message of the initial snapshot.
|
|
InitialSyncComplete bool `protobuf:"varint,2,opt,name=initial_sync_complete,json=initialSyncComplete,proto3" json:"initial_sync_complete,omitempty"`
|
|
}
|
|
|
|
func (x *SyncMappingsResponse) Reset() {
|
|
*x = SyncMappingsResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[32]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *SyncMappingsResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SyncMappingsResponse) ProtoMessage() {}
|
|
|
|
func (x *SyncMappingsResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[32]
|
|
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 SyncMappingsResponse.ProtoReflect.Descriptor instead.
|
|
func (*SyncMappingsResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{32}
|
|
}
|
|
|
|
func (x *SyncMappingsResponse) GetMapping() []*ProxyMapping {
|
|
if x != nil {
|
|
return x.Mapping
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *SyncMappingsResponse) GetInitialSyncComplete() bool {
|
|
if x != nil {
|
|
return x.InitialSyncComplete
|
|
}
|
|
return false
|
|
}
|
|
|
|
// CheckLLMPolicyLimitsRequest carries the resolved caller identity and the
|
|
// upstream provider already chosen by llm_router. Management computes which
|
|
// policies authorise the request, picks the one with the most remaining
|
|
// headroom, and returns the attribution decision.
|
|
type CheckLLMPolicyLimitsRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// account_id is the netbird account the request belongs to.
|
|
AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
// user_id is the netbird user id of the caller. May be empty when the
|
|
// principal is a tunnel-peer that isn't bound to a user; group membership
|
|
// still gates the request in that case.
|
|
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
|
// group_ids is the caller's full group membership at request time.
|
|
GroupIds []string `protobuf:"bytes,3,rep,name=group_ids,json=groupIds,proto3" json:"group_ids,omitempty"`
|
|
// provider_id is the agent-network provider record id chosen by llm_router.
|
|
ProviderId string `protobuf:"bytes,4,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
|
|
// model is the upstream model identifier extracted from the request body.
|
|
Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"`
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) Reset() {
|
|
*x = CheckLLMPolicyLimitsRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[33]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CheckLLMPolicyLimitsRequest) ProtoMessage() {}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[33]
|
|
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 CheckLLMPolicyLimitsRequest.ProtoReflect.Descriptor instead.
|
|
func (*CheckLLMPolicyLimitsRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{33}
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) GetUserId() string {
|
|
if x != nil {
|
|
return x.UserId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) GetGroupIds() []string {
|
|
if x != nil {
|
|
return x.GroupIds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) GetProviderId() string {
|
|
if x != nil {
|
|
return x.ProviderId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsRequest) GetModel() string {
|
|
if x != nil {
|
|
return x.Model
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// CheckLLMPolicyLimitsResponse is management's allow-or-deny decision for a
|
|
// pre-flight check.
|
|
type CheckLLMPolicyLimitsResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// decision is "allow" or "deny".
|
|
Decision string `protobuf:"bytes,1,opt,name=decision,proto3" json:"decision,omitempty"`
|
|
// selected_policy_id names the policy that paid for this request.
|
|
SelectedPolicyId string `protobuf:"bytes,2,opt,name=selected_policy_id,json=selectedPolicyId,proto3" json:"selected_policy_id,omitempty"`
|
|
// attribution_group_id is the source group the request booked against.
|
|
AttributionGroupId string `protobuf:"bytes,3,opt,name=attribution_group_id,json=attributionGroupId,proto3" json:"attribution_group_id,omitempty"`
|
|
// window_seconds is the cap window length the selected policy uses.
|
|
WindowSeconds int64 `protobuf:"varint,4,opt,name=window_seconds,json=windowSeconds,proto3" json:"window_seconds,omitempty"`
|
|
// deny_code is set on decision="deny" with a stable label.
|
|
DenyCode string `protobuf:"bytes,5,opt,name=deny_code,json=denyCode,proto3" json:"deny_code,omitempty"`
|
|
// deny_reason is a short human-readable explanation paired with deny_code.
|
|
DenyReason string `protobuf:"bytes,6,opt,name=deny_reason,json=denyReason,proto3" json:"deny_reason,omitempty"`
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) Reset() {
|
|
*x = CheckLLMPolicyLimitsResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[34]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CheckLLMPolicyLimitsResponse) ProtoMessage() {}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[34]
|
|
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 CheckLLMPolicyLimitsResponse.ProtoReflect.Descriptor instead.
|
|
func (*CheckLLMPolicyLimitsResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{34}
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetDecision() string {
|
|
if x != nil {
|
|
return x.Decision
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetSelectedPolicyId() string {
|
|
if x != nil {
|
|
return x.SelectedPolicyId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetAttributionGroupId() string {
|
|
if x != nil {
|
|
return x.AttributionGroupId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetWindowSeconds() int64 {
|
|
if x != nil {
|
|
return x.WindowSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetDenyCode() string {
|
|
if x != nil {
|
|
return x.DenyCode
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CheckLLMPolicyLimitsResponse) GetDenyReason() string {
|
|
if x != nil {
|
|
return x.DenyReason
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// RecordLLMUsageRequest is the post-flight increment the proxy posts after
|
|
// the upstream call. Counters are keyed on (account, dimension, window).
|
|
type RecordLLMUsageRequest struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
|
|
UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
|
// group_id is the selected policy's attribution group, recorded against the
|
|
// policy window (window_seconds).
|
|
GroupId string `protobuf:"bytes,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
|
|
WindowSeconds int64 `protobuf:"varint,4,opt,name=window_seconds,json=windowSeconds,proto3" json:"window_seconds,omitempty"`
|
|
TokensInput int64 `protobuf:"varint,5,opt,name=tokens_input,json=tokensInput,proto3" json:"tokens_input,omitempty"`
|
|
TokensOutput int64 `protobuf:"varint,6,opt,name=tokens_output,json=tokensOutput,proto3" json:"tokens_output,omitempty"`
|
|
CostUsd float64 `protobuf:"fixed64,7,opt,name=cost_usd,json=costUsd,proto3" json:"cost_usd,omitempty"`
|
|
// group_ids is the caller's full group membership, used to fan the same
|
|
// usage out to every applicable account-level budget rule's own window.
|
|
GroupIds []string `protobuf:"bytes,8,rep,name=group_ids,json=groupIds,proto3" json:"group_ids,omitempty"`
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) Reset() {
|
|
*x = RecordLLMUsageRequest{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[35]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RecordLLMUsageRequest) ProtoMessage() {}
|
|
|
|
func (x *RecordLLMUsageRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[35]
|
|
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 RecordLLMUsageRequest.ProtoReflect.Descriptor instead.
|
|
func (*RecordLLMUsageRequest) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{35}
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetAccountId() string {
|
|
if x != nil {
|
|
return x.AccountId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetUserId() string {
|
|
if x != nil {
|
|
return x.UserId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetGroupId() string {
|
|
if x != nil {
|
|
return x.GroupId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetWindowSeconds() int64 {
|
|
if x != nil {
|
|
return x.WindowSeconds
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetTokensInput() int64 {
|
|
if x != nil {
|
|
return x.TokensInput
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetTokensOutput() int64 {
|
|
if x != nil {
|
|
return x.TokensOutput
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetCostUsd() float64 {
|
|
if x != nil {
|
|
return x.CostUsd
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *RecordLLMUsageRequest) GetGroupIds() []string {
|
|
if x != nil {
|
|
return x.GroupIds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type RecordLLMUsageResponse struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
}
|
|
|
|
func (x *RecordLLMUsageResponse) Reset() {
|
|
*x = RecordLLMUsageResponse{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_proxy_service_proto_msgTypes[36]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *RecordLLMUsageResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*RecordLLMUsageResponse) ProtoMessage() {}
|
|
|
|
func (x *RecordLLMUsageResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_proxy_service_proto_msgTypes[36]
|
|
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 RecordLLMUsageResponse.ProtoReflect.Descriptor instead.
|
|
func (*RecordLLMUsageResponse) Descriptor() ([]byte, []int) {
|
|
return file_proxy_service_proto_rawDescGZIP(), []int{36}
|
|
}
|
|
|
|
var File_proxy_service_proto protoreflect.FileDescriptor
|
|
|
|
var file_proxy_service_proto_rawDesc = []byte{
|
|
0x0a, 0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
|
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
|
|
0x74, 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, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
|
0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
|
|
0x74, 0x6f, 0x22, 0xfd, 0x02, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x61, 0x70, 0x61,
|
|
0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x73, 0x75, 0x70, 0x70,
|
|
0x6f, 0x72, 0x74, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74,
|
|
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f,
|
|
0x72, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x88, 0x01,
|
|
0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62,
|
|
0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10,
|
|
0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x53, 0x75, 0x62, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
|
|
0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f,
|
|
0x63, 0x72, 0x6f, 0x77, 0x64, 0x73, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02,
|
|
0x52, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x73,
|
|
0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65,
|
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
|
|
0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
|
0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
|
0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
|
|
0x74, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
|
0x88, 0x01, 0x01, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
|
0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x14, 0x0a,
|
|
0x12, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x64, 0x6f, 0x6d,
|
|
0x61, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
|
0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x73, 0x65, 0x63, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72,
|
|
0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
|
|
0x74, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69,
|
|
0x63, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e,
|
|
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
|
|
0x0a, 0x08, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
|
0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
|
|
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
|
|
0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61,
|
|
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
|
|
0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18,
|
|
0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61,
|
|
0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
|
|
0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x78,
|
|
0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63,
|
|
0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x18,
|
|
0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70,
|
|
0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x61, 0x6e, 0x61,
|
|
0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x61, 0x70, 0x70,
|
|
0x69, 0x6e, 0x67, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15,
|
|
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d,
|
|
0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x69,
|
|
0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
|
|
0x22, 0xb6, 0x06, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f,
|
|
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x74,
|
|
0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
0x0d, 0x73, 0x6b, 0x69, 0x70, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x42,
|
|
0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f,
|
|
0x75, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69,
|
|
0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67,
|
|
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74,
|
|
0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x77, 0x72, 0x69,
|
|
0x74, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x65, 0x61,
|
|
0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x61, 0x6e,
|
|
0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x54, 0x61, 0x72, 0x67,
|
|
0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
|
|
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63, 0x75,
|
|
0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70,
|
|
0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20,
|
|
0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
|
|
0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x14, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
|
|
0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
|
|
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
|
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x65, 0x73,
|
|
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
|
|
0x27, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65,
|
|
0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
|
|
0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x61, 0x70, 0x74,
|
|
0x75, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
|
|
0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x63, 0x61, 0x70,
|
|
0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79,
|
|
0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d,
|
|
0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65,
|
|
0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65,
|
|
0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73,
|
|
0x12, 0x32, 0x0a, 0x15, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
|
|
0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52,
|
|
0x13, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54,
|
|
0x79, 0x70, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61,
|
|
0x72, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61,
|
|
0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72,
|
|
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77,
|
|
0x61, 0x72, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x65,
|
|
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x65,
|
|
0x6e, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73,
|
|
0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x18,
|
|
0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63,
|
|
0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x75, 0x73, 0x74, 0x6f,
|
|
0x6d, 0x48, 0x65, 0x61, 0x64, 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,
|
|
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, 0xd1, 0x02, 0x0a, 0x10, 0x4d, 0x69,
|
|
0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e,
|
|
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18,
|
|
0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
|
|
0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74,
|
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
|
|
0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x53, 0x6c,
|
|
0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66,
|
|
0x69, 0x67, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63,
|
|
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x61, 0x69,
|
|
0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d,
|
|
0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65,
|
|
0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x4d,
|
|
0x6f, 0x64, 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x33, 0x0a,
|
|
0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
|
|
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
|
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
|
|
0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x65,
|
|
0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x4d, 0x75, 0x74, 0x61, 0x74,
|
|
0x65, 0x22, 0x2a, 0x0a, 0x08, 0x46, 0x61, 0x69, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a,
|
|
0x09, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b,
|
|
0x46, 0x41, 0x49, 0x4c, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, 0x22, 0x72, 0x0a,
|
|
0x0b, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04,
|
|
0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
|
|
0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
|
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,
|
|
0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61,
|
|
0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65,
|
|
0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
|
0x73, 0x22, 0x47, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12,
|
|
0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x68, 0x65,
|
|
0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68,
|
|
0x61, 0x73, 0x68, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x41,
|
|
0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a,
|
|
0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35,
|
|
0x0a, 0x17, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x67,
|
|
0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
|
|
0x14, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x53, 0x65,
|
|
0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
|
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
|
0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
|
|
0x70, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x69, 0x64, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28,
|
|
0x08, 0x52, 0x04, 0x6f, 0x69, 0x64, 0x63, 0x12, 0x39, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65,
|
|
0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e,
|
|
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65,
|
|
0x72, 0x41, 0x75, 0x74, 0x68, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x75, 0x74,
|
|
0x68, 0x73, 0x22, 0xdd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73,
|
|
0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c,
|
|
0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
|
|
0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x69, 0x64, 0x72, 0x73, 0x12, 0x23,
|
|
0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x73, 0x18,
|
|
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x43, 0x69,
|
|
0x64, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x63,
|
|
0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10,
|
|
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
|
|
0x12, 0x2b, 0x0a, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
|
|
0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f,
|
|
0x63, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a,
|
|
0x0d, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x73, 0x65, 0x63, 0x4d, 0x6f,
|
|
0x64, 0x65, 0x22, 0x80, 0x04, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x61, 0x70, 0x70,
|
|
0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
0x0e, 0x32, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50,
|
|
0x72, 0x6f, 0x78, 0x79, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
|
|
0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
|
|
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61,
|
|
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f,
|
|
0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61,
|
|
0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
|
|
0x32, 0x17, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61,
|
|
0x74, 0x68, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,
|
|
0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20,
|
|
0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e,
|
|
0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d,
|
|
0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e,
|
|
0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x12, 0x28,
|
|
0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64,
|
|
0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x48, 0x6f,
|
|
0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x77, 0x72,
|
|
0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x18, 0x09, 0x20,
|
|
0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x64, 0x69,
|
|
0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20,
|
|
0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73,
|
|
0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
|
|
0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x4f, 0x0a, 0x13, 0x61, 0x63,
|
|
0x63, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
|
0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
|
|
0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x74, 0x72,
|
|
0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52,
|
|
0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70,
|
|
0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72,
|
|
0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0x3f, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63,
|
|
0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a,
|
|
0x03, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e,
|
|
0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f,
|
|
0x67, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x63,
|
|
0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
|
0xa9, 0x05, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x12, 0x38, 0x0a,
|
|
0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69,
|
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x5f, 0x69,
|
|
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x1d,
|
|
0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a,
|
|
0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
|
|
0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
|
|
0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74,
|
|
0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
|
0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
|
0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74,
|
|
0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18,
|
|
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x23, 0x0a,
|
|
0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09,
|
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f,
|
|
0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18,
|
|
0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x12,
|
|
0x25, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73,
|
|
0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x63,
|
|
0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69,
|
|
0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12,
|
|
0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18,
|
|
0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x53, 0x75, 0x63, 0x63, 0x65,
|
|
0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x6c, 0x6f,
|
|
0x61, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55,
|
|
0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64,
|
|
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x62,
|
|
0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08,
|
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
|
|
0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x61, 0x6e,
|
|
0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f,
|
|
0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
|
|
0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x65,
|
|
0x6e, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08,
|
|
0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x1a, 0x3b,
|
|
0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0xf8, 0x01, 0x0a, 0x13,
|
|
0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
|
|
0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69,
|
|
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
|
0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03,
|
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
|
|
0x74, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2a, 0x0a,
|
|
0x03, 0x70, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x6e,
|
|
0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x68, 0x65, 0x61,
|
|
0x64, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
|
|
0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64,
|
|
0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
|
|
0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x72,
|
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
|
0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x68,
|
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
0x09, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f,
|
|
0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
|
0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22,
|
|
0x2d, 0x0a, 0x0f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x1e,
|
|
0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03,
|
|
0x70, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x55,
|
|
0x0a, 0x14, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65,
|
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73,
|
|
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
|
|
0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
|
|
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
|
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x02, 0x0a, 0x17, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74,
|
|
0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18,
|
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64,
|
|
0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
|
0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
|
|
0x17, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x6f,
|
|
0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
|
0x12, 0x2d, 0x0a, 0x12, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f,
|
|
0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x65,
|
|
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x12,
|
|
0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
|
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
|
|
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x10, 0x69, 0x6e, 0x62,
|
|
0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x32, 0x20,
|
|
0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
|
|
0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x69, 0x73,
|
|
0x74, 0x65, 0x6e, 0x65, 0x72, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64,
|
|
0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f,
|
|
0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x13, 0x0a,
|
|
0x11, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
|
|
0x65, 0x72, 0x22, 0x6f, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x62, 0x6f, 0x75,
|
|
0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x75,
|
|
0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
|
|
0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x73,
|
|
0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x74, 0x74,
|
|
0x70, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70,
|
|
0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50,
|
|
0x6f, 0x72, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75,
|
|
0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
|
0xb8, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50,
|
|
0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65,
|
|
0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
|
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63,
|
|
0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61,
|
|
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
|
|
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30,
|
|
0x0a, 0x14, 0x77, 0x69, 0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x75, 0x62, 0x6c,
|
|
0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x77, 0x69,
|
|
0x72, 0x65, 0x67, 0x75, 0x61, 0x72, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79,
|
|
0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
|
|
0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x6f, 0x0a, 0x17, 0x43, 0x72,
|
|
0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73,
|
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
|
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
|
|
0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
|
|
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x72,
|
|
0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x65, 0x0a, 0x11, 0x47,
|
|
0x65, 0x74, 0x4f, 0x49, 0x44, 0x43, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
|
|
0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
|
0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18,
|
|
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55,
|
|
0x72, 0x6c, 0x22, 0x26, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x49, 0x44, 0x43, 0x55, 0x52, 0x4c,
|
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
|
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x55, 0x0a, 0x16, 0x56, 0x61,
|
|
0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
|
|
0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x23, 0x0a, 0x0d,
|
|
0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
|
|
0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65,
|
|
0x6e, 0x22, 0xdc, 0x01, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65,
|
|
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a,
|
|
0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61,
|
|
0x6c, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
|
|
0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
|
0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x64,
|
|
0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
|
|
0x12, 0x24, 0x0a, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
|
|
0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72,
|
|
0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67,
|
|
0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
|
|
0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73,
|
|
0x22, 0x50, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e,
|
|
0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a,
|
|
0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
|
0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f,
|
|
0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61,
|
|
0x69, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54,
|
|
0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
|
0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
|
|
0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f,
|
|
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
|
|
0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12,
|
|
0x23, 0x0a, 0x0d, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
|
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x52, 0x65,
|
|
0x61, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
|
|
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x73,
|
|
0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x65, 0x65,
|
|
0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
|
|
0x09, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12,
|
|
0x28, 0x0a, 0x10, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61,
|
|
0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x47,
|
|
0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x53, 0x79,
|
|
0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
0x74, 0x12, 0x32, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
|
0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x79, 0x6e,
|
|
0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52,
|
|
0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x2f, 0x0a, 0x03, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01,
|
|
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
|
|
0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x41, 0x63, 0x6b, 0x48,
|
|
0x00, 0x52, 0x03, 0x61, 0x63, 0x6b, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdf, 0x01,
|
|
0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x49, 0x6e,
|
|
0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x64, 0x12, 0x18, 0x0a,
|
|
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
|
|
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
|
|
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
|
|
0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20,
|
|
0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0c,
|
|
0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01,
|
|
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
|
|
0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65,
|
|
0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22,
|
|
0x11, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x41,
|
|
0x63, 0x6b, 0x22, 0x7e, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e,
|
|
0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x61,
|
|
0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x61,
|
|
0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x61,
|
|
0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x32,
|
|
0x0a, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63,
|
|
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69,
|
|
0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
|
|
0x74, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x4c, 0x4d, 0x50,
|
|
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
|
|
0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72,
|
|
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x67,
|
|
0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69,
|
|
0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
|
|
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65,
|
|
0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0xff,
|
|
0x01, 0x0a, 0x1c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x4c, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63,
|
|
0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
|
0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
0x09, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x73,
|
|
0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69,
|
|
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65,
|
|
0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x74, 0x74,
|
|
0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
|
|
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
|
|
0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77,
|
|
0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20,
|
|
0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e,
|
|
0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
|
|
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
|
0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
|
|
0x22, 0x91, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x4c, 0x4d, 0x55, 0x73,
|
|
0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63,
|
|
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
|
0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65,
|
|
0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
|
|
0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03,
|
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x25, 0x0a,
|
|
0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18,
|
|
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63,
|
|
0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x69,
|
|
0x6e, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65,
|
|
0x6e, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
|
|
0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
|
|
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x08,
|
|
0x63, 0x6f, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07,
|
|
0x63, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
|
0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75,
|
|
0x70, 0x49, 0x64, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x4c,
|
|
0x4d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x64,
|
|
0x0a, 0x16, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70,
|
|
0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41,
|
|
0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10,
|
|
0x00, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
|
|
0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55,
|
|
0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56,
|
|
0x45, 0x44, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x0f, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x77, 0x72,
|
|
0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x54, 0x48, 0x5f,
|
|
0x52, 0x45, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10,
|
|
0x00, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x57, 0x52, 0x49, 0x54,
|
|
0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0x01, 0x2a, 0x90, 0x01, 0x0a,
|
|
0x0e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12,
|
|
0x1f, 0x0a, 0x1b, 0x4d, 0x49, 0x44, 0x44, 0x4c, 0x45, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x53, 0x4c,
|
|
0x4f, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
|
|
0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x49, 0x44, 0x44, 0x4c, 0x45, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x53,
|
|
0x4c, 0x4f, 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01,
|
|
0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x49, 0x44, 0x44, 0x4c, 0x45, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x53,
|
|
0x4c, 0x4f, 0x54, 0x5f, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10,
|
|
0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x49, 0x44, 0x44, 0x4c, 0x45, 0x57, 0x41, 0x52, 0x45, 0x5f,
|
|
0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x2a,
|
|
0xc8, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
|
|
0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
|
|
0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x52, 0x4f,
|
|
0x58, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45,
|
|
0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54,
|
|
0x55, 0x53, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x52,
|
|
0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x52, 0x4f, 0x58, 0x59,
|
|
0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43,
|
|
0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x23, 0x0a,
|
|
0x1f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x45,
|
|
0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
|
|
0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54,
|
|
0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x32, 0xfc, 0x07, 0x0a, 0x0c, 0x50,
|
|
0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x47,
|
|
0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
|
|
0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74,
|
|
0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
|
|
0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
|
|
0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61,
|
|
0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x55, 0x0a, 0x0c,
|
|
0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1f, 0x2e, 0x6d,
|
|
0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x61,
|
|
0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e,
|
|
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4d,
|
|
0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28,
|
|
0x01, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73,
|
|
0x73, 0x4c, 0x6f, 0x67, 0x12, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
|
|
0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f, 0x67, 0x52,
|
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
|
|
0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4c, 0x6f,
|
|
0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x41, 0x75, 0x74,
|
|
0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x61, 0x6e, 0x61,
|
|
0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
|
|
0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x61, 0x6e,
|
|
0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
|
|
0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x10,
|
|
0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
|
0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65,
|
|
0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
|
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
|
|
0x6e, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x70, 0x64,
|
|
0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x43,
|
|
0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x65, 0x65, 0x72, 0x12, 0x22,
|
|
0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
|
0x74, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
|
|
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x65, 0x65, 0x72, 0x52,
|
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4f, 0x49,
|
|
0x44, 0x43, 0x55, 0x52, 0x4c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
|
|
0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x49, 0x44, 0x43, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71,
|
|
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
|
|
0x74, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x49, 0x44, 0x43, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70,
|
|
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
|
|
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
|
|
0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73,
|
|
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x61,
|
|
0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
|
|
0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
0x12, 0x63, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e,
|
|
0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
|
|
0x65, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e,
|
|
0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e,
|
|
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
|
|
0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73,
|
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x14, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x4c,
|
|
0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x27, 0x2e,
|
|
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
|
|
0x4c, 0x4c, 0x4d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52,
|
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d,
|
|
0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x4c, 0x4d, 0x50, 0x6f, 0x6c, 0x69,
|
|
0x63, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
0x12, 0x57, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x4c, 0x4d, 0x55, 0x73, 0x61,
|
|
0x67, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
|
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x4c, 0x4d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65,
|
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
|
|
0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x4c, 0x4d, 0x55, 0x73, 0x61, 0x67,
|
|
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x08, 0x5a, 0x06, 0x2f, 0x70, 0x72,
|
|
0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
}
|
|
|
|
var (
|
|
file_proxy_service_proto_rawDescOnce sync.Once
|
|
file_proxy_service_proto_rawDescData = file_proxy_service_proto_rawDesc
|
|
)
|
|
|
|
func file_proxy_service_proto_rawDescGZIP() []byte {
|
|
file_proxy_service_proto_rawDescOnce.Do(func() {
|
|
file_proxy_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_proxy_service_proto_rawDescData)
|
|
})
|
|
return file_proxy_service_proto_rawDescData
|
|
}
|
|
|
|
var file_proxy_service_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
|
|
var file_proxy_service_proto_msgTypes = make([]protoimpl.MessageInfo, 39)
|
|
var file_proxy_service_proto_goTypes = []interface{}{
|
|
(ProxyMappingUpdateType)(0), // 0: management.ProxyMappingUpdateType
|
|
(PathRewriteMode)(0), // 1: management.PathRewriteMode
|
|
(MiddlewareSlot)(0), // 2: management.MiddlewareSlot
|
|
(ProxyStatus)(0), // 3: management.ProxyStatus
|
|
(MiddlewareConfig_FailMode)(0), // 4: management.MiddlewareConfig.FailMode
|
|
(*ProxyCapabilities)(nil), // 5: management.ProxyCapabilities
|
|
(*GetMappingUpdateRequest)(nil), // 6: management.GetMappingUpdateRequest
|
|
(*GetMappingUpdateResponse)(nil), // 7: management.GetMappingUpdateResponse
|
|
(*PathTargetOptions)(nil), // 8: management.PathTargetOptions
|
|
(*MiddlewareConfig)(nil), // 9: management.MiddlewareConfig
|
|
(*PathMapping)(nil), // 10: management.PathMapping
|
|
(*HeaderAuth)(nil), // 11: management.HeaderAuth
|
|
(*Authentication)(nil), // 12: management.Authentication
|
|
(*AccessRestrictions)(nil), // 13: management.AccessRestrictions
|
|
(*ProxyMapping)(nil), // 14: management.ProxyMapping
|
|
(*SendAccessLogRequest)(nil), // 15: management.SendAccessLogRequest
|
|
(*SendAccessLogResponse)(nil), // 16: management.SendAccessLogResponse
|
|
(*AccessLog)(nil), // 17: management.AccessLog
|
|
(*AuthenticateRequest)(nil), // 18: management.AuthenticateRequest
|
|
(*HeaderAuthRequest)(nil), // 19: management.HeaderAuthRequest
|
|
(*PasswordRequest)(nil), // 20: management.PasswordRequest
|
|
(*PinRequest)(nil), // 21: management.PinRequest
|
|
(*AuthenticateResponse)(nil), // 22: management.AuthenticateResponse
|
|
(*SendStatusUpdateRequest)(nil), // 23: management.SendStatusUpdateRequest
|
|
(*ProxyInboundListener)(nil), // 24: management.ProxyInboundListener
|
|
(*SendStatusUpdateResponse)(nil), // 25: management.SendStatusUpdateResponse
|
|
(*CreateProxyPeerRequest)(nil), // 26: management.CreateProxyPeerRequest
|
|
(*CreateProxyPeerResponse)(nil), // 27: management.CreateProxyPeerResponse
|
|
(*GetOIDCURLRequest)(nil), // 28: management.GetOIDCURLRequest
|
|
(*GetOIDCURLResponse)(nil), // 29: management.GetOIDCURLResponse
|
|
(*ValidateSessionRequest)(nil), // 30: management.ValidateSessionRequest
|
|
(*ValidateSessionResponse)(nil), // 31: management.ValidateSessionResponse
|
|
(*ValidateTunnelPeerRequest)(nil), // 32: management.ValidateTunnelPeerRequest
|
|
(*ValidateTunnelPeerResponse)(nil), // 33: management.ValidateTunnelPeerResponse
|
|
(*SyncMappingsRequest)(nil), // 34: management.SyncMappingsRequest
|
|
(*SyncMappingsInit)(nil), // 35: management.SyncMappingsInit
|
|
(*SyncMappingsAck)(nil), // 36: management.SyncMappingsAck
|
|
(*SyncMappingsResponse)(nil), // 37: management.SyncMappingsResponse
|
|
(*CheckLLMPolicyLimitsRequest)(nil), // 38: management.CheckLLMPolicyLimitsRequest
|
|
(*CheckLLMPolicyLimitsResponse)(nil), // 39: management.CheckLLMPolicyLimitsResponse
|
|
(*RecordLLMUsageRequest)(nil), // 40: management.RecordLLMUsageRequest
|
|
(*RecordLLMUsageResponse)(nil), // 41: management.RecordLLMUsageResponse
|
|
nil, // 42: management.PathTargetOptions.CustomHeadersEntry
|
|
nil, // 43: management.AccessLog.MetadataEntry
|
|
(*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp
|
|
(*durationpb.Duration)(nil), // 45: google.protobuf.Duration
|
|
}
|
|
var file_proxy_service_proto_depIdxs = []int32{
|
|
44, // 0: management.GetMappingUpdateRequest.started_at:type_name -> google.protobuf.Timestamp
|
|
5, // 1: management.GetMappingUpdateRequest.capabilities:type_name -> management.ProxyCapabilities
|
|
14, // 2: management.GetMappingUpdateResponse.mapping:type_name -> management.ProxyMapping
|
|
45, // 3: management.PathTargetOptions.request_timeout:type_name -> google.protobuf.Duration
|
|
1, // 4: management.PathTargetOptions.path_rewrite:type_name -> management.PathRewriteMode
|
|
42, // 5: management.PathTargetOptions.custom_headers:type_name -> management.PathTargetOptions.CustomHeadersEntry
|
|
45, // 6: management.PathTargetOptions.session_idle_timeout:type_name -> google.protobuf.Duration
|
|
9, // 7: management.PathTargetOptions.middlewares:type_name -> management.MiddlewareConfig
|
|
2, // 8: management.MiddlewareConfig.slot:type_name -> management.MiddlewareSlot
|
|
4, // 9: management.MiddlewareConfig.fail_mode:type_name -> management.MiddlewareConfig.FailMode
|
|
45, // 10: management.MiddlewareConfig.timeout:type_name -> google.protobuf.Duration
|
|
8, // 11: management.PathMapping.options:type_name -> management.PathTargetOptions
|
|
11, // 12: management.Authentication.header_auths:type_name -> management.HeaderAuth
|
|
0, // 13: management.ProxyMapping.type:type_name -> management.ProxyMappingUpdateType
|
|
10, // 14: management.ProxyMapping.path:type_name -> management.PathMapping
|
|
12, // 15: management.ProxyMapping.auth:type_name -> management.Authentication
|
|
13, // 16: management.ProxyMapping.access_restrictions:type_name -> management.AccessRestrictions
|
|
17, // 17: management.SendAccessLogRequest.log:type_name -> management.AccessLog
|
|
44, // 18: management.AccessLog.timestamp:type_name -> google.protobuf.Timestamp
|
|
43, // 19: management.AccessLog.metadata:type_name -> management.AccessLog.MetadataEntry
|
|
20, // 20: management.AuthenticateRequest.password:type_name -> management.PasswordRequest
|
|
21, // 21: management.AuthenticateRequest.pin:type_name -> management.PinRequest
|
|
19, // 22: management.AuthenticateRequest.header_auth:type_name -> management.HeaderAuthRequest
|
|
3, // 23: management.SendStatusUpdateRequest.status:type_name -> management.ProxyStatus
|
|
24, // 24: management.SendStatusUpdateRequest.inbound_listener:type_name -> management.ProxyInboundListener
|
|
35, // 25: management.SyncMappingsRequest.init:type_name -> management.SyncMappingsInit
|
|
36, // 26: management.SyncMappingsRequest.ack:type_name -> management.SyncMappingsAck
|
|
44, // 27: management.SyncMappingsInit.started_at:type_name -> google.protobuf.Timestamp
|
|
5, // 28: management.SyncMappingsInit.capabilities:type_name -> management.ProxyCapabilities
|
|
14, // 29: management.SyncMappingsResponse.mapping:type_name -> management.ProxyMapping
|
|
6, // 30: management.ProxyService.GetMappingUpdate:input_type -> management.GetMappingUpdateRequest
|
|
34, // 31: management.ProxyService.SyncMappings:input_type -> management.SyncMappingsRequest
|
|
15, // 32: management.ProxyService.SendAccessLog:input_type -> management.SendAccessLogRequest
|
|
18, // 33: management.ProxyService.Authenticate:input_type -> management.AuthenticateRequest
|
|
23, // 34: management.ProxyService.SendStatusUpdate:input_type -> management.SendStatusUpdateRequest
|
|
26, // 35: management.ProxyService.CreateProxyPeer:input_type -> management.CreateProxyPeerRequest
|
|
28, // 36: management.ProxyService.GetOIDCURL:input_type -> management.GetOIDCURLRequest
|
|
30, // 37: management.ProxyService.ValidateSession:input_type -> management.ValidateSessionRequest
|
|
32, // 38: management.ProxyService.ValidateTunnelPeer:input_type -> management.ValidateTunnelPeerRequest
|
|
38, // 39: management.ProxyService.CheckLLMPolicyLimits:input_type -> management.CheckLLMPolicyLimitsRequest
|
|
40, // 40: management.ProxyService.RecordLLMUsage:input_type -> management.RecordLLMUsageRequest
|
|
7, // 41: management.ProxyService.GetMappingUpdate:output_type -> management.GetMappingUpdateResponse
|
|
37, // 42: management.ProxyService.SyncMappings:output_type -> management.SyncMappingsResponse
|
|
16, // 43: management.ProxyService.SendAccessLog:output_type -> management.SendAccessLogResponse
|
|
22, // 44: management.ProxyService.Authenticate:output_type -> management.AuthenticateResponse
|
|
25, // 45: management.ProxyService.SendStatusUpdate:output_type -> management.SendStatusUpdateResponse
|
|
27, // 46: management.ProxyService.CreateProxyPeer:output_type -> management.CreateProxyPeerResponse
|
|
29, // 47: management.ProxyService.GetOIDCURL:output_type -> management.GetOIDCURLResponse
|
|
31, // 48: management.ProxyService.ValidateSession:output_type -> management.ValidateSessionResponse
|
|
33, // 49: management.ProxyService.ValidateTunnelPeer:output_type -> management.ValidateTunnelPeerResponse
|
|
39, // 50: management.ProxyService.CheckLLMPolicyLimits:output_type -> management.CheckLLMPolicyLimitsResponse
|
|
41, // 51: management.ProxyService.RecordLLMUsage:output_type -> management.RecordLLMUsageResponse
|
|
41, // [41:52] is the sub-list for method output_type
|
|
30, // [30:41] is the sub-list for method input_type
|
|
30, // [30:30] is the sub-list for extension type_name
|
|
30, // [30:30] is the sub-list for extension extendee
|
|
0, // [0:30] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_proxy_service_proto_init() }
|
|
func file_proxy_service_proto_init() {
|
|
if File_proxy_service_proto != nil {
|
|
return
|
|
}
|
|
if !protoimpl.UnsafeEnabled {
|
|
file_proxy_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ProxyCapabilities); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*GetMappingUpdateRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*GetMappingUpdateResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*PathTargetOptions); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*MiddlewareConfig); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*PathMapping); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*HeaderAuth); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*Authentication); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*AccessRestrictions); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ProxyMapping); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SendAccessLogRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SendAccessLogResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*AccessLog); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*AuthenticateRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*HeaderAuthRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*PasswordRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*PinRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*AuthenticateResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SendStatusUpdateRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ProxyInboundListener); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SendStatusUpdateResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*CreateProxyPeerRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*CreateProxyPeerResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*GetOIDCURLRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*GetOIDCURLResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ValidateSessionRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ValidateSessionResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ValidateTunnelPeerRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*ValidateTunnelPeerResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SyncMappingsRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SyncMappingsInit); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SyncMappingsAck); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*SyncMappingsResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*CheckLLMPolicyLimitsRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*CheckLLMPolicyLimitsResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*RecordLLMUsageRequest); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*RecordLLMUsageResponse); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
file_proxy_service_proto_msgTypes[0].OneofWrappers = []interface{}{}
|
|
file_proxy_service_proto_msgTypes[13].OneofWrappers = []interface{}{
|
|
(*AuthenticateRequest_Password)(nil),
|
|
(*AuthenticateRequest_Pin)(nil),
|
|
(*AuthenticateRequest_HeaderAuth)(nil),
|
|
}
|
|
file_proxy_service_proto_msgTypes[18].OneofWrappers = []interface{}{}
|
|
file_proxy_service_proto_msgTypes[22].OneofWrappers = []interface{}{}
|
|
file_proxy_service_proto_msgTypes[29].OneofWrappers = []interface{}{
|
|
(*SyncMappingsRequest_Init)(nil),
|
|
(*SyncMappingsRequest_Ack)(nil),
|
|
}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: file_proxy_service_proto_rawDesc,
|
|
NumEnums: 5,
|
|
NumMessages: 39,
|
|
NumExtensions: 0,
|
|
NumServices: 1,
|
|
},
|
|
GoTypes: file_proxy_service_proto_goTypes,
|
|
DependencyIndexes: file_proxy_service_proto_depIdxs,
|
|
EnumInfos: file_proxy_service_proto_enumTypes,
|
|
MessageInfos: file_proxy_service_proto_msgTypes,
|
|
}.Build()
|
|
File_proxy_service_proto = out.File
|
|
file_proxy_service_proto_rawDesc = nil
|
|
file_proxy_service_proto_goTypes = nil
|
|
file_proxy_service_proto_depIdxs = nil
|
|
}
|