From eca2effa089bef743a5618d9de8455fa31fde320 Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Sat, 4 Nov 2023 15:52:29 +0100 Subject: [PATCH] init: run bufgen --- buf.gen.yaml | 8 + buf.yaml | 9 +- .../v1/seg_detached_extensions.pb.go | 178 ++ .../v1/control_planeconnect/cppki.connect.go | 153 ++ .../v1/control_planeconnect/drkey.connect.go | 312 +++ .../control_planeconnect/renewal.connect.go | 122 + .../v1/control_planeconnect/seg.connect.go | 278 ++ bufgen/proto/control_plane/v1/cppki.pb.go | 595 +++++ bufgen/proto/control_plane/v1/drkey.pb.go | 1324 ++++++++++ bufgen/proto/control_plane/v1/renewal.pb.go | 414 +++ bufgen/proto/control_plane/v1/seg.pb.go | 1408 ++++++++++ .../control_plane/v1/seg_extensions.pb.go | 1012 ++++++++ .../control_plane/v1/svc_resolution.pb.go | 312 +++ bufgen/proto/crypto/v1/signed.pb.go | 443 ++++ bufgen/proto/daemon/v1/daemon.pb.go | 2265 +++++++++++++++++ .../daemon/v1/daemonconnect/daemon.connect.go | 325 +++ bufgen/proto/discovery/v1/discovery.pb.go | 604 +++++ .../v1/discoveryconnect/discovery.connect.go | 150 ++ bufgen/proto/drkey/v1/drkey.pb.go | 148 ++ bufgen/proto/gateway/v1/control.pb.go | 430 ++++ .../v1/gatewayconnect/prefix.connect.go | 121 + bufgen/proto/gateway/v1/prefix.pb.go | 300 +++ .../hidden_segment/v1/hidden_segment.pb.go | 731 ++++++ .../hidden_segment.connect.go | 284 +++ control/trust/connect/material.go | 32 + go.mod | 1 + go.sum | 2 + 27 files changed, 11956 insertions(+), 5 deletions(-) create mode 100644 buf.gen.yaml create mode 100644 bufgen/proto/control_plane/experimental/v1/seg_detached_extensions.pb.go create mode 100644 bufgen/proto/control_plane/v1/control_planeconnect/cppki.connect.go create mode 100644 bufgen/proto/control_plane/v1/control_planeconnect/drkey.connect.go create mode 100644 bufgen/proto/control_plane/v1/control_planeconnect/renewal.connect.go create mode 100644 bufgen/proto/control_plane/v1/control_planeconnect/seg.connect.go create mode 100644 bufgen/proto/control_plane/v1/cppki.pb.go create mode 100644 bufgen/proto/control_plane/v1/drkey.pb.go create mode 100644 bufgen/proto/control_plane/v1/renewal.pb.go create mode 100644 bufgen/proto/control_plane/v1/seg.pb.go create mode 100644 bufgen/proto/control_plane/v1/seg_extensions.pb.go create mode 100644 bufgen/proto/control_plane/v1/svc_resolution.pb.go create mode 100644 bufgen/proto/crypto/v1/signed.pb.go create mode 100644 bufgen/proto/daemon/v1/daemon.pb.go create mode 100644 bufgen/proto/daemon/v1/daemonconnect/daemon.connect.go create mode 100644 bufgen/proto/discovery/v1/discovery.pb.go create mode 100644 bufgen/proto/discovery/v1/discoveryconnect/discovery.connect.go create mode 100644 bufgen/proto/drkey/v1/drkey.pb.go create mode 100644 bufgen/proto/gateway/v1/control.pb.go create mode 100644 bufgen/proto/gateway/v1/gatewayconnect/prefix.connect.go create mode 100644 bufgen/proto/gateway/v1/prefix.pb.go create mode 100644 bufgen/proto/hidden_segment/v1/hidden_segment.pb.go create mode 100644 bufgen/proto/hidden_segment/v1/hidden_segmentconnect/hidden_segment.connect.go create mode 100644 control/trust/connect/material.go diff --git a/buf.gen.yaml b/buf.gen.yaml new file mode 100644 index 0000000000..33ca99a2aa --- /dev/null +++ b/buf.gen.yaml @@ -0,0 +1,8 @@ +version: v1 +plugins: + - plugin: go + out: gen + opt: paths=source_relative + - plugin: connect-go + out: gen + opt: paths=source_relative diff --git a/buf.yaml b/buf.yaml index a5d3ad80cc..0d6e93eabb 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,8 +1,7 @@ -build: - roots: - - . - excludes: - - anapaya/protobuf +version: v1 +breaking: + use: + - FILE lint: use: - DEFAULT diff --git a/bufgen/proto/control_plane/experimental/v1/seg_detached_extensions.pb.go b/bufgen/proto/control_plane/experimental/v1/seg_detached_extensions.pb.go new file mode 100644 index 0000000000..7618f44a0d --- /dev/null +++ b/bufgen/proto/control_plane/experimental/v1/seg_detached_extensions.pb.go @@ -0,0 +1,178 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/experimental/v1/seg_detached_extensions.proto + +package experimental + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EPICDetachedExtension struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Remaining bytes of the full MAC in the hop entry. + AuthHopEntry []byte `protobuf:"bytes,1,opt,name=auth_hop_entry,json=authHopEntry,proto3" json:"auth_hop_entry,omitempty"` + // Remaining bytes of the full MAC in the peer entries. + AuthPeerEntries [][]byte `protobuf:"bytes,2,rep,name=auth_peer_entries,json=authPeerEntries,proto3" json:"auth_peer_entries,omitempty"` +} + +func (x *EPICDetachedExtension) Reset() { + *x = EPICDetachedExtension{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EPICDetachedExtension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EPICDetachedExtension) ProtoMessage() {} + +func (x *EPICDetachedExtension) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_experimental_v1_seg_detached_extensions_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 EPICDetachedExtension.ProtoReflect.Descriptor instead. +func (*EPICDetachedExtension) Descriptor() ([]byte, []int) { + return file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescGZIP(), []int{0} +} + +func (x *EPICDetachedExtension) GetAuthHopEntry() []byte { + if x != nil { + return x.AuthHopEntry + } + return nil +} + +func (x *EPICDetachedExtension) GetAuthPeerEntries() [][]byte { + if x != nil { + return x.AuthPeerEntries + } + return nil +} + +var File_proto_control_plane_experimental_v1_seg_detached_extensions_proto protoreflect.FileDescriptor + +var file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDesc = []byte{ + 0x0a, 0x41, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x23, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x22, 0x69, 0x0a, 0x15, 0x45, 0x50, 0x49, 0x43, + 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x48, + 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x65, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x42, 0x42, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, + 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescOnce sync.Once + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescData = file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDesc +) + +func file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescGZIP() []byte { + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescOnce.Do(func() { + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescData) + }) + return file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDescData +} + +var file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_goTypes = []interface{}{ + (*EPICDetachedExtension)(nil), // 0: proto.control_plane.experimental.v1.EPICDetachedExtension +} +var file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_init() } +func file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_init() { + if File_proto_control_plane_experimental_v1_seg_detached_extensions_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EPICDetachedExtension); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_goTypes, + DependencyIndexes: file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_depIdxs, + MessageInfos: file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_msgTypes, + }.Build() + File_proto_control_plane_experimental_v1_seg_detached_extensions_proto = out.File + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_rawDesc = nil + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_goTypes = nil + file_proto_control_plane_experimental_v1_seg_detached_extensions_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/control_planeconnect/cppki.connect.go b/bufgen/proto/control_plane/v1/control_planeconnect/cppki.connect.go new file mode 100644 index 0000000000..7e61709996 --- /dev/null +++ b/bufgen/proto/control_plane/v1/control_planeconnect/cppki.connect.go @@ -0,0 +1,153 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/control_plane/v1/cppki.proto + +package control_planeconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + control_plane "github.com/scionproto/scion/pkg/proto/control_plane" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // TrustMaterialServiceName is the fully-qualified name of the TrustMaterialService service. + TrustMaterialServiceName = "proto.control_plane.v1.TrustMaterialService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // TrustMaterialServiceChainsProcedure is the fully-qualified name of the TrustMaterialService's + // Chains RPC. + TrustMaterialServiceChainsProcedure = "/proto.control_plane.v1.TrustMaterialService/Chains" + // TrustMaterialServiceTRCProcedure is the fully-qualified name of the TrustMaterialService's TRC + // RPC. + TrustMaterialServiceTRCProcedure = "/proto.control_plane.v1.TrustMaterialService/TRC" +) + +// TrustMaterialServiceClient is a client for the proto.control_plane.v1.TrustMaterialService +// service. +type TrustMaterialServiceClient interface { + // Return the certificate chains that match the request. + Chains(context.Context, *connect.Request[control_plane.ChainsRequest]) (*connect.Response[control_plane.ChainsResponse], error) + // Return a specific TRC that matches the request. + TRC(context.Context, *connect.Request[control_plane.TRCRequest]) (*connect.Response[control_plane.TRCResponse], error) +} + +// NewTrustMaterialServiceClient constructs a client for the +// proto.control_plane.v1.TrustMaterialService service. By default, it uses the Connect protocol +// with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To +// use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() +// options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewTrustMaterialServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) TrustMaterialServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &trustMaterialServiceClient{ + chains: connect.NewClient[control_plane.ChainsRequest, control_plane.ChainsResponse]( + httpClient, + baseURL+TrustMaterialServiceChainsProcedure, + opts..., + ), + tRC: connect.NewClient[control_plane.TRCRequest, control_plane.TRCResponse]( + httpClient, + baseURL+TrustMaterialServiceTRCProcedure, + opts..., + ), + } +} + +// trustMaterialServiceClient implements TrustMaterialServiceClient. +type trustMaterialServiceClient struct { + chains *connect.Client[control_plane.ChainsRequest, control_plane.ChainsResponse] + tRC *connect.Client[control_plane.TRCRequest, control_plane.TRCResponse] +} + +// Chains calls proto.control_plane.v1.TrustMaterialService.Chains. +func (c *trustMaterialServiceClient) Chains(ctx context.Context, req *connect.Request[control_plane.ChainsRequest]) (*connect.Response[control_plane.ChainsResponse], error) { + return c.chains.CallUnary(ctx, req) +} + +// TRC calls proto.control_plane.v1.TrustMaterialService.TRC. +func (c *trustMaterialServiceClient) TRC(ctx context.Context, req *connect.Request[control_plane.TRCRequest]) (*connect.Response[control_plane.TRCResponse], error) { + return c.tRC.CallUnary(ctx, req) +} + +// TrustMaterialServiceHandler is an implementation of the +// proto.control_plane.v1.TrustMaterialService service. +type TrustMaterialServiceHandler interface { + // Return the certificate chains that match the request. + Chains(context.Context, *connect.Request[control_plane.ChainsRequest]) (*connect.Response[control_plane.ChainsResponse], error) + // Return a specific TRC that matches the request. + TRC(context.Context, *connect.Request[control_plane.TRCRequest]) (*connect.Response[control_plane.TRCResponse], error) +} + +// NewTrustMaterialServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewTrustMaterialServiceHandler(svc TrustMaterialServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + trustMaterialServiceChainsHandler := connect.NewUnaryHandler( + TrustMaterialServiceChainsProcedure, + svc.Chains, + opts..., + ) + trustMaterialServiceTRCHandler := connect.NewUnaryHandler( + TrustMaterialServiceTRCProcedure, + svc.TRC, + opts..., + ) + return "/proto.control_plane.v1.TrustMaterialService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case TrustMaterialServiceChainsProcedure: + trustMaterialServiceChainsHandler.ServeHTTP(w, r) + case TrustMaterialServiceTRCProcedure: + trustMaterialServiceTRCHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedTrustMaterialServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedTrustMaterialServiceHandler struct{} + +func (UnimplementedTrustMaterialServiceHandler) Chains(context.Context, *connect.Request[control_plane.ChainsRequest]) (*connect.Response[control_plane.ChainsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.TrustMaterialService.Chains is not implemented")) +} + +func (UnimplementedTrustMaterialServiceHandler) TRC(context.Context, *connect.Request[control_plane.TRCRequest]) (*connect.Response[control_plane.TRCResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.TrustMaterialService.TRC is not implemented")) +} diff --git a/bufgen/proto/control_plane/v1/control_planeconnect/drkey.connect.go b/bufgen/proto/control_plane/v1/control_planeconnect/drkey.connect.go new file mode 100644 index 0000000000..1dd45f2481 --- /dev/null +++ b/bufgen/proto/control_plane/v1/control_planeconnect/drkey.connect.go @@ -0,0 +1,312 @@ +// Copyright 2022 ETH Zurich +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/control_plane/v1/drkey.proto + +package control_planeconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + control_plane "github.com/scionproto/scion/pkg/proto/control_plane" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // DRKeyInterServiceName is the fully-qualified name of the DRKeyInterService service. + DRKeyInterServiceName = "proto.control_plane.v1.DRKeyInterService" + // DRKeyIntraServiceName is the fully-qualified name of the DRKeyIntraService service. + DRKeyIntraServiceName = "proto.control_plane.v1.DRKeyIntraService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // DRKeyInterServiceDRKeyLevel1Procedure is the fully-qualified name of the DRKeyInterService's + // DRKeyLevel1 RPC. + DRKeyInterServiceDRKeyLevel1Procedure = "/proto.control_plane.v1.DRKeyInterService/DRKeyLevel1" + // DRKeyIntraServiceDRKeyIntraLevel1Procedure is the fully-qualified name of the DRKeyIntraService's + // DRKeyIntraLevel1 RPC. + DRKeyIntraServiceDRKeyIntraLevel1Procedure = "/proto.control_plane.v1.DRKeyIntraService/DRKeyIntraLevel1" + // DRKeyIntraServiceDRKeyASHostProcedure is the fully-qualified name of the DRKeyIntraService's + // DRKeyASHost RPC. + DRKeyIntraServiceDRKeyASHostProcedure = "/proto.control_plane.v1.DRKeyIntraService/DRKeyASHost" + // DRKeyIntraServiceDRKeyHostASProcedure is the fully-qualified name of the DRKeyIntraService's + // DRKeyHostAS RPC. + DRKeyIntraServiceDRKeyHostASProcedure = "/proto.control_plane.v1.DRKeyIntraService/DRKeyHostAS" + // DRKeyIntraServiceDRKeyHostHostProcedure is the fully-qualified name of the DRKeyIntraService's + // DRKeyHostHost RPC. + DRKeyIntraServiceDRKeyHostHostProcedure = "/proto.control_plane.v1.DRKeyIntraService/DRKeyHostHost" + // DRKeyIntraServiceDRKeySecretValueProcedure is the fully-qualified name of the DRKeyIntraService's + // DRKeySecretValue RPC. + DRKeyIntraServiceDRKeySecretValueProcedure = "/proto.control_plane.v1.DRKeyIntraService/DRKeySecretValue" +) + +// DRKeyInterServiceClient is a client for the proto.control_plane.v1.DRKeyInterService service. +type DRKeyInterServiceClient interface { + // Return the Level1Key that matches the request + DRKeyLevel1(context.Context, *connect.Request[control_plane.DRKeyLevel1Request]) (*connect.Response[control_plane.DRKeyLevel1Response], error) +} + +// NewDRKeyInterServiceClient constructs a client for the proto.control_plane.v1.DRKeyInterService +// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for +// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply +// the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewDRKeyInterServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) DRKeyInterServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &dRKeyInterServiceClient{ + dRKeyLevel1: connect.NewClient[control_plane.DRKeyLevel1Request, control_plane.DRKeyLevel1Response]( + httpClient, + baseURL+DRKeyInterServiceDRKeyLevel1Procedure, + opts..., + ), + } +} + +// dRKeyInterServiceClient implements DRKeyInterServiceClient. +type dRKeyInterServiceClient struct { + dRKeyLevel1 *connect.Client[control_plane.DRKeyLevel1Request, control_plane.DRKeyLevel1Response] +} + +// DRKeyLevel1 calls proto.control_plane.v1.DRKeyInterService.DRKeyLevel1. +func (c *dRKeyInterServiceClient) DRKeyLevel1(ctx context.Context, req *connect.Request[control_plane.DRKeyLevel1Request]) (*connect.Response[control_plane.DRKeyLevel1Response], error) { + return c.dRKeyLevel1.CallUnary(ctx, req) +} + +// DRKeyInterServiceHandler is an implementation of the proto.control_plane.v1.DRKeyInterService +// service. +type DRKeyInterServiceHandler interface { + // Return the Level1Key that matches the request + DRKeyLevel1(context.Context, *connect.Request[control_plane.DRKeyLevel1Request]) (*connect.Response[control_plane.DRKeyLevel1Response], error) +} + +// NewDRKeyInterServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewDRKeyInterServiceHandler(svc DRKeyInterServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + dRKeyInterServiceDRKeyLevel1Handler := connect.NewUnaryHandler( + DRKeyInterServiceDRKeyLevel1Procedure, + svc.DRKeyLevel1, + opts..., + ) + return "/proto.control_plane.v1.DRKeyInterService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case DRKeyInterServiceDRKeyLevel1Procedure: + dRKeyInterServiceDRKeyLevel1Handler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedDRKeyInterServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedDRKeyInterServiceHandler struct{} + +func (UnimplementedDRKeyInterServiceHandler) DRKeyLevel1(context.Context, *connect.Request[control_plane.DRKeyLevel1Request]) (*connect.Response[control_plane.DRKeyLevel1Response], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyInterService.DRKeyLevel1 is not implemented")) +} + +// DRKeyIntraServiceClient is a client for the proto.control_plane.v1.DRKeyIntraService service. +type DRKeyIntraServiceClient interface { + // Return the ASAS that matches the request + DRKeyIntraLevel1(context.Context, *connect.Request[control_plane.DRKeyIntraLevel1Request]) (*connect.Response[control_plane.DRKeyIntraLevel1Response], error) + // Return the AS-Host that matches the request + DRKeyASHost(context.Context, *connect.Request[control_plane.DRKeyASHostRequest]) (*connect.Response[control_plane.DRKeyASHostResponse], error) + // Return the Host-AS that matches the request + DRKeyHostAS(context.Context, *connect.Request[control_plane.DRKeyHostASRequest]) (*connect.Response[control_plane.DRKeyHostASResponse], error) + // Return the Host-Host that matches the request + DRKeyHostHost(context.Context, *connect.Request[control_plane.DRKeyHostHostRequest]) (*connect.Response[control_plane.DRKeyHostHostResponse], error) + // Return the SecretValue that matches the request + DRKeySecretValue(context.Context, *connect.Request[control_plane.DRKeySecretValueRequest]) (*connect.Response[control_plane.DRKeySecretValueResponse], error) +} + +// NewDRKeyIntraServiceClient constructs a client for the proto.control_plane.v1.DRKeyIntraService +// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for +// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply +// the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewDRKeyIntraServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) DRKeyIntraServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &dRKeyIntraServiceClient{ + dRKeyIntraLevel1: connect.NewClient[control_plane.DRKeyIntraLevel1Request, control_plane.DRKeyIntraLevel1Response]( + httpClient, + baseURL+DRKeyIntraServiceDRKeyIntraLevel1Procedure, + opts..., + ), + dRKeyASHost: connect.NewClient[control_plane.DRKeyASHostRequest, control_plane.DRKeyASHostResponse]( + httpClient, + baseURL+DRKeyIntraServiceDRKeyASHostProcedure, + opts..., + ), + dRKeyHostAS: connect.NewClient[control_plane.DRKeyHostASRequest, control_plane.DRKeyHostASResponse]( + httpClient, + baseURL+DRKeyIntraServiceDRKeyHostASProcedure, + opts..., + ), + dRKeyHostHost: connect.NewClient[control_plane.DRKeyHostHostRequest, control_plane.DRKeyHostHostResponse]( + httpClient, + baseURL+DRKeyIntraServiceDRKeyHostHostProcedure, + opts..., + ), + dRKeySecretValue: connect.NewClient[control_plane.DRKeySecretValueRequest, control_plane.DRKeySecretValueResponse]( + httpClient, + baseURL+DRKeyIntraServiceDRKeySecretValueProcedure, + opts..., + ), + } +} + +// dRKeyIntraServiceClient implements DRKeyIntraServiceClient. +type dRKeyIntraServiceClient struct { + dRKeyIntraLevel1 *connect.Client[control_plane.DRKeyIntraLevel1Request, control_plane.DRKeyIntraLevel1Response] + dRKeyASHost *connect.Client[control_plane.DRKeyASHostRequest, control_plane.DRKeyASHostResponse] + dRKeyHostAS *connect.Client[control_plane.DRKeyHostASRequest, control_plane.DRKeyHostASResponse] + dRKeyHostHost *connect.Client[control_plane.DRKeyHostHostRequest, control_plane.DRKeyHostHostResponse] + dRKeySecretValue *connect.Client[control_plane.DRKeySecretValueRequest, control_plane.DRKeySecretValueResponse] +} + +// DRKeyIntraLevel1 calls proto.control_plane.v1.DRKeyIntraService.DRKeyIntraLevel1. +func (c *dRKeyIntraServiceClient) DRKeyIntraLevel1(ctx context.Context, req *connect.Request[control_plane.DRKeyIntraLevel1Request]) (*connect.Response[control_plane.DRKeyIntraLevel1Response], error) { + return c.dRKeyIntraLevel1.CallUnary(ctx, req) +} + +// DRKeyASHost calls proto.control_plane.v1.DRKeyIntraService.DRKeyASHost. +func (c *dRKeyIntraServiceClient) DRKeyASHost(ctx context.Context, req *connect.Request[control_plane.DRKeyASHostRequest]) (*connect.Response[control_plane.DRKeyASHostResponse], error) { + return c.dRKeyASHost.CallUnary(ctx, req) +} + +// DRKeyHostAS calls proto.control_plane.v1.DRKeyIntraService.DRKeyHostAS. +func (c *dRKeyIntraServiceClient) DRKeyHostAS(ctx context.Context, req *connect.Request[control_plane.DRKeyHostASRequest]) (*connect.Response[control_plane.DRKeyHostASResponse], error) { + return c.dRKeyHostAS.CallUnary(ctx, req) +} + +// DRKeyHostHost calls proto.control_plane.v1.DRKeyIntraService.DRKeyHostHost. +func (c *dRKeyIntraServiceClient) DRKeyHostHost(ctx context.Context, req *connect.Request[control_plane.DRKeyHostHostRequest]) (*connect.Response[control_plane.DRKeyHostHostResponse], error) { + return c.dRKeyHostHost.CallUnary(ctx, req) +} + +// DRKeySecretValue calls proto.control_plane.v1.DRKeyIntraService.DRKeySecretValue. +func (c *dRKeyIntraServiceClient) DRKeySecretValue(ctx context.Context, req *connect.Request[control_plane.DRKeySecretValueRequest]) (*connect.Response[control_plane.DRKeySecretValueResponse], error) { + return c.dRKeySecretValue.CallUnary(ctx, req) +} + +// DRKeyIntraServiceHandler is an implementation of the proto.control_plane.v1.DRKeyIntraService +// service. +type DRKeyIntraServiceHandler interface { + // Return the ASAS that matches the request + DRKeyIntraLevel1(context.Context, *connect.Request[control_plane.DRKeyIntraLevel1Request]) (*connect.Response[control_plane.DRKeyIntraLevel1Response], error) + // Return the AS-Host that matches the request + DRKeyASHost(context.Context, *connect.Request[control_plane.DRKeyASHostRequest]) (*connect.Response[control_plane.DRKeyASHostResponse], error) + // Return the Host-AS that matches the request + DRKeyHostAS(context.Context, *connect.Request[control_plane.DRKeyHostASRequest]) (*connect.Response[control_plane.DRKeyHostASResponse], error) + // Return the Host-Host that matches the request + DRKeyHostHost(context.Context, *connect.Request[control_plane.DRKeyHostHostRequest]) (*connect.Response[control_plane.DRKeyHostHostResponse], error) + // Return the SecretValue that matches the request + DRKeySecretValue(context.Context, *connect.Request[control_plane.DRKeySecretValueRequest]) (*connect.Response[control_plane.DRKeySecretValueResponse], error) +} + +// NewDRKeyIntraServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewDRKeyIntraServiceHandler(svc DRKeyIntraServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + dRKeyIntraServiceDRKeyIntraLevel1Handler := connect.NewUnaryHandler( + DRKeyIntraServiceDRKeyIntraLevel1Procedure, + svc.DRKeyIntraLevel1, + opts..., + ) + dRKeyIntraServiceDRKeyASHostHandler := connect.NewUnaryHandler( + DRKeyIntraServiceDRKeyASHostProcedure, + svc.DRKeyASHost, + opts..., + ) + dRKeyIntraServiceDRKeyHostASHandler := connect.NewUnaryHandler( + DRKeyIntraServiceDRKeyHostASProcedure, + svc.DRKeyHostAS, + opts..., + ) + dRKeyIntraServiceDRKeyHostHostHandler := connect.NewUnaryHandler( + DRKeyIntraServiceDRKeyHostHostProcedure, + svc.DRKeyHostHost, + opts..., + ) + dRKeyIntraServiceDRKeySecretValueHandler := connect.NewUnaryHandler( + DRKeyIntraServiceDRKeySecretValueProcedure, + svc.DRKeySecretValue, + opts..., + ) + return "/proto.control_plane.v1.DRKeyIntraService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case DRKeyIntraServiceDRKeyIntraLevel1Procedure: + dRKeyIntraServiceDRKeyIntraLevel1Handler.ServeHTTP(w, r) + case DRKeyIntraServiceDRKeyASHostProcedure: + dRKeyIntraServiceDRKeyASHostHandler.ServeHTTP(w, r) + case DRKeyIntraServiceDRKeyHostASProcedure: + dRKeyIntraServiceDRKeyHostASHandler.ServeHTTP(w, r) + case DRKeyIntraServiceDRKeyHostHostProcedure: + dRKeyIntraServiceDRKeyHostHostHandler.ServeHTTP(w, r) + case DRKeyIntraServiceDRKeySecretValueProcedure: + dRKeyIntraServiceDRKeySecretValueHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedDRKeyIntraServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedDRKeyIntraServiceHandler struct{} + +func (UnimplementedDRKeyIntraServiceHandler) DRKeyIntraLevel1(context.Context, *connect.Request[control_plane.DRKeyIntraLevel1Request]) (*connect.Response[control_plane.DRKeyIntraLevel1Response], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyIntraService.DRKeyIntraLevel1 is not implemented")) +} + +func (UnimplementedDRKeyIntraServiceHandler) DRKeyASHost(context.Context, *connect.Request[control_plane.DRKeyASHostRequest]) (*connect.Response[control_plane.DRKeyASHostResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyIntraService.DRKeyASHost is not implemented")) +} + +func (UnimplementedDRKeyIntraServiceHandler) DRKeyHostAS(context.Context, *connect.Request[control_plane.DRKeyHostASRequest]) (*connect.Response[control_plane.DRKeyHostASResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyIntraService.DRKeyHostAS is not implemented")) +} + +func (UnimplementedDRKeyIntraServiceHandler) DRKeyHostHost(context.Context, *connect.Request[control_plane.DRKeyHostHostRequest]) (*connect.Response[control_plane.DRKeyHostHostResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyIntraService.DRKeyHostHost is not implemented")) +} + +func (UnimplementedDRKeyIntraServiceHandler) DRKeySecretValue(context.Context, *connect.Request[control_plane.DRKeySecretValueRequest]) (*connect.Response[control_plane.DRKeySecretValueResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.DRKeyIntraService.DRKeySecretValue is not implemented")) +} diff --git a/bufgen/proto/control_plane/v1/control_planeconnect/renewal.connect.go b/bufgen/proto/control_plane/v1/control_planeconnect/renewal.connect.go new file mode 100644 index 0000000000..2ed55edc26 --- /dev/null +++ b/bufgen/proto/control_plane/v1/control_planeconnect/renewal.connect.go @@ -0,0 +1,122 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/control_plane/v1/renewal.proto + +package control_planeconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + control_plane "github.com/scionproto/scion/pkg/proto/control_plane" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // ChainRenewalServiceName is the fully-qualified name of the ChainRenewalService service. + ChainRenewalServiceName = "proto.control_plane.v1.ChainRenewalService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // ChainRenewalServiceChainRenewalProcedure is the fully-qualified name of the ChainRenewalService's + // ChainRenewal RPC. + ChainRenewalServiceChainRenewalProcedure = "/proto.control_plane.v1.ChainRenewalService/ChainRenewal" +) + +// ChainRenewalServiceClient is a client for the proto.control_plane.v1.ChainRenewalService service. +type ChainRenewalServiceClient interface { + // RenewChain creates a chain from the chain request. + ChainRenewal(context.Context, *connect.Request[control_plane.ChainRenewalRequest]) (*connect.Response[control_plane.ChainRenewalResponse], error) +} + +// NewChainRenewalServiceClient constructs a client for the +// proto.control_plane.v1.ChainRenewalService service. By default, it uses the Connect protocol with +// the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To use +// the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewChainRenewalServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) ChainRenewalServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &chainRenewalServiceClient{ + chainRenewal: connect.NewClient[control_plane.ChainRenewalRequest, control_plane.ChainRenewalResponse]( + httpClient, + baseURL+ChainRenewalServiceChainRenewalProcedure, + opts..., + ), + } +} + +// chainRenewalServiceClient implements ChainRenewalServiceClient. +type chainRenewalServiceClient struct { + chainRenewal *connect.Client[control_plane.ChainRenewalRequest, control_plane.ChainRenewalResponse] +} + +// ChainRenewal calls proto.control_plane.v1.ChainRenewalService.ChainRenewal. +func (c *chainRenewalServiceClient) ChainRenewal(ctx context.Context, req *connect.Request[control_plane.ChainRenewalRequest]) (*connect.Response[control_plane.ChainRenewalResponse], error) { + return c.chainRenewal.CallUnary(ctx, req) +} + +// ChainRenewalServiceHandler is an implementation of the proto.control_plane.v1.ChainRenewalService +// service. +type ChainRenewalServiceHandler interface { + // RenewChain creates a chain from the chain request. + ChainRenewal(context.Context, *connect.Request[control_plane.ChainRenewalRequest]) (*connect.Response[control_plane.ChainRenewalResponse], error) +} + +// NewChainRenewalServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewChainRenewalServiceHandler(svc ChainRenewalServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + chainRenewalServiceChainRenewalHandler := connect.NewUnaryHandler( + ChainRenewalServiceChainRenewalProcedure, + svc.ChainRenewal, + opts..., + ) + return "/proto.control_plane.v1.ChainRenewalService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case ChainRenewalServiceChainRenewalProcedure: + chainRenewalServiceChainRenewalHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedChainRenewalServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedChainRenewalServiceHandler struct{} + +func (UnimplementedChainRenewalServiceHandler) ChainRenewal(context.Context, *connect.Request[control_plane.ChainRenewalRequest]) (*connect.Response[control_plane.ChainRenewalResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.ChainRenewalService.ChainRenewal is not implemented")) +} diff --git a/bufgen/proto/control_plane/v1/control_planeconnect/seg.connect.go b/bufgen/proto/control_plane/v1/control_planeconnect/seg.connect.go new file mode 100644 index 0000000000..d627c0398e --- /dev/null +++ b/bufgen/proto/control_plane/v1/control_planeconnect/seg.connect.go @@ -0,0 +1,278 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/control_plane/v1/seg.proto + +package control_planeconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + control_plane "github.com/scionproto/scion/pkg/proto/control_plane" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // SegmentLookupServiceName is the fully-qualified name of the SegmentLookupService service. + SegmentLookupServiceName = "proto.control_plane.v1.SegmentLookupService" + // SegmentRegistrationServiceName is the fully-qualified name of the SegmentRegistrationService + // service. + SegmentRegistrationServiceName = "proto.control_plane.v1.SegmentRegistrationService" + // SegmentCreationServiceName is the fully-qualified name of the SegmentCreationService service. + SegmentCreationServiceName = "proto.control_plane.v1.SegmentCreationService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // SegmentLookupServiceSegmentsProcedure is the fully-qualified name of the SegmentLookupService's + // Segments RPC. + SegmentLookupServiceSegmentsProcedure = "/proto.control_plane.v1.SegmentLookupService/Segments" + // SegmentRegistrationServiceSegmentsRegistrationProcedure is the fully-qualified name of the + // SegmentRegistrationService's SegmentsRegistration RPC. + SegmentRegistrationServiceSegmentsRegistrationProcedure = "/proto.control_plane.v1.SegmentRegistrationService/SegmentsRegistration" + // SegmentCreationServiceBeaconProcedure is the fully-qualified name of the SegmentCreationService's + // Beacon RPC. + SegmentCreationServiceBeaconProcedure = "/proto.control_plane.v1.SegmentCreationService/Beacon" +) + +// SegmentLookupServiceClient is a client for the proto.control_plane.v1.SegmentLookupService +// service. +type SegmentLookupServiceClient interface { + // Segments returns all segments that match the request. + Segments(context.Context, *connect.Request[control_plane.SegmentsRequest]) (*connect.Response[control_plane.SegmentsResponse], error) +} + +// NewSegmentLookupServiceClient constructs a client for the +// proto.control_plane.v1.SegmentLookupService service. By default, it uses the Connect protocol +// with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To +// use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() +// options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewSegmentLookupServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) SegmentLookupServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &segmentLookupServiceClient{ + segments: connect.NewClient[control_plane.SegmentsRequest, control_plane.SegmentsResponse]( + httpClient, + baseURL+SegmentLookupServiceSegmentsProcedure, + opts..., + ), + } +} + +// segmentLookupServiceClient implements SegmentLookupServiceClient. +type segmentLookupServiceClient struct { + segments *connect.Client[control_plane.SegmentsRequest, control_plane.SegmentsResponse] +} + +// Segments calls proto.control_plane.v1.SegmentLookupService.Segments. +func (c *segmentLookupServiceClient) Segments(ctx context.Context, req *connect.Request[control_plane.SegmentsRequest]) (*connect.Response[control_plane.SegmentsResponse], error) { + return c.segments.CallUnary(ctx, req) +} + +// SegmentLookupServiceHandler is an implementation of the +// proto.control_plane.v1.SegmentLookupService service. +type SegmentLookupServiceHandler interface { + // Segments returns all segments that match the request. + Segments(context.Context, *connect.Request[control_plane.SegmentsRequest]) (*connect.Response[control_plane.SegmentsResponse], error) +} + +// NewSegmentLookupServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewSegmentLookupServiceHandler(svc SegmentLookupServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + segmentLookupServiceSegmentsHandler := connect.NewUnaryHandler( + SegmentLookupServiceSegmentsProcedure, + svc.Segments, + opts..., + ) + return "/proto.control_plane.v1.SegmentLookupService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case SegmentLookupServiceSegmentsProcedure: + segmentLookupServiceSegmentsHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedSegmentLookupServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedSegmentLookupServiceHandler struct{} + +func (UnimplementedSegmentLookupServiceHandler) Segments(context.Context, *connect.Request[control_plane.SegmentsRequest]) (*connect.Response[control_plane.SegmentsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.SegmentLookupService.Segments is not implemented")) +} + +// SegmentRegistrationServiceClient is a client for the +// proto.control_plane.v1.SegmentRegistrationService service. +type SegmentRegistrationServiceClient interface { + // SegmentsRegistration registers segments at the remote. + SegmentsRegistration(context.Context, *connect.Request[control_plane.SegmentsRegistrationRequest]) (*connect.Response[control_plane.SegmentsRegistrationResponse], error) +} + +// NewSegmentRegistrationServiceClient constructs a client for the +// proto.control_plane.v1.SegmentRegistrationService service. By default, it uses the Connect +// protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed +// requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or +// connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewSegmentRegistrationServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) SegmentRegistrationServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &segmentRegistrationServiceClient{ + segmentsRegistration: connect.NewClient[control_plane.SegmentsRegistrationRequest, control_plane.SegmentsRegistrationResponse]( + httpClient, + baseURL+SegmentRegistrationServiceSegmentsRegistrationProcedure, + opts..., + ), + } +} + +// segmentRegistrationServiceClient implements SegmentRegistrationServiceClient. +type segmentRegistrationServiceClient struct { + segmentsRegistration *connect.Client[control_plane.SegmentsRegistrationRequest, control_plane.SegmentsRegistrationResponse] +} + +// SegmentsRegistration calls +// proto.control_plane.v1.SegmentRegistrationService.SegmentsRegistration. +func (c *segmentRegistrationServiceClient) SegmentsRegistration(ctx context.Context, req *connect.Request[control_plane.SegmentsRegistrationRequest]) (*connect.Response[control_plane.SegmentsRegistrationResponse], error) { + return c.segmentsRegistration.CallUnary(ctx, req) +} + +// SegmentRegistrationServiceHandler is an implementation of the +// proto.control_plane.v1.SegmentRegistrationService service. +type SegmentRegistrationServiceHandler interface { + // SegmentsRegistration registers segments at the remote. + SegmentsRegistration(context.Context, *connect.Request[control_plane.SegmentsRegistrationRequest]) (*connect.Response[control_plane.SegmentsRegistrationResponse], error) +} + +// NewSegmentRegistrationServiceHandler builds an HTTP handler from the service implementation. It +// returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewSegmentRegistrationServiceHandler(svc SegmentRegistrationServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + segmentRegistrationServiceSegmentsRegistrationHandler := connect.NewUnaryHandler( + SegmentRegistrationServiceSegmentsRegistrationProcedure, + svc.SegmentsRegistration, + opts..., + ) + return "/proto.control_plane.v1.SegmentRegistrationService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case SegmentRegistrationServiceSegmentsRegistrationProcedure: + segmentRegistrationServiceSegmentsRegistrationHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedSegmentRegistrationServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedSegmentRegistrationServiceHandler struct{} + +func (UnimplementedSegmentRegistrationServiceHandler) SegmentsRegistration(context.Context, *connect.Request[control_plane.SegmentsRegistrationRequest]) (*connect.Response[control_plane.SegmentsRegistrationResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.SegmentRegistrationService.SegmentsRegistration is not implemented")) +} + +// SegmentCreationServiceClient is a client for the proto.control_plane.v1.SegmentCreationService +// service. +type SegmentCreationServiceClient interface { + // Beacon sends a beacon to the remote. + Beacon(context.Context, *connect.Request[control_plane.BeaconRequest]) (*connect.Response[control_plane.BeaconResponse], error) +} + +// NewSegmentCreationServiceClient constructs a client for the +// proto.control_plane.v1.SegmentCreationService service. By default, it uses the Connect protocol +// with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To +// use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb() +// options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewSegmentCreationServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) SegmentCreationServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &segmentCreationServiceClient{ + beacon: connect.NewClient[control_plane.BeaconRequest, control_plane.BeaconResponse]( + httpClient, + baseURL+SegmentCreationServiceBeaconProcedure, + opts..., + ), + } +} + +// segmentCreationServiceClient implements SegmentCreationServiceClient. +type segmentCreationServiceClient struct { + beacon *connect.Client[control_plane.BeaconRequest, control_plane.BeaconResponse] +} + +// Beacon calls proto.control_plane.v1.SegmentCreationService.Beacon. +func (c *segmentCreationServiceClient) Beacon(ctx context.Context, req *connect.Request[control_plane.BeaconRequest]) (*connect.Response[control_plane.BeaconResponse], error) { + return c.beacon.CallUnary(ctx, req) +} + +// SegmentCreationServiceHandler is an implementation of the +// proto.control_plane.v1.SegmentCreationService service. +type SegmentCreationServiceHandler interface { + // Beacon sends a beacon to the remote. + Beacon(context.Context, *connect.Request[control_plane.BeaconRequest]) (*connect.Response[control_plane.BeaconResponse], error) +} + +// NewSegmentCreationServiceHandler builds an HTTP handler from the service implementation. It +// returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewSegmentCreationServiceHandler(svc SegmentCreationServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + segmentCreationServiceBeaconHandler := connect.NewUnaryHandler( + SegmentCreationServiceBeaconProcedure, + svc.Beacon, + opts..., + ) + return "/proto.control_plane.v1.SegmentCreationService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case SegmentCreationServiceBeaconProcedure: + segmentCreationServiceBeaconHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedSegmentCreationServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedSegmentCreationServiceHandler struct{} + +func (UnimplementedSegmentCreationServiceHandler) Beacon(context.Context, *connect.Request[control_plane.BeaconRequest]) (*connect.Response[control_plane.BeaconResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.control_plane.v1.SegmentCreationService.Beacon is not implemented")) +} diff --git a/bufgen/proto/control_plane/v1/cppki.pb.go b/bufgen/proto/control_plane/v1/cppki.pb.go new file mode 100644 index 0000000000..fbbf584510 --- /dev/null +++ b/bufgen/proto/control_plane/v1/cppki.pb.go @@ -0,0 +1,595 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/cppki.proto + +package control_plane + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 ChainsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of Subject in the AS certificate. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // SubjectKeyID in the AS certificate. + SubjectKeyId []byte `protobuf:"bytes,2,opt,name=subject_key_id,json=subjectKeyId,proto3" json:"subject_key_id,omitempty"` + // Point in time that must be covered by the AS certificate's validity + // period. In seconds since UNIX epoch. + Date *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` +} + +func (x *ChainsRequest) Reset() { + *x = ChainsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainsRequest) ProtoMessage() {} + +func (x *ChainsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 ChainsRequest.ProtoReflect.Descriptor instead. +func (*ChainsRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{0} +} + +func (x *ChainsRequest) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *ChainsRequest) GetSubjectKeyId() []byte { + if x != nil { + return x.SubjectKeyId + } + return nil +} + +func (x *ChainsRequest) GetDate() *timestamppb.Timestamp { + if x != nil { + return x.Date + } + return nil +} + +type ChainsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of chains that match the request. + Chains []*Chain `protobuf:"bytes,1,rep,name=chains,proto3" json:"chains,omitempty"` +} + +func (x *ChainsResponse) Reset() { + *x = ChainsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainsResponse) ProtoMessage() {} + +func (x *ChainsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 ChainsResponse.ProtoReflect.Descriptor instead. +func (*ChainsResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{1} +} + +func (x *ChainsResponse) GetChains() []*Chain { + if x != nil { + return x.Chains + } + return nil +} + +type Chain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // AS certificate in the chain. + AsCert []byte `protobuf:"bytes,1,opt,name=as_cert,json=asCert,proto3" json:"as_cert,omitempty"` + // CA certificate in the chain. + CaCert []byte `protobuf:"bytes,2,opt,name=ca_cert,json=caCert,proto3" json:"ca_cert,omitempty"` +} + +func (x *Chain) Reset() { + *x = Chain{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Chain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Chain) ProtoMessage() {} + +func (x *Chain) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 Chain.ProtoReflect.Descriptor instead. +func (*Chain) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{2} +} + +func (x *Chain) GetAsCert() []byte { + if x != nil { + return x.AsCert + } + return nil +} + +func (x *Chain) GetCaCert() []byte { + if x != nil { + return x.CaCert + } + return nil +} + +type TRCRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD of the TRC. + Isd uint32 `protobuf:"varint,1,opt,name=isd,proto3" json:"isd,omitempty"` + // BaseNumber of the TRC. + Base uint64 `protobuf:"varint,2,opt,name=base,proto3" json:"base,omitempty"` + // SerialNumber of the TRC. + Serial uint64 `protobuf:"varint,3,opt,name=serial,proto3" json:"serial,omitempty"` +} + +func (x *TRCRequest) Reset() { + *x = TRCRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TRCRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TRCRequest) ProtoMessage() {} + +func (x *TRCRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 TRCRequest.ProtoReflect.Descriptor instead. +func (*TRCRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{3} +} + +func (x *TRCRequest) GetIsd() uint32 { + if x != nil { + return x.Isd + } + return 0 +} + +func (x *TRCRequest) GetBase() uint64 { + if x != nil { + return x.Base + } + return 0 +} + +func (x *TRCRequest) GetSerial() uint64 { + if x != nil { + return x.Serial + } + return 0 +} + +type TRCResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw TRC. + Trc []byte `protobuf:"bytes,1,opt,name=trc,proto3" json:"trc,omitempty"` +} + +func (x *TRCResponse) Reset() { + *x = TRCResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TRCResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TRCResponse) ProtoMessage() {} + +func (x *TRCResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 TRCResponse.ProtoReflect.Descriptor instead. +func (*TRCResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{4} +} + +func (x *TRCResponse) GetTrc() []byte { + if x != nil { + return x.Trc + } + return nil +} + +// VerificationKeyID is used to identify certificates that authenticate the +// verification key used to verify signatures. +type VerificationKeyID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of the subject. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // SubjectKeyID referenced in the certificate. + SubjectKeyId []byte `protobuf:"bytes,2,opt,name=subject_key_id,json=subjectKeyId,proto3" json:"subject_key_id,omitempty"` + // Base number of the latest TRC available to the signer at the time of + // signature creation. + TrcBase uint64 `protobuf:"varint,3,opt,name=trc_base,json=trcBase,proto3" json:"trc_base,omitempty"` + // Serial number of the latest TRC available to the signer at the time of + // signature creation. + TrcSerial uint64 `protobuf:"varint,4,opt,name=trc_serial,json=trcSerial,proto3" json:"trc_serial,omitempty"` +} + +func (x *VerificationKeyID) Reset() { + *x = VerificationKeyID{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_cppki_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerificationKeyID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerificationKeyID) ProtoMessage() {} + +func (x *VerificationKeyID) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_cppki_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 VerificationKeyID.ProtoReflect.Descriptor instead. +func (*VerificationKeyID) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_cppki_proto_rawDescGZIP(), []int{5} +} + +func (x *VerificationKeyID) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *VerificationKeyID) GetSubjectKeyId() []byte { + if x != nil { + return x.SubjectKeyId + } + return nil +} + +func (x *VerificationKeyID) GetTrcBase() uint64 { + if x != nil { + return x.TrcBase + } + return 0 +} + +func (x *VerificationKeyID) GetTrcSerial() uint64 { + if x != nil { + return x.TrcSerial + } + return 0 +} + +var File_proto_control_plane_v1_cppki_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_cppki_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x70, 0x70, 0x6b, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 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, 0x7c, 0x0a, + 0x0d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, + 0x0a, 0x06, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x69, 0x73, 0x64, 0x41, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x65, 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, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x0e, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, + 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x73, 0x22, 0x39, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x17, 0x0a, + 0x07, 0x61, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x61, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x22, + 0x4a, 0x0a, 0x0a, 0x54, 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x69, 0x73, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x69, 0x73, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x22, 0x1f, 0x0a, 0x0b, 0x54, + 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x72, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x74, 0x72, 0x63, 0x22, 0x8a, 0x01, 0x0a, + 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, + 0x49, 0x44, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x69, 0x73, 0x64, 0x41, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x63, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x72, 0x63, 0x42, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, + 0x63, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x74, 0x72, 0x63, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x32, 0xc3, 0x01, 0x0a, 0x14, 0x54, 0x72, + 0x75, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, + 0x03, 0x54, 0x52, 0x43, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x52, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, + 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_v1_cppki_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_cppki_proto_rawDescData = file_proto_control_plane_v1_cppki_proto_rawDesc +) + +func file_proto_control_plane_v1_cppki_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_cppki_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_cppki_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_cppki_proto_rawDescData) + }) + return file_proto_control_plane_v1_cppki_proto_rawDescData +} + +var file_proto_control_plane_v1_cppki_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_proto_control_plane_v1_cppki_proto_goTypes = []interface{}{ + (*ChainsRequest)(nil), // 0: proto.control_plane.v1.ChainsRequest + (*ChainsResponse)(nil), // 1: proto.control_plane.v1.ChainsResponse + (*Chain)(nil), // 2: proto.control_plane.v1.Chain + (*TRCRequest)(nil), // 3: proto.control_plane.v1.TRCRequest + (*TRCResponse)(nil), // 4: proto.control_plane.v1.TRCResponse + (*VerificationKeyID)(nil), // 5: proto.control_plane.v1.VerificationKeyID + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp +} +var file_proto_control_plane_v1_cppki_proto_depIdxs = []int32{ + 6, // 0: proto.control_plane.v1.ChainsRequest.date:type_name -> google.protobuf.Timestamp + 2, // 1: proto.control_plane.v1.ChainsResponse.chains:type_name -> proto.control_plane.v1.Chain + 0, // 2: proto.control_plane.v1.TrustMaterialService.Chains:input_type -> proto.control_plane.v1.ChainsRequest + 3, // 3: proto.control_plane.v1.TrustMaterialService.TRC:input_type -> proto.control_plane.v1.TRCRequest + 1, // 4: proto.control_plane.v1.TrustMaterialService.Chains:output_type -> proto.control_plane.v1.ChainsResponse + 4, // 5: proto.control_plane.v1.TrustMaterialService.TRC:output_type -> proto.control_plane.v1.TRCResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_cppki_proto_init() } +func file_proto_control_plane_v1_cppki_proto_init() { + if File_proto_control_plane_v1_cppki_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_cppki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_cppki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_cppki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Chain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_cppki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TRCRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_cppki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TRCResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_cppki_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerificationKeyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_cppki_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_control_plane_v1_cppki_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_cppki_proto_depIdxs, + MessageInfos: file_proto_control_plane_v1_cppki_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_cppki_proto = out.File + file_proto_control_plane_v1_cppki_proto_rawDesc = nil + file_proto_control_plane_v1_cppki_proto_goTypes = nil + file_proto_control_plane_v1_cppki_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/drkey.pb.go b/bufgen/proto/control_plane/v1/drkey.pb.go new file mode 100644 index 0000000000..b16146cfa1 --- /dev/null +++ b/bufgen/proto/control_plane/v1/drkey.pb.go @@ -0,0 +1,1324 @@ +// Copyright 2022 ETH Zurich +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/drkey.proto + +package control_plane + +import ( + drkey "github.com/scionproto/scion/pkg/proto/drkey" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 DRKeySecretValueRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time when the requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` +} + +func (x *DRKeySecretValueRequest) Reset() { + *x = DRKeySecretValueRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeySecretValueRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeySecretValueRequest) ProtoMessage() {} + +func (x *DRKeySecretValueRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeySecretValueRequest.ProtoReflect.Descriptor instead. +func (*DRKeySecretValueRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{0} +} + +func (x *DRKeySecretValueRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeySecretValueRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +type DRKeySecretValueResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of the validity period. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of the validity period. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // SecretValue key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeySecretValueResponse) Reset() { + *x = DRKeySecretValueResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeySecretValueResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeySecretValueResponse) ProtoMessage() {} + +func (x *DRKeySecretValueResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeySecretValueResponse.ProtoReflect.Descriptor instead. +func (*DRKeySecretValueResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{1} +} + +func (x *DRKeySecretValueResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeySecretValueResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeySecretValueResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +// DRKeyLevel1Request leaves out the 'dstIA' field which can be extracted from +// the transport itself (ideally from authenticated information). +type DRKeyLevel1Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` +} + +func (x *DRKeyLevel1Request) Reset() { + *x = DRKeyLevel1Request{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyLevel1Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyLevel1Request) ProtoMessage() {} + +func (x *DRKeyLevel1Request) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyLevel1Request.ProtoReflect.Descriptor instead. +func (*DRKeyLevel1Request) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{2} +} + +func (x *DRKeyLevel1Request) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyLevel1Request) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +// DRKeyLevel1Response leaves out the 'dstIA' and 'srcIA' fields which can be +// extracted from the transport itself (ideally from authenticated information). +type DRKeyLevel1Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of the validity period + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of the validity period + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level1 key + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyLevel1Response) Reset() { + *x = DRKeyLevel1Response{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyLevel1Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyLevel1Response) ProtoMessage() {} + +func (x *DRKeyLevel1Response) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyLevel1Response.ProtoReflect.Descriptor instead. +func (*DRKeyLevel1Response) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{3} +} + +func (x *DRKeyLevel1Response) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyLevel1Response) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyLevel1Response) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyIntraLevel1Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` +} + +func (x *DRKeyIntraLevel1Request) Reset() { + *x = DRKeyIntraLevel1Request{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyIntraLevel1Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyIntraLevel1Request) ProtoMessage() {} + +func (x *DRKeyIntraLevel1Request) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyIntraLevel1Request.ProtoReflect.Descriptor instead. +func (*DRKeyIntraLevel1Request) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{4} +} + +func (x *DRKeyIntraLevel1Request) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyIntraLevel1Request) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyIntraLevel1Request) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyIntraLevel1Request) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +type DRKeyIntraLevel1Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level1 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyIntraLevel1Response) Reset() { + *x = DRKeyIntraLevel1Response{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyIntraLevel1Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyIntraLevel1Response) ProtoMessage() {} + +func (x *DRKeyIntraLevel1Response) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyIntraLevel1Response.ProtoReflect.Descriptor instead. +func (*DRKeyIntraLevel1Response) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{5} +} + +func (x *DRKeyIntraLevel1Response) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyIntraLevel1Response) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyIntraLevel1Response) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyHostASRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Src Host of the request DRKey. + SrcHost string `protobuf:"bytes,5,opt,name=src_host,json=srcHost,proto3" json:"src_host,omitempty"` +} + +func (x *DRKeyHostASRequest) Reset() { + *x = DRKeyHostASRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostASRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostASRequest) ProtoMessage() {} + +func (x *DRKeyHostASRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyHostASRequest.ProtoReflect.Descriptor instead. +func (*DRKeyHostASRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{6} +} + +func (x *DRKeyHostASRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyHostASRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyHostASRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyHostASRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyHostASRequest) GetSrcHost() string { + if x != nil { + return x.SrcHost + } + return "" +} + +type DRKeyHostASResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyHostASResponse) Reset() { + *x = DRKeyHostASResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostASResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostASResponse) ProtoMessage() {} + +func (x *DRKeyHostASResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyHostASResponse.ProtoReflect.Descriptor instead. +func (*DRKeyHostASResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{7} +} + +func (x *DRKeyHostASResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyHostASResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyHostASResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyASHostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Dst Host of the request DRKey. + DstHost string `protobuf:"bytes,5,opt,name=dst_host,json=dstHost,proto3" json:"dst_host,omitempty"` +} + +func (x *DRKeyASHostRequest) Reset() { + *x = DRKeyASHostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyASHostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyASHostRequest) ProtoMessage() {} + +func (x *DRKeyASHostRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyASHostRequest.ProtoReflect.Descriptor instead. +func (*DRKeyASHostRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{8} +} + +func (x *DRKeyASHostRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyASHostRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyASHostRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyASHostRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyASHostRequest) GetDstHost() string { + if x != nil { + return x.DstHost + } + return "" +} + +type DRKeyASHostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyASHostResponse) Reset() { + *x = DRKeyASHostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyASHostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyASHostResponse) ProtoMessage() {} + +func (x *DRKeyASHostResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyASHostResponse.ProtoReflect.Descriptor instead. +func (*DRKeyASHostResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{9} +} + +func (x *DRKeyASHostResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyASHostResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyASHostResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyHostHostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Src Host of the request DRKey. + SrcHost string `protobuf:"bytes,5,opt,name=src_host,json=srcHost,proto3" json:"src_host,omitempty"` + // Dst Host of the request DRKey. + DstHost string `protobuf:"bytes,6,opt,name=dst_host,json=dstHost,proto3" json:"dst_host,omitempty"` +} + +func (x *DRKeyHostHostRequest) Reset() { + *x = DRKeyHostHostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostHostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostHostRequest) ProtoMessage() {} + +func (x *DRKeyHostHostRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyHostHostRequest.ProtoReflect.Descriptor instead. +func (*DRKeyHostHostRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{10} +} + +func (x *DRKeyHostHostRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyHostHostRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyHostHostRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyHostHostRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyHostHostRequest) GetSrcHost() string { + if x != nil { + return x.SrcHost + } + return "" +} + +func (x *DRKeyHostHostRequest) GetDstHost() string { + if x != nil { + return x.DstHost + } + return "" +} + +type DRKeyHostHostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyHostHostResponse) Reset() { + *x = DRKeyHostHostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_drkey_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostHostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostHostResponse) ProtoMessage() {} + +func (x *DRKeyHostHostResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_drkey_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 DRKeyHostHostResponse.ProtoReflect.Descriptor instead. +func (*DRKeyHostHostResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_drkey_proto_rawDescGZIP(), []int{11} +} + +func (x *DRKeyHostHostResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyHostHostResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyHostHostResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +var File_proto_control_plane_v1_drkey_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_drkey_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1a, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x72, 0x6b, + 0x65, 0x79, 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, 0x8b, 0x01, 0x0a, 0x17, 0x44, 0x52, + 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x18, 0x44, 0x52, 0x4b, 0x65, + 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, + 0x67, 0x69, 0x6e, 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, + 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x86, 0x01, 0x0a, + 0x12, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, 0x0a, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x74, 0x72, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, + 0x61, 0x22, 0xa2, 0x01, 0x0a, 0x18, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, + 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x44, 0x52, 0x4b, 0x65, 0x79, + 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x72, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x72, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x52, 0x4b, + 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, 0x0a, + 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x44, 0x52, 0x4b, + 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x64, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x64, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, + 0x52, 0x4b, 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, + 0x6e, 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, + 0x37, 0x0a, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xec, 0x01, 0x0a, 0x14, 0x44, + 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, + 0x64, 0x73, 0x74, 0x5f, 0x69, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, + 0x74, 0x49, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x64, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x44, 0x52, + 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, + 0x69, 0x6e, 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, + 0x12, 0x37, 0x0a, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x32, 0x7d, 0x0a, 0x11, 0x44, + 0x52, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x68, 0x0a, 0x0b, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x12, + 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xc9, 0x04, 0x0a, 0x11, 0x44, + 0x52, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x77, 0x0a, 0x10, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x31, 0x12, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, + 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x52, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0b, 0x44, 0x52, 0x4b, + 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, + 0x4b, 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0b, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, + 0x41, 0x53, 0x12, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, + 0x79, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, + 0x74, 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, + 0x0d, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, + 0x10, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, + 0x79, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_v1_drkey_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_drkey_proto_rawDescData = file_proto_control_plane_v1_drkey_proto_rawDesc +) + +func file_proto_control_plane_v1_drkey_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_drkey_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_drkey_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_drkey_proto_rawDescData) + }) + return file_proto_control_plane_v1_drkey_proto_rawDescData +} + +var file_proto_control_plane_v1_drkey_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_proto_control_plane_v1_drkey_proto_goTypes = []interface{}{ + (*DRKeySecretValueRequest)(nil), // 0: proto.control_plane.v1.DRKeySecretValueRequest + (*DRKeySecretValueResponse)(nil), // 1: proto.control_plane.v1.DRKeySecretValueResponse + (*DRKeyLevel1Request)(nil), // 2: proto.control_plane.v1.DRKeyLevel1Request + (*DRKeyLevel1Response)(nil), // 3: proto.control_plane.v1.DRKeyLevel1Response + (*DRKeyIntraLevel1Request)(nil), // 4: proto.control_plane.v1.DRKeyIntraLevel1Request + (*DRKeyIntraLevel1Response)(nil), // 5: proto.control_plane.v1.DRKeyIntraLevel1Response + (*DRKeyHostASRequest)(nil), // 6: proto.control_plane.v1.DRKeyHostASRequest + (*DRKeyHostASResponse)(nil), // 7: proto.control_plane.v1.DRKeyHostASResponse + (*DRKeyASHostRequest)(nil), // 8: proto.control_plane.v1.DRKeyASHostRequest + (*DRKeyASHostResponse)(nil), // 9: proto.control_plane.v1.DRKeyASHostResponse + (*DRKeyHostHostRequest)(nil), // 10: proto.control_plane.v1.DRKeyHostHostRequest + (*DRKeyHostHostResponse)(nil), // 11: proto.control_plane.v1.DRKeyHostHostResponse + (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp + (drkey.Protocol)(0), // 13: proto.drkey.v1.Protocol +} +var file_proto_control_plane_v1_drkey_proto_depIdxs = []int32{ + 12, // 0: proto.control_plane.v1.DRKeySecretValueRequest.val_time:type_name -> google.protobuf.Timestamp + 13, // 1: proto.control_plane.v1.DRKeySecretValueRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 2: proto.control_plane.v1.DRKeySecretValueResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 3: proto.control_plane.v1.DRKeySecretValueResponse.epoch_end:type_name -> google.protobuf.Timestamp + 12, // 4: proto.control_plane.v1.DRKeyLevel1Request.val_time:type_name -> google.protobuf.Timestamp + 13, // 5: proto.control_plane.v1.DRKeyLevel1Request.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 6: proto.control_plane.v1.DRKeyLevel1Response.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 7: proto.control_plane.v1.DRKeyLevel1Response.epoch_end:type_name -> google.protobuf.Timestamp + 12, // 8: proto.control_plane.v1.DRKeyIntraLevel1Request.val_time:type_name -> google.protobuf.Timestamp + 13, // 9: proto.control_plane.v1.DRKeyIntraLevel1Request.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 10: proto.control_plane.v1.DRKeyIntraLevel1Response.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 11: proto.control_plane.v1.DRKeyIntraLevel1Response.epoch_end:type_name -> google.protobuf.Timestamp + 12, // 12: proto.control_plane.v1.DRKeyHostASRequest.val_time:type_name -> google.protobuf.Timestamp + 13, // 13: proto.control_plane.v1.DRKeyHostASRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 14: proto.control_plane.v1.DRKeyHostASResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 15: proto.control_plane.v1.DRKeyHostASResponse.epoch_end:type_name -> google.protobuf.Timestamp + 12, // 16: proto.control_plane.v1.DRKeyASHostRequest.val_time:type_name -> google.protobuf.Timestamp + 13, // 17: proto.control_plane.v1.DRKeyASHostRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 18: proto.control_plane.v1.DRKeyASHostResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 19: proto.control_plane.v1.DRKeyASHostResponse.epoch_end:type_name -> google.protobuf.Timestamp + 12, // 20: proto.control_plane.v1.DRKeyHostHostRequest.val_time:type_name -> google.protobuf.Timestamp + 13, // 21: proto.control_plane.v1.DRKeyHostHostRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 12, // 22: proto.control_plane.v1.DRKeyHostHostResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 12, // 23: proto.control_plane.v1.DRKeyHostHostResponse.epoch_end:type_name -> google.protobuf.Timestamp + 2, // 24: proto.control_plane.v1.DRKeyInterService.DRKeyLevel1:input_type -> proto.control_plane.v1.DRKeyLevel1Request + 4, // 25: proto.control_plane.v1.DRKeyIntraService.DRKeyIntraLevel1:input_type -> proto.control_plane.v1.DRKeyIntraLevel1Request + 8, // 26: proto.control_plane.v1.DRKeyIntraService.DRKeyASHost:input_type -> proto.control_plane.v1.DRKeyASHostRequest + 6, // 27: proto.control_plane.v1.DRKeyIntraService.DRKeyHostAS:input_type -> proto.control_plane.v1.DRKeyHostASRequest + 10, // 28: proto.control_plane.v1.DRKeyIntraService.DRKeyHostHost:input_type -> proto.control_plane.v1.DRKeyHostHostRequest + 0, // 29: proto.control_plane.v1.DRKeyIntraService.DRKeySecretValue:input_type -> proto.control_plane.v1.DRKeySecretValueRequest + 3, // 30: proto.control_plane.v1.DRKeyInterService.DRKeyLevel1:output_type -> proto.control_plane.v1.DRKeyLevel1Response + 5, // 31: proto.control_plane.v1.DRKeyIntraService.DRKeyIntraLevel1:output_type -> proto.control_plane.v1.DRKeyIntraLevel1Response + 9, // 32: proto.control_plane.v1.DRKeyIntraService.DRKeyASHost:output_type -> proto.control_plane.v1.DRKeyASHostResponse + 7, // 33: proto.control_plane.v1.DRKeyIntraService.DRKeyHostAS:output_type -> proto.control_plane.v1.DRKeyHostASResponse + 11, // 34: proto.control_plane.v1.DRKeyIntraService.DRKeyHostHost:output_type -> proto.control_plane.v1.DRKeyHostHostResponse + 1, // 35: proto.control_plane.v1.DRKeyIntraService.DRKeySecretValue:output_type -> proto.control_plane.v1.DRKeySecretValueResponse + 30, // [30:36] is the sub-list for method output_type + 24, // [24:30] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_drkey_proto_init() } +func file_proto_control_plane_v1_drkey_proto_init() { + if File_proto_control_plane_v1_drkey_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_drkey_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeySecretValueRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeySecretValueResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyLevel1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyLevel1Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyIntraLevel1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyIntraLevel1Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostASRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostASResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyASHostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyASHostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostHostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_drkey_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostHostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_drkey_proto_rawDesc, + NumEnums: 0, + NumMessages: 12, + NumExtensions: 0, + NumServices: 2, + }, + GoTypes: file_proto_control_plane_v1_drkey_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_drkey_proto_depIdxs, + MessageInfos: file_proto_control_plane_v1_drkey_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_drkey_proto = out.File + file_proto_control_plane_v1_drkey_proto_rawDesc = nil + file_proto_control_plane_v1_drkey_proto_goTypes = nil + file_proto_control_plane_v1_drkey_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/renewal.pb.go b/bufgen/proto/control_plane/v1/renewal.pb.go new file mode 100644 index 0000000000..bab77b4296 --- /dev/null +++ b/bufgen/proto/control_plane/v1/renewal.pb.go @@ -0,0 +1,414 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/renewal.proto + +package control_plane + +import ( + crypto "github.com/scionproto/scion/pkg/proto/crypto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChainRenewalRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The signed certificate chain renewal requests. The body of the + // SignedMessage is the serialized ChainRenewalRequestBody. + SignedRequest *crypto.SignedMessage `protobuf:"bytes,1,opt,name=signed_request,json=signedRequest,proto3" json:"signed_request,omitempty"` + // The certificate signing request. The content is an ASN.1 DER + // encoded CMS SignedData structure that contains an ASN.1 DER + // encoded PKCS #10 request. + CmsSignedRequest []byte `protobuf:"bytes,2,opt,name=cms_signed_request,json=cmsSignedRequest,proto3" json:"cms_signed_request,omitempty"` +} + +func (x *ChainRenewalRequest) Reset() { + *x = ChainRenewalRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_renewal_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainRenewalRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainRenewalRequest) ProtoMessage() {} + +func (x *ChainRenewalRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_renewal_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 ChainRenewalRequest.ProtoReflect.Descriptor instead. +func (*ChainRenewalRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_renewal_proto_rawDescGZIP(), []int{0} +} + +func (x *ChainRenewalRequest) GetSignedRequest() *crypto.SignedMessage { + if x != nil { + return x.SignedRequest + } + return nil +} + +func (x *ChainRenewalRequest) GetCmsSignedRequest() []byte { + if x != nil { + return x.CmsSignedRequest + } + return nil +} + +type ChainRenewalRequestBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The raw certificate signature request (PKCS #10). + Csr []byte `protobuf:"bytes,1,opt,name=csr,proto3" json:"csr,omitempty"` +} + +func (x *ChainRenewalRequestBody) Reset() { + *x = ChainRenewalRequestBody{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_renewal_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainRenewalRequestBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainRenewalRequestBody) ProtoMessage() {} + +func (x *ChainRenewalRequestBody) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_renewal_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 ChainRenewalRequestBody.ProtoReflect.Descriptor instead. +func (*ChainRenewalRequestBody) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_renewal_proto_rawDescGZIP(), []int{1} +} + +func (x *ChainRenewalRequestBody) GetCsr() []byte { + if x != nil { + return x.Csr + } + return nil +} + +type ChainRenewalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The signed certificate chain renewal response. The body of the + // SignedMessage is the serialized ChainRenewalResponseBody. + SignedResponse *crypto.SignedMessage `protobuf:"bytes,1,opt,name=signed_response,json=signedResponse,proto3" json:"signed_response,omitempty"` + // The renewed certificate chain. The content is an ASN.1 DER + // encoded CMS SignedData structure that contains the certificate chain. + // The chain is the concatenation of the ASN.1 DER encoded certificates. + CmsSignedResponse []byte `protobuf:"bytes,2,opt,name=cms_signed_response,json=cmsSignedResponse,proto3" json:"cms_signed_response,omitempty"` +} + +func (x *ChainRenewalResponse) Reset() { + *x = ChainRenewalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_renewal_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainRenewalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainRenewalResponse) ProtoMessage() {} + +func (x *ChainRenewalResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_renewal_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 ChainRenewalResponse.ProtoReflect.Descriptor instead. +func (*ChainRenewalResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_renewal_proto_rawDescGZIP(), []int{2} +} + +func (x *ChainRenewalResponse) GetSignedResponse() *crypto.SignedMessage { + if x != nil { + return x.SignedResponse + } + return nil +} + +func (x *ChainRenewalResponse) GetCmsSignedResponse() []byte { + if x != nil { + return x.CmsSignedResponse + } + return nil +} + +type ChainRenewalResponseBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The renewed certificate chain. + Chain *Chain `protobuf:"bytes,1,opt,name=chain,proto3" json:"chain,omitempty"` +} + +func (x *ChainRenewalResponseBody) Reset() { + *x = ChainRenewalResponseBody{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_renewal_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainRenewalResponseBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainRenewalResponseBody) ProtoMessage() {} + +func (x *ChainRenewalResponseBody) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_renewal_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 ChainRenewalResponseBody.ProtoReflect.Descriptor instead. +func (*ChainRenewalResponseBody) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_renewal_proto_rawDescGZIP(), []int{3} +} + +func (x *ChainRenewalResponseBody) GetChain() *Chain { + if x != nil { + return x.Chain + } + return nil +} + +var File_proto_control_plane_v1_renewal_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_renewal_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x22, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x70, 0x70, 0x6b, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2c, 0x0a, 0x12, 0x63, 0x6d, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x6d, 0x73, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, + 0x17, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x73, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x73, 0x72, 0x22, 0x8f, 0x01, 0x0a, 0x14, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x13, + 0x63, 0x6d, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x6d, 0x73, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x18, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x32, 0x82, 0x01, + 0x0a, 0x13, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x12, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, + 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_proto_control_plane_v1_renewal_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_renewal_proto_rawDescData = file_proto_control_plane_v1_renewal_proto_rawDesc +) + +func file_proto_control_plane_v1_renewal_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_renewal_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_renewal_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_renewal_proto_rawDescData) + }) + return file_proto_control_plane_v1_renewal_proto_rawDescData +} + +var file_proto_control_plane_v1_renewal_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_proto_control_plane_v1_renewal_proto_goTypes = []interface{}{ + (*ChainRenewalRequest)(nil), // 0: proto.control_plane.v1.ChainRenewalRequest + (*ChainRenewalRequestBody)(nil), // 1: proto.control_plane.v1.ChainRenewalRequestBody + (*ChainRenewalResponse)(nil), // 2: proto.control_plane.v1.ChainRenewalResponse + (*ChainRenewalResponseBody)(nil), // 3: proto.control_plane.v1.ChainRenewalResponseBody + (*crypto.SignedMessage)(nil), // 4: proto.crypto.v1.SignedMessage + (*Chain)(nil), // 5: proto.control_plane.v1.Chain +} +var file_proto_control_plane_v1_renewal_proto_depIdxs = []int32{ + 4, // 0: proto.control_plane.v1.ChainRenewalRequest.signed_request:type_name -> proto.crypto.v1.SignedMessage + 4, // 1: proto.control_plane.v1.ChainRenewalResponse.signed_response:type_name -> proto.crypto.v1.SignedMessage + 5, // 2: proto.control_plane.v1.ChainRenewalResponseBody.chain:type_name -> proto.control_plane.v1.Chain + 0, // 3: proto.control_plane.v1.ChainRenewalService.ChainRenewal:input_type -> proto.control_plane.v1.ChainRenewalRequest + 2, // 4: proto.control_plane.v1.ChainRenewalService.ChainRenewal:output_type -> proto.control_plane.v1.ChainRenewalResponse + 4, // [4:5] is the sub-list for method output_type + 3, // [3:4] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_renewal_proto_init() } +func file_proto_control_plane_v1_renewal_proto_init() { + if File_proto_control_plane_v1_renewal_proto != nil { + return + } + file_proto_control_plane_v1_cppki_proto_init() + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_renewal_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainRenewalRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_renewal_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainRenewalRequestBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_renewal_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainRenewalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_renewal_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainRenewalResponseBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_renewal_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_control_plane_v1_renewal_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_renewal_proto_depIdxs, + MessageInfos: file_proto_control_plane_v1_renewal_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_renewal_proto = out.File + file_proto_control_plane_v1_renewal_proto_rawDesc = nil + file_proto_control_plane_v1_renewal_proto_goTypes = nil + file_proto_control_plane_v1_renewal_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/seg.pb.go b/bufgen/proto/control_plane/v1/seg.pb.go new file mode 100644 index 0000000000..d1f1e01dff --- /dev/null +++ b/bufgen/proto/control_plane/v1/seg.pb.go @@ -0,0 +1,1408 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/seg.proto + +package control_plane + +import ( + crypto "github.com/scionproto/scion/pkg/proto/crypto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SegmentType int32 + +const ( + // Unknown segemnt type. + SegmentType_SEGMENT_TYPE_UNSPECIFIED SegmentType = 0 + // Up segment. + SegmentType_SEGMENT_TYPE_UP SegmentType = 1 + // Down segment. + SegmentType_SEGMENT_TYPE_DOWN SegmentType = 2 + // Core segment. + SegmentType_SEGMENT_TYPE_CORE SegmentType = 3 +) + +// Enum value maps for SegmentType. +var ( + SegmentType_name = map[int32]string{ + 0: "SEGMENT_TYPE_UNSPECIFIED", + 1: "SEGMENT_TYPE_UP", + 2: "SEGMENT_TYPE_DOWN", + 3: "SEGMENT_TYPE_CORE", + } + SegmentType_value = map[string]int32{ + "SEGMENT_TYPE_UNSPECIFIED": 0, + "SEGMENT_TYPE_UP": 1, + "SEGMENT_TYPE_DOWN": 2, + "SEGMENT_TYPE_CORE": 3, + } +) + +func (x SegmentType) Enum() *SegmentType { + p := new(SegmentType) + *p = x + return p +} + +func (x SegmentType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SegmentType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_control_plane_v1_seg_proto_enumTypes[0].Descriptor() +} + +func (SegmentType) Type() protoreflect.EnumType { + return &file_proto_control_plane_v1_seg_proto_enumTypes[0] +} + +func (x SegmentType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SegmentType.Descriptor instead. +func (SegmentType) EnumDescriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{0} +} + +type SegmentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The source ISD-AS of the segment. + SrcIsdAs uint64 `protobuf:"varint,1,opt,name=src_isd_as,json=srcIsdAs,proto3" json:"src_isd_as,omitempty"` + // The destination ISD-AS of the segment. + DstIsdAs uint64 `protobuf:"varint,2,opt,name=dst_isd_as,json=dstIsdAs,proto3" json:"dst_isd_as,omitempty"` +} + +func (x *SegmentsRequest) Reset() { + *x = SegmentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsRequest) ProtoMessage() {} + +func (x *SegmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsRequest.ProtoReflect.Descriptor instead. +func (*SegmentsRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{0} +} + +func (x *SegmentsRequest) GetSrcIsdAs() uint64 { + if x != nil { + return x.SrcIsdAs + } + return 0 +} + +func (x *SegmentsRequest) GetDstIsdAs() uint64 { + if x != nil { + return x.DstIsdAs + } + return 0 +} + +type SegmentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mapping from path segment type to path segments. The key is the integer + // representation of the SegmentType enum. + Segments map[int32]*SegmentsResponse_Segments `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Deprecated list of signed revocations. Will be removed with header v1. + DeprecatedSignedRevocations [][]byte `protobuf:"bytes,1000,rep,name=deprecated_signed_revocations,json=deprecatedSignedRevocations,proto3" json:"deprecated_signed_revocations,omitempty"` +} + +func (x *SegmentsResponse) Reset() { + *x = SegmentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsResponse) ProtoMessage() {} + +func (x *SegmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsResponse.ProtoReflect.Descriptor instead. +func (*SegmentsResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{1} +} + +func (x *SegmentsResponse) GetSegments() map[int32]*SegmentsResponse_Segments { + if x != nil { + return x.Segments + } + return nil +} + +func (x *SegmentsResponse) GetDeprecatedSignedRevocations() [][]byte { + if x != nil { + return x.DeprecatedSignedRevocations + } + return nil +} + +type SegmentsRegistrationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mapping from path segment type to path segments. The key is the integer + // representation of the SegmentType enum. + Segments map[int32]*SegmentsRegistrationRequest_Segments `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *SegmentsRegistrationRequest) Reset() { + *x = SegmentsRegistrationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsRegistrationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsRegistrationRequest) ProtoMessage() {} + +func (x *SegmentsRegistrationRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsRegistrationRequest.ProtoReflect.Descriptor instead. +func (*SegmentsRegistrationRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{2} +} + +func (x *SegmentsRegistrationRequest) GetSegments() map[int32]*SegmentsRegistrationRequest_Segments { + if x != nil { + return x.Segments + } + return nil +} + +type SegmentsRegistrationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SegmentsRegistrationResponse) Reset() { + *x = SegmentsRegistrationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsRegistrationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsRegistrationResponse) ProtoMessage() {} + +func (x *SegmentsRegistrationResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsRegistrationResponse.ProtoReflect.Descriptor instead. +func (*SegmentsRegistrationResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{3} +} + +type BeaconRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Beacon in form of a partial path segment. + Segment *PathSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"` +} + +func (x *BeaconRequest) Reset() { + *x = BeaconRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BeaconRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BeaconRequest) ProtoMessage() {} + +func (x *BeaconRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 BeaconRequest.ProtoReflect.Descriptor instead. +func (*BeaconRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{4} +} + +func (x *BeaconRequest) GetSegment() *PathSegment { + if x != nil { + return x.Segment + } + return nil +} + +type BeaconResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BeaconResponse) Reset() { + *x = BeaconResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BeaconResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BeaconResponse) ProtoMessage() {} + +func (x *BeaconResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 BeaconResponse.ProtoReflect.Descriptor instead. +func (*BeaconResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{5} +} + +type PathSegment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The encoded SegmentInformation. It is used for signature input. + SegmentInfo []byte `protobuf:"bytes,1,opt,name=segment_info,json=segmentInfo,proto3" json:"segment_info,omitempty"` + // Entries of ASes on the path. + AsEntries []*ASEntry `protobuf:"bytes,2,rep,name=as_entries,json=asEntries,proto3" json:"as_entries,omitempty"` +} + +func (x *PathSegment) Reset() { + *x = PathSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathSegment) ProtoMessage() {} + +func (x *PathSegment) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 PathSegment.ProtoReflect.Descriptor instead. +func (*PathSegment) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{6} +} + +func (x *PathSegment) GetSegmentInfo() []byte { + if x != nil { + return x.SegmentInfo + } + return nil +} + +func (x *PathSegment) GetAsEntries() []*ASEntry { + if x != nil { + return x.AsEntries + } + return nil +} + +type SegmentInformation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Segment creation time set by the originating AS. Segment expiration time + // is computed relative to this timestamp. The timestamp is encoded as + // number of seconds elapsed since January 1, 1970 UTC. + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // The 16-bit segment ID integer used for MAC computation. + SegmentId uint32 `protobuf:"varint,2,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` +} + +func (x *SegmentInformation) Reset() { + *x = SegmentInformation{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentInformation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentInformation) ProtoMessage() {} + +func (x *SegmentInformation) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentInformation.ProtoReflect.Descriptor instead. +func (*SegmentInformation) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{7} +} + +func (x *SegmentInformation) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *SegmentInformation) GetSegmentId() uint32 { + if x != nil { + return x.SegmentId + } + return 0 +} + +type ASEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The signed part of the AS entry. The body of the SignedMessage is the + // serialized ASEntrySignedBody. The signature input is defined as following: + // + // input(ps, i) = signed.header_and_body || associated_data(ps, i) + // + // associated_data(ps, i) = ps.segment_info || + // ps.as_entries[1].signed.header_and_body || + // ps.as_entries[1].signed.signature || + // ... + // ps.as_entries[i-1].signed.header_and_body || + // ps.as_entries[i-1].signed.signature + Signed *crypto.SignedMessage `protobuf:"bytes,1,opt,name=signed,proto3" json:"signed,omitempty"` + // The unsigned part of the AS entry. + Unsigned *PathSegmentUnsignedExtensions `protobuf:"bytes,2,opt,name=unsigned,proto3" json:"unsigned,omitempty"` +} + +func (x *ASEntry) Reset() { + *x = ASEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASEntry) ProtoMessage() {} + +func (x *ASEntry) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 ASEntry.ProtoReflect.Descriptor instead. +func (*ASEntry) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{8} +} + +func (x *ASEntry) GetSigned() *crypto.SignedMessage { + if x != nil { + return x.Signed + } + return nil +} + +func (x *ASEntry) GetUnsigned() *PathSegmentUnsignedExtensions { + if x != nil { + return x.Unsigned + } + return nil +} + +type ASEntrySignedBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of the AS that created this AS entry. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // ISD-AS of the downstream AS. + NextIsdAs uint64 `protobuf:"varint,2,opt,name=next_isd_as,json=nextIsdAs,proto3" json:"next_isd_as,omitempty"` + // The required regular hop entry. + HopEntry *HopEntry `protobuf:"bytes,3,opt,name=hop_entry,json=hopEntry,proto3" json:"hop_entry,omitempty"` + // Optional peer entries. + PeerEntries []*PeerEntry `protobuf:"bytes,4,rep,name=peer_entries,json=peerEntries,proto3" json:"peer_entries,omitempty"` + // Intra AS MTU. + Mtu uint32 `protobuf:"varint,5,opt,name=mtu,proto3" json:"mtu,omitempty"` + // Optional extensions. + Extensions *PathSegmentExtensions `protobuf:"bytes,6,opt,name=extensions,proto3" json:"extensions,omitempty"` +} + +func (x *ASEntrySignedBody) Reset() { + *x = ASEntrySignedBody{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASEntrySignedBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASEntrySignedBody) ProtoMessage() {} + +func (x *ASEntrySignedBody) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 ASEntrySignedBody.ProtoReflect.Descriptor instead. +func (*ASEntrySignedBody) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{9} +} + +func (x *ASEntrySignedBody) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *ASEntrySignedBody) GetNextIsdAs() uint64 { + if x != nil { + return x.NextIsdAs + } + return 0 +} + +func (x *ASEntrySignedBody) GetHopEntry() *HopEntry { + if x != nil { + return x.HopEntry + } + return nil +} + +func (x *ASEntrySignedBody) GetPeerEntries() []*PeerEntry { + if x != nil { + return x.PeerEntries + } + return nil +} + +func (x *ASEntrySignedBody) GetMtu() uint32 { + if x != nil { + return x.Mtu + } + return 0 +} + +func (x *ASEntrySignedBody) GetExtensions() *PathSegmentExtensions { + if x != nil { + return x.Extensions + } + return nil +} + +type HopEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Material to create the data-plane hop field. + HopField *HopField `protobuf:"bytes,1,opt,name=hop_field,json=hopField,proto3" json:"hop_field,omitempty"` + // MTU on the ingress link. + IngressMtu uint32 `protobuf:"varint,2,opt,name=ingress_mtu,json=ingressMtu,proto3" json:"ingress_mtu,omitempty"` +} + +func (x *HopEntry) Reset() { + *x = HopEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HopEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HopEntry) ProtoMessage() {} + +func (x *HopEntry) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 HopEntry.ProtoReflect.Descriptor instead. +func (*HopEntry) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{10} +} + +func (x *HopEntry) GetHopField() *HopField { + if x != nil { + return x.HopField + } + return nil +} + +func (x *HopEntry) GetIngressMtu() uint32 { + if x != nil { + return x.IngressMtu + } + return 0 +} + +type PeerEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of peer AS. This is used to match peering segments during path + // construction. + PeerIsdAs uint64 `protobuf:"varint,1,opt,name=peer_isd_as,json=peerIsdAs,proto3" json:"peer_isd_as,omitempty"` + // Remote peer interface identifier. This is used to match peering segments + // during path construction. + PeerInterface uint64 `protobuf:"varint,2,opt,name=peer_interface,json=peerInterface,proto3" json:"peer_interface,omitempty"` + // MTU on the peering link. + PeerMtu uint32 `protobuf:"varint,3,opt,name=peer_mtu,json=peerMtu,proto3" json:"peer_mtu,omitempty"` + // Material to create the data-plane hop field + HopField *HopField `protobuf:"bytes,4,opt,name=hop_field,json=hopField,proto3" json:"hop_field,omitempty"` +} + +func (x *PeerEntry) Reset() { + *x = PeerEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerEntry) ProtoMessage() {} + +func (x *PeerEntry) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 PeerEntry.ProtoReflect.Descriptor instead. +func (*PeerEntry) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{11} +} + +func (x *PeerEntry) GetPeerIsdAs() uint64 { + if x != nil { + return x.PeerIsdAs + } + return 0 +} + +func (x *PeerEntry) GetPeerInterface() uint64 { + if x != nil { + return x.PeerInterface + } + return 0 +} + +func (x *PeerEntry) GetPeerMtu() uint32 { + if x != nil { + return x.PeerMtu + } + return 0 +} + +func (x *PeerEntry) GetHopField() *HopField { + if x != nil { + return x.HopField + } + return nil +} + +type HopField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ingress interface identifier. + Ingress uint64 `protobuf:"varint,1,opt,name=ingress,proto3" json:"ingress,omitempty"` + // Egress interface identifier. + Egress uint64 `protobuf:"varint,2,opt,name=egress,proto3" json:"egress,omitempty"` + // 8-bit encoded expiration offset relative to the segment creation + // timestamp. + ExpTime uint32 `protobuf:"varint,3,opt,name=exp_time,json=expTime,proto3" json:"exp_time,omitempty"` + // MAC used in the dataplane to verify the hop field. + Mac []byte `protobuf:"bytes,4,opt,name=mac,proto3" json:"mac,omitempty"` +} + +func (x *HopField) Reset() { + *x = HopField{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HopField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HopField) ProtoMessage() {} + +func (x *HopField) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 HopField.ProtoReflect.Descriptor instead. +func (*HopField) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{12} +} + +func (x *HopField) GetIngress() uint64 { + if x != nil { + return x.Ingress + } + return 0 +} + +func (x *HopField) GetEgress() uint64 { + if x != nil { + return x.Egress + } + return 0 +} + +func (x *HopField) GetExpTime() uint32 { + if x != nil { + return x.ExpTime + } + return 0 +} + +func (x *HopField) GetMac() []byte { + if x != nil { + return x.Mac + } + return nil +} + +type SegmentsResponse_Segments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of path segments. + Segments []*PathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` +} + +func (x *SegmentsResponse_Segments) Reset() { + *x = SegmentsResponse_Segments{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsResponse_Segments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsResponse_Segments) ProtoMessage() {} + +func (x *SegmentsResponse_Segments) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsResponse_Segments.ProtoReflect.Descriptor instead. +func (*SegmentsResponse_Segments) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *SegmentsResponse_Segments) GetSegments() []*PathSegment { + if x != nil { + return x.Segments + } + return nil +} + +type SegmentsRegistrationRequest_Segments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of path segments. + Segments []*PathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` +} + +func (x *SegmentsRegistrationRequest_Segments) Reset() { + *x = SegmentsRegistrationRequest_Segments{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentsRegistrationRequest_Segments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentsRegistrationRequest_Segments) ProtoMessage() {} + +func (x *SegmentsRegistrationRequest_Segments) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_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 SegmentsRegistrationRequest_Segments.ProtoReflect.Descriptor instead. +func (*SegmentsRegistrationRequest_Segments) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *SegmentsRegistrationRequest_Segments) GetSegments() []*PathSegment { + if x != nil { + return x.Segments + } + return nil +} + +var File_proto_control_plane_v1_seg_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_seg_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x2b, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x5f, + 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x72, + 0x63, 0x49, 0x73, 0x64, 0x41, 0x73, 0x12, 0x1c, 0x0a, 0x0a, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x73, + 0x64, 0x5f, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x73, 0x74, 0x49, + 0x73, 0x64, 0x41, 0x73, 0x22, 0xe8, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, + 0x1d, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe8, + 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x1b, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x4b, 0x0a, 0x08, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3f, + 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, + 0x6e, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xc4, 0x02, 0x0a, 0x1b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x5d, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, + 0x0a, 0x08, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x79, 0x0a, 0x0d, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x0d, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x70, 0x0a, 0x0b, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0a, 0x61, 0x73, + 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x53, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x09, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x12, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x94, 0x01, + 0x0a, 0x07, 0x41, 0x53, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x12, 0x51, 0x0a, 0x08, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x08, 0x75, 0x6e, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x11, 0x41, 0x53, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, + 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x73, 0x64, 0x41, + 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x73, 0x64, 0x41, + 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x44, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x65, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x4d, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x08, 0x48, 0x6f, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x74, + 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x4d, 0x74, 0x75, 0x22, 0xac, 0x01, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x49, 0x73, 0x64, 0x41, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, + 0x4d, 0x74, 0x75, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x69, 0x0a, 0x08, 0x48, 0x6f, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x2a, 0x6e, 0x0a, + 0x0b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, + 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, + 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x32, 0x77, 0x0a, + 0x14, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xa2, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x73, 0x0a, 0x16, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, + 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_v1_seg_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_seg_proto_rawDescData = file_proto_control_plane_v1_seg_proto_rawDesc +) + +func file_proto_control_plane_v1_seg_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_seg_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_seg_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_seg_proto_rawDescData) + }) + return file_proto_control_plane_v1_seg_proto_rawDescData +} + +var file_proto_control_plane_v1_seg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_control_plane_v1_seg_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_proto_control_plane_v1_seg_proto_goTypes = []interface{}{ + (SegmentType)(0), // 0: proto.control_plane.v1.SegmentType + (*SegmentsRequest)(nil), // 1: proto.control_plane.v1.SegmentsRequest + (*SegmentsResponse)(nil), // 2: proto.control_plane.v1.SegmentsResponse + (*SegmentsRegistrationRequest)(nil), // 3: proto.control_plane.v1.SegmentsRegistrationRequest + (*SegmentsRegistrationResponse)(nil), // 4: proto.control_plane.v1.SegmentsRegistrationResponse + (*BeaconRequest)(nil), // 5: proto.control_plane.v1.BeaconRequest + (*BeaconResponse)(nil), // 6: proto.control_plane.v1.BeaconResponse + (*PathSegment)(nil), // 7: proto.control_plane.v1.PathSegment + (*SegmentInformation)(nil), // 8: proto.control_plane.v1.SegmentInformation + (*ASEntry)(nil), // 9: proto.control_plane.v1.ASEntry + (*ASEntrySignedBody)(nil), // 10: proto.control_plane.v1.ASEntrySignedBody + (*HopEntry)(nil), // 11: proto.control_plane.v1.HopEntry + (*PeerEntry)(nil), // 12: proto.control_plane.v1.PeerEntry + (*HopField)(nil), // 13: proto.control_plane.v1.HopField + (*SegmentsResponse_Segments)(nil), // 14: proto.control_plane.v1.SegmentsResponse.Segments + nil, // 15: proto.control_plane.v1.SegmentsResponse.SegmentsEntry + (*SegmentsRegistrationRequest_Segments)(nil), // 16: proto.control_plane.v1.SegmentsRegistrationRequest.Segments + nil, // 17: proto.control_plane.v1.SegmentsRegistrationRequest.SegmentsEntry + (*crypto.SignedMessage)(nil), // 18: proto.crypto.v1.SignedMessage + (*PathSegmentUnsignedExtensions)(nil), // 19: proto.control_plane.v1.PathSegmentUnsignedExtensions + (*PathSegmentExtensions)(nil), // 20: proto.control_plane.v1.PathSegmentExtensions +} +var file_proto_control_plane_v1_seg_proto_depIdxs = []int32{ + 15, // 0: proto.control_plane.v1.SegmentsResponse.segments:type_name -> proto.control_plane.v1.SegmentsResponse.SegmentsEntry + 17, // 1: proto.control_plane.v1.SegmentsRegistrationRequest.segments:type_name -> proto.control_plane.v1.SegmentsRegistrationRequest.SegmentsEntry + 7, // 2: proto.control_plane.v1.BeaconRequest.segment:type_name -> proto.control_plane.v1.PathSegment + 9, // 3: proto.control_plane.v1.PathSegment.as_entries:type_name -> proto.control_plane.v1.ASEntry + 18, // 4: proto.control_plane.v1.ASEntry.signed:type_name -> proto.crypto.v1.SignedMessage + 19, // 5: proto.control_plane.v1.ASEntry.unsigned:type_name -> proto.control_plane.v1.PathSegmentUnsignedExtensions + 11, // 6: proto.control_plane.v1.ASEntrySignedBody.hop_entry:type_name -> proto.control_plane.v1.HopEntry + 12, // 7: proto.control_plane.v1.ASEntrySignedBody.peer_entries:type_name -> proto.control_plane.v1.PeerEntry + 20, // 8: proto.control_plane.v1.ASEntrySignedBody.extensions:type_name -> proto.control_plane.v1.PathSegmentExtensions + 13, // 9: proto.control_plane.v1.HopEntry.hop_field:type_name -> proto.control_plane.v1.HopField + 13, // 10: proto.control_plane.v1.PeerEntry.hop_field:type_name -> proto.control_plane.v1.HopField + 7, // 11: proto.control_plane.v1.SegmentsResponse.Segments.segments:type_name -> proto.control_plane.v1.PathSegment + 14, // 12: proto.control_plane.v1.SegmentsResponse.SegmentsEntry.value:type_name -> proto.control_plane.v1.SegmentsResponse.Segments + 7, // 13: proto.control_plane.v1.SegmentsRegistrationRequest.Segments.segments:type_name -> proto.control_plane.v1.PathSegment + 16, // 14: proto.control_plane.v1.SegmentsRegistrationRequest.SegmentsEntry.value:type_name -> proto.control_plane.v1.SegmentsRegistrationRequest.Segments + 1, // 15: proto.control_plane.v1.SegmentLookupService.Segments:input_type -> proto.control_plane.v1.SegmentsRequest + 3, // 16: proto.control_plane.v1.SegmentRegistrationService.SegmentsRegistration:input_type -> proto.control_plane.v1.SegmentsRegistrationRequest + 5, // 17: proto.control_plane.v1.SegmentCreationService.Beacon:input_type -> proto.control_plane.v1.BeaconRequest + 2, // 18: proto.control_plane.v1.SegmentLookupService.Segments:output_type -> proto.control_plane.v1.SegmentsResponse + 4, // 19: proto.control_plane.v1.SegmentRegistrationService.SegmentsRegistration:output_type -> proto.control_plane.v1.SegmentsRegistrationResponse + 6, // 20: proto.control_plane.v1.SegmentCreationService.Beacon:output_type -> proto.control_plane.v1.BeaconResponse + 18, // [18:21] is the sub-list for method output_type + 15, // [15:18] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_seg_proto_init() } +func file_proto_control_plane_v1_seg_proto_init() { + if File_proto_control_plane_v1_seg_proto != nil { + return + } + file_proto_control_plane_v1_seg_extensions_proto_init() + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_seg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsRegistrationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsRegistrationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BeaconRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BeaconResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentInformation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASEntrySignedBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HopEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HopField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsResponse_Segments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentsRegistrationRequest_Segments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_seg_proto_rawDesc, + NumEnums: 1, + NumMessages: 17, + NumExtensions: 0, + NumServices: 3, + }, + GoTypes: file_proto_control_plane_v1_seg_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_seg_proto_depIdxs, + EnumInfos: file_proto_control_plane_v1_seg_proto_enumTypes, + MessageInfos: file_proto_control_plane_v1_seg_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_seg_proto = out.File + file_proto_control_plane_v1_seg_proto_rawDesc = nil + file_proto_control_plane_v1_seg_proto_goTypes = nil + file_proto_control_plane_v1_seg_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/seg_extensions.pb.go b/bufgen/proto/control_plane/v1/seg_extensions.pb.go new file mode 100644 index 0000000000..e86eaab535 --- /dev/null +++ b/bufgen/proto/control_plane/v1/seg_extensions.pb.go @@ -0,0 +1,1012 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/seg_extensions.proto + +package control_plane + +import ( + experimental "github.com/scionproto/scion/pkg/proto/control_plane/experimental" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type LinkType int32 + +const ( + // Unspecified link type. + LinkType_LINK_TYPE_UNSPECIFIED LinkType = 0 + // Direct physical connection. + LinkType_LINK_TYPE_DIRECT LinkType = 1 + // Connection with local routing/switching. + LinkType_LINK_TYPE_MULTI_HOP LinkType = 2 + // Connection overlayed over publicly routed Internet. + LinkType_LINK_TYPE_OPEN_NET LinkType = 3 +) + +// Enum value maps for LinkType. +var ( + LinkType_name = map[int32]string{ + 0: "LINK_TYPE_UNSPECIFIED", + 1: "LINK_TYPE_DIRECT", + 2: "LINK_TYPE_MULTI_HOP", + 3: "LINK_TYPE_OPEN_NET", + } + LinkType_value = map[string]int32{ + "LINK_TYPE_UNSPECIFIED": 0, + "LINK_TYPE_DIRECT": 1, + "LINK_TYPE_MULTI_HOP": 2, + "LINK_TYPE_OPEN_NET": 3, + } +) + +func (x LinkType) Enum() *LinkType { + p := new(LinkType) + *p = x + return p +} + +func (x LinkType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LinkType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_control_plane_v1_seg_extensions_proto_enumTypes[0].Descriptor() +} + +func (LinkType) Type() protoreflect.EnumType { + return &file_proto_control_plane_v1_seg_extensions_proto_enumTypes[0] +} + +func (x LinkType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LinkType.Descriptor instead. +func (LinkType) EnumDescriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{0} +} + +type PathSegmentExtensions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional static info extension. + StaticInfo *StaticInfoExtension `protobuf:"bytes,1,opt,name=static_info,json=staticInfo,proto3" json:"static_info,omitempty"` + // Optional hidden path extension. + HiddenPath *HiddenPathExtension `protobuf:"bytes,2,opt,name=hidden_path,json=hiddenPath,proto3" json:"hidden_path,omitempty"` + // Optional digests of detached extensions. + Digests *DigestExtension `protobuf:"bytes,1000,opt,name=digests,proto3" json:"digests,omitempty"` +} + +func (x *PathSegmentExtensions) Reset() { + *x = PathSegmentExtensions{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathSegmentExtensions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathSegmentExtensions) ProtoMessage() {} + +func (x *PathSegmentExtensions) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 PathSegmentExtensions.ProtoReflect.Descriptor instead. +func (*PathSegmentExtensions) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{0} +} + +func (x *PathSegmentExtensions) GetStaticInfo() *StaticInfoExtension { + if x != nil { + return x.StaticInfo + } + return nil +} + +func (x *PathSegmentExtensions) GetHiddenPath() *HiddenPathExtension { + if x != nil { + return x.HiddenPath + } + return nil +} + +func (x *PathSegmentExtensions) GetDigests() *DigestExtension { + if x != nil { + return x.Digests + } + return nil +} + +type HiddenPathExtension struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicate if this is a hidden path. + IsHidden bool `protobuf:"varint,1,opt,name=is_hidden,json=isHidden,proto3" json:"is_hidden,omitempty"` +} + +func (x *HiddenPathExtension) Reset() { + *x = HiddenPathExtension{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenPathExtension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenPathExtension) ProtoMessage() {} + +func (x *HiddenPathExtension) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 HiddenPathExtension.ProtoReflect.Descriptor instead. +func (*HiddenPathExtension) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{1} +} + +func (x *HiddenPathExtension) GetIsHidden() bool { + if x != nil { + return x.IsHidden + } + return false +} + +type StaticInfoExtension struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Approximate, lower-bound latency for paths based on this ASEntry. + Latency *LatencyInfo `protobuf:"bytes,1,opt,name=latency,proto3" json:"latency,omitempty"` + // Approximate, maximum bandwidth for paths based on this ASEntry. + Bandwidth *BandwidthInfo `protobuf:"bytes,2,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` + // Geographical coordinates describing the location of the routers for + // relevant interfaces of this AS. The key is the interface identifier. + Geo map[uint64]*GeoCoordinates `protobuf:"bytes,3,rep,name=geo,proto3" json:"geo,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Description of the underlying network for the inter-AS links, for the + // relevant interfaces of this AS. The key is the interface identifier. + LinkType map[uint64]LinkType `protobuf:"bytes,4,rep,name=link_type,json=linkType,proto3" json:"link_type,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=proto.control_plane.v1.LinkType"` + // Number of AS internal hops between the construction-egress and the + // relevant other interfaces. These are: + // - construction-ingress interface (if any) + // - sibling child interfaces, + // - core interfaces, at start or end of a segment + // - peer interfaces + // The key is the interface identifier of the other interface. + InternalHops map[uint64]uint32 `protobuf:"bytes,5,rep,name=internal_hops,json=internalHops,proto3" json:"internal_hops,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // Generic note + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *StaticInfoExtension) Reset() { + *x = StaticInfoExtension{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StaticInfoExtension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticInfoExtension) ProtoMessage() {} + +func (x *StaticInfoExtension) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 StaticInfoExtension.ProtoReflect.Descriptor instead. +func (*StaticInfoExtension) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{2} +} + +func (x *StaticInfoExtension) GetLatency() *LatencyInfo { + if x != nil { + return x.Latency + } + return nil +} + +func (x *StaticInfoExtension) GetBandwidth() *BandwidthInfo { + if x != nil { + return x.Bandwidth + } + return nil +} + +func (x *StaticInfoExtension) GetGeo() map[uint64]*GeoCoordinates { + if x != nil { + return x.Geo + } + return nil +} + +func (x *StaticInfoExtension) GetLinkType() map[uint64]LinkType { + if x != nil { + return x.LinkType + } + return nil +} + +func (x *StaticInfoExtension) GetInternalHops() map[uint64]uint32 { + if x != nil { + return x.InternalHops + } + return nil +} + +func (x *StaticInfoExtension) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +// LatencyInfo specifies approximate lower-bound latency values. +// The separate intra and inter AS latency information allows to reconstruct +// latency values for all paths (cross-over, shortcut, peering) based on this +// ASEntry. +// All values are in microseconds. +type LatencyInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Latency between construction-egress interface and the relevant other + // interfaces. These are: + // - construction-ingress interface (if any) + // - sibling child interfaces, + // - core interfaces, at start or end of a segment + // - peer interfaces + // The key is the interface identifier of the other interface. + Intra map[uint64]uint32 `protobuf:"bytes,1,rep,name=intra,proto3" json:"intra,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // Latency between the local interface and the interface in the neighbor AS + // for the relevant links. These are: + // - link at construction-egress interface (if any) + // - peer links + // The key is the interface identifier of the local interface associated + // with the link. + Inter map[uint64]uint32 `protobuf:"bytes,2,rep,name=inter,proto3" json:"inter,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *LatencyInfo) Reset() { + *x = LatencyInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatencyInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatencyInfo) ProtoMessage() {} + +func (x *LatencyInfo) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 LatencyInfo.ProtoReflect.Descriptor instead. +func (*LatencyInfo) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{3} +} + +func (x *LatencyInfo) GetIntra() map[uint64]uint32 { + if x != nil { + return x.Intra + } + return nil +} + +func (x *LatencyInfo) GetInter() map[uint64]uint32 { + if x != nil { + return x.Inter + } + return nil +} + +// BandwidthInfo specifies approximate maximum link bandwidth. +// The separate intra and inter AS bandwidth information allows to reconstruct +// bandwidth values for all paths (cross-over, shortcut, peering) based on this +// ASEntry. +// All values are in Kbit/s. +type BandwidthInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Bandwidth between construction-egress interface and the relevant other + // interfaces. These are: + // - construction-ingress interface (if any) + // - sibling child interfaces, + // - core interfaces, if this is the start of a segment, or the end of a core segment + // - peer interfaces + // The key is the interface identifier of the other interface. + Intra map[uint64]uint64 `protobuf:"bytes,1,rep,name=intra,proto3" json:"intra,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + // Bandwidth between the local interface and the interface in the neighbor AS + // for the relevant links. These are: + // - link at construction-egress interface (if any) + // - peer links + // The key is the interface identifier of the local interface associated + // with the link. + Inter map[uint64]uint64 `protobuf:"bytes,2,rep,name=inter,proto3" json:"inter,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` +} + +func (x *BandwidthInfo) Reset() { + *x = BandwidthInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BandwidthInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BandwidthInfo) ProtoMessage() {} + +func (x *BandwidthInfo) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 BandwidthInfo.ProtoReflect.Descriptor instead. +func (*BandwidthInfo) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{4} +} + +func (x *BandwidthInfo) GetIntra() map[uint64]uint64 { + if x != nil { + return x.Intra + } + return nil +} + +func (x *BandwidthInfo) GetInter() map[uint64]uint64 { + if x != nil { + return x.Inter + } + return nil +} + +type GeoCoordinates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Latitude of the geographic coordinate, in the WGS 84 datum. + Latitude float32 `protobuf:"fixed32,1,opt,name=latitude,proto3" json:"latitude,omitempty"` + // Longitude of the geographic coordinate, in the WGS 84 datum. + Longitude float32 `protobuf:"fixed32,2,opt,name=longitude,proto3" json:"longitude,omitempty"` + // Civic address of the location. + Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *GeoCoordinates) Reset() { + *x = GeoCoordinates{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeoCoordinates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeoCoordinates) ProtoMessage() {} + +func (x *GeoCoordinates) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 GeoCoordinates.ProtoReflect.Descriptor instead. +func (*GeoCoordinates) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{5} +} + +func (x *GeoCoordinates) GetLatitude() float32 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *GeoCoordinates) GetLongitude() float32 { + if x != nil { + return x.Longitude + } + return 0 +} + +func (x *GeoCoordinates) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +type DigestExtension struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The digest of the detached EPIC extension. The hash input is defined as follows: + // + // input = totalLen || + // + // epic.Detached.AuthHopEntry || + // epic.Detached.AuthPeerEntries[0] || + // epic.Detached.AuthPeerEntries[1] || + // ... + // epic.Detached.AuthPeerEntries[n-1] + // + // Here, 'n' denotes the number of peer entries. + // + // 'totalLen' is equal to (n+1), and therefore encodes the + // total number of authenticators used in the hash. + Epic *DigestExtension_Digest `protobuf:"bytes,1000,opt,name=epic,proto3" json:"epic,omitempty"` +} + +func (x *DigestExtension) Reset() { + *x = DigestExtension{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DigestExtension) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DigestExtension) ProtoMessage() {} + +func (x *DigestExtension) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 DigestExtension.ProtoReflect.Descriptor instead. +func (*DigestExtension) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{6} +} + +func (x *DigestExtension) GetEpic() *DigestExtension_Digest { + if x != nil { + return x.Epic + } + return nil +} + +type PathSegmentUnsignedExtensions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional EPIC extension. + Epic *experimental.EPICDetachedExtension `protobuf:"bytes,1000,opt,name=epic,proto3" json:"epic,omitempty"` +} + +func (x *PathSegmentUnsignedExtensions) Reset() { + *x = PathSegmentUnsignedExtensions{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathSegmentUnsignedExtensions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathSegmentUnsignedExtensions) ProtoMessage() {} + +func (x *PathSegmentUnsignedExtensions) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 PathSegmentUnsignedExtensions.ProtoReflect.Descriptor instead. +func (*PathSegmentUnsignedExtensions) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{7} +} + +func (x *PathSegmentUnsignedExtensions) GetEpic() *experimental.EPICDetachedExtension { + if x != nil { + return x.Epic + } + return nil +} + +type DigestExtension_Digest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw digest of the metadata. + Digest []byte `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"` +} + +func (x *DigestExtension_Digest) Reset() { + *x = DigestExtension_Digest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_seg_extensions_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DigestExtension_Digest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DigestExtension_Digest) ProtoMessage() {} + +func (x *DigestExtension_Digest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_seg_extensions_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 DigestExtension_Digest.ProtoReflect.Descriptor instead. +func (*DigestExtension_Digest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *DigestExtension_Digest) GetDigest() []byte { + if x != nil { + return x.Digest + } + return nil +} + +var File_proto_control_plane_v1_seg_extensions_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_seg_extensions_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x5f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x41, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x67, 0x5f, 0x64, + 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x4c, 0x0a, 0x0b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, + 0x0a, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x73, 0x22, 0x32, 0x0a, 0x13, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, + 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0xb1, 0x05, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, + 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x43, 0x0a, + 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x46, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, + 0x6e, 0x66, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6f, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x56, 0x0a, 0x09, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, + 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x68, + 0x6f, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x48, + 0x6f, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x48, 0x6f, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x1a, 0x5e, 0x0a, 0x08, 0x47, 0x65, + 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x0d, 0x4c, 0x69, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x48, 0x6f, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x02, 0x0a, 0x0b, 0x4c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x6e, + 0x74, 0x72, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, + 0x6e, 0x74, 0x72, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x72, 0x61, + 0x12, 0x44, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x93, 0x02, 0x0a, 0x0d, 0x42, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x05, + 0x69, 0x6e, 0x74, 0x72, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, + 0x6e, 0x74, 0x72, 0x61, 0x12, 0x46, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0a, + 0x49, 0x6e, 0x74, 0x72, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x64, 0x0a, 0x0e, 0x47, 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x78, 0x0a, 0x0f, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x04, 0x65, 0x70, 0x69, + 0x63, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x04, 0x65, 0x70, 0x69, 0x63, 0x1a, 0x20, + 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x22, 0x70, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x55, + 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x4f, 0x0a, 0x04, 0x65, 0x70, 0x69, 0x63, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x50, 0x49, 0x43, 0x44, 0x65, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x65, 0x70, + 0x69, 0x63, 0x2a, 0x6c, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, + 0x0a, 0x15, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x49, 0x4e, + 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, + 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, + 0x54, 0x49, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x4e, 0x4b, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x4e, 0x45, 0x54, 0x10, 0x03, + 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, + 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_v1_seg_extensions_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_seg_extensions_proto_rawDescData = file_proto_control_plane_v1_seg_extensions_proto_rawDesc +) + +func file_proto_control_plane_v1_seg_extensions_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_seg_extensions_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_seg_extensions_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_seg_extensions_proto_rawDescData) + }) + return file_proto_control_plane_v1_seg_extensions_proto_rawDescData +} + +var file_proto_control_plane_v1_seg_extensions_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_control_plane_v1_seg_extensions_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_proto_control_plane_v1_seg_extensions_proto_goTypes = []interface{}{ + (LinkType)(0), // 0: proto.control_plane.v1.LinkType + (*PathSegmentExtensions)(nil), // 1: proto.control_plane.v1.PathSegmentExtensions + (*HiddenPathExtension)(nil), // 2: proto.control_plane.v1.HiddenPathExtension + (*StaticInfoExtension)(nil), // 3: proto.control_plane.v1.StaticInfoExtension + (*LatencyInfo)(nil), // 4: proto.control_plane.v1.LatencyInfo + (*BandwidthInfo)(nil), // 5: proto.control_plane.v1.BandwidthInfo + (*GeoCoordinates)(nil), // 6: proto.control_plane.v1.GeoCoordinates + (*DigestExtension)(nil), // 7: proto.control_plane.v1.DigestExtension + (*PathSegmentUnsignedExtensions)(nil), // 8: proto.control_plane.v1.PathSegmentUnsignedExtensions + nil, // 9: proto.control_plane.v1.StaticInfoExtension.GeoEntry + nil, // 10: proto.control_plane.v1.StaticInfoExtension.LinkTypeEntry + nil, // 11: proto.control_plane.v1.StaticInfoExtension.InternalHopsEntry + nil, // 12: proto.control_plane.v1.LatencyInfo.IntraEntry + nil, // 13: proto.control_plane.v1.LatencyInfo.InterEntry + nil, // 14: proto.control_plane.v1.BandwidthInfo.IntraEntry + nil, // 15: proto.control_plane.v1.BandwidthInfo.InterEntry + (*DigestExtension_Digest)(nil), // 16: proto.control_plane.v1.DigestExtension.Digest + (*experimental.EPICDetachedExtension)(nil), // 17: proto.control_plane.experimental.v1.EPICDetachedExtension +} +var file_proto_control_plane_v1_seg_extensions_proto_depIdxs = []int32{ + 3, // 0: proto.control_plane.v1.PathSegmentExtensions.static_info:type_name -> proto.control_plane.v1.StaticInfoExtension + 2, // 1: proto.control_plane.v1.PathSegmentExtensions.hidden_path:type_name -> proto.control_plane.v1.HiddenPathExtension + 7, // 2: proto.control_plane.v1.PathSegmentExtensions.digests:type_name -> proto.control_plane.v1.DigestExtension + 4, // 3: proto.control_plane.v1.StaticInfoExtension.latency:type_name -> proto.control_plane.v1.LatencyInfo + 5, // 4: proto.control_plane.v1.StaticInfoExtension.bandwidth:type_name -> proto.control_plane.v1.BandwidthInfo + 9, // 5: proto.control_plane.v1.StaticInfoExtension.geo:type_name -> proto.control_plane.v1.StaticInfoExtension.GeoEntry + 10, // 6: proto.control_plane.v1.StaticInfoExtension.link_type:type_name -> proto.control_plane.v1.StaticInfoExtension.LinkTypeEntry + 11, // 7: proto.control_plane.v1.StaticInfoExtension.internal_hops:type_name -> proto.control_plane.v1.StaticInfoExtension.InternalHopsEntry + 12, // 8: proto.control_plane.v1.LatencyInfo.intra:type_name -> proto.control_plane.v1.LatencyInfo.IntraEntry + 13, // 9: proto.control_plane.v1.LatencyInfo.inter:type_name -> proto.control_plane.v1.LatencyInfo.InterEntry + 14, // 10: proto.control_plane.v1.BandwidthInfo.intra:type_name -> proto.control_plane.v1.BandwidthInfo.IntraEntry + 15, // 11: proto.control_plane.v1.BandwidthInfo.inter:type_name -> proto.control_plane.v1.BandwidthInfo.InterEntry + 16, // 12: proto.control_plane.v1.DigestExtension.epic:type_name -> proto.control_plane.v1.DigestExtension.Digest + 17, // 13: proto.control_plane.v1.PathSegmentUnsignedExtensions.epic:type_name -> proto.control_plane.experimental.v1.EPICDetachedExtension + 6, // 14: proto.control_plane.v1.StaticInfoExtension.GeoEntry.value:type_name -> proto.control_plane.v1.GeoCoordinates + 0, // 15: proto.control_plane.v1.StaticInfoExtension.LinkTypeEntry.value:type_name -> proto.control_plane.v1.LinkType + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_seg_extensions_proto_init() } +func file_proto_control_plane_v1_seg_extensions_proto_init() { + if File_proto_control_plane_v1_seg_extensions_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathSegmentExtensions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenPathExtension); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StaticInfoExtension); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatencyInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BandwidthInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeoCoordinates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DigestExtension); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathSegmentUnsignedExtensions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_seg_extensions_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DigestExtension_Digest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_seg_extensions_proto_rawDesc, + NumEnums: 1, + NumMessages: 16, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_control_plane_v1_seg_extensions_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_seg_extensions_proto_depIdxs, + EnumInfos: file_proto_control_plane_v1_seg_extensions_proto_enumTypes, + MessageInfos: file_proto_control_plane_v1_seg_extensions_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_seg_extensions_proto = out.File + file_proto_control_plane_v1_seg_extensions_proto_rawDesc = nil + file_proto_control_plane_v1_seg_extensions_proto_goTypes = nil + file_proto_control_plane_v1_seg_extensions_proto_depIdxs = nil +} diff --git a/bufgen/proto/control_plane/v1/svc_resolution.pb.go b/bufgen/proto/control_plane/v1/svc_resolution.pb.go new file mode 100644 index 0000000000..3d4f71316f --- /dev/null +++ b/bufgen/proto/control_plane/v1/svc_resolution.pb.go @@ -0,0 +1,312 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/control_plane/v1/svc_resolution.proto + +package control_plane + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A ServiceResolutionRequest must always fit within a UDP datagram. If the +// request does not fit, there is no mechanism for clients and servers to +// establish control-plane reachability. +type ServiceResolutionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ServiceResolutionRequest) Reset() { + *x = ServiceResolutionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_svc_resolution_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceResolutionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceResolutionRequest) ProtoMessage() {} + +func (x *ServiceResolutionRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_svc_resolution_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 ServiceResolutionRequest.ProtoReflect.Descriptor instead. +func (*ServiceResolutionRequest) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_svc_resolution_proto_rawDescGZIP(), []int{0} +} + +// A ServiceResolutionResponse must always fit within a UDP datagram. If the +// response does not fit, there is no mechanism for clients and servers to +// establish control-plane reachability. +type ServiceResolutionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Supported transports to reach the service, + // + // List of known transports: + // - QUIC + // + // Unknown values should be ignored by clients. + Transports map[string]*Transport `protobuf:"bytes,1,rep,name=transports,proto3" json:"transports,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ServiceResolutionResponse) Reset() { + *x = ServiceResolutionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_svc_resolution_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceResolutionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceResolutionResponse) ProtoMessage() {} + +func (x *ServiceResolutionResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_svc_resolution_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 ServiceResolutionResponse.ProtoReflect.Descriptor instead. +func (*ServiceResolutionResponse) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_svc_resolution_proto_rawDescGZIP(), []int{1} +} + +func (x *ServiceResolutionResponse) GetTransports() map[string]*Transport { + if x != nil { + return x.Transports + } + return nil +} + +type Transport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Protocol specific server address descriptor. + // + // Supported address format for QUIC: + // + // 192.168.0.1:80 + // [2001:db8::1]:80 + // + // Missing ports / zero port / invalid port values should be treated by + // clients as errors. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *Transport) Reset() { + *x = Transport{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_control_plane_v1_svc_resolution_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Transport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transport) ProtoMessage() {} + +func (x *Transport) ProtoReflect() protoreflect.Message { + mi := &file_proto_control_plane_v1_svc_resolution_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 Transport.ProtoReflect.Descriptor instead. +func (*Transport) Descriptor() ([]byte, []int) { + return file_proto_control_plane_v1_svc_resolution_proto_rawDescGZIP(), []int{2} +} + +func (x *Transport) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +var File_proto_control_plane_v1_svc_resolution_proto protoreflect.FileDescriptor + +var file_proto_control_plane_v1_svc_resolution_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x76, 0x63, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0xe0, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x61, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x1a, 0x60, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x35, 0x5a, 0x33, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_control_plane_v1_svc_resolution_proto_rawDescOnce sync.Once + file_proto_control_plane_v1_svc_resolution_proto_rawDescData = file_proto_control_plane_v1_svc_resolution_proto_rawDesc +) + +func file_proto_control_plane_v1_svc_resolution_proto_rawDescGZIP() []byte { + file_proto_control_plane_v1_svc_resolution_proto_rawDescOnce.Do(func() { + file_proto_control_plane_v1_svc_resolution_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_control_plane_v1_svc_resolution_proto_rawDescData) + }) + return file_proto_control_plane_v1_svc_resolution_proto_rawDescData +} + +var file_proto_control_plane_v1_svc_resolution_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_proto_control_plane_v1_svc_resolution_proto_goTypes = []interface{}{ + (*ServiceResolutionRequest)(nil), // 0: proto.control_plane.v1.ServiceResolutionRequest + (*ServiceResolutionResponse)(nil), // 1: proto.control_plane.v1.ServiceResolutionResponse + (*Transport)(nil), // 2: proto.control_plane.v1.Transport + nil, // 3: proto.control_plane.v1.ServiceResolutionResponse.TransportsEntry +} +var file_proto_control_plane_v1_svc_resolution_proto_depIdxs = []int32{ + 3, // 0: proto.control_plane.v1.ServiceResolutionResponse.transports:type_name -> proto.control_plane.v1.ServiceResolutionResponse.TransportsEntry + 2, // 1: proto.control_plane.v1.ServiceResolutionResponse.TransportsEntry.value:type_name -> proto.control_plane.v1.Transport + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_proto_control_plane_v1_svc_resolution_proto_init() } +func file_proto_control_plane_v1_svc_resolution_proto_init() { + if File_proto_control_plane_v1_svc_resolution_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_control_plane_v1_svc_resolution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceResolutionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_svc_resolution_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceResolutionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_control_plane_v1_svc_resolution_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Transport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_control_plane_v1_svc_resolution_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_control_plane_v1_svc_resolution_proto_goTypes, + DependencyIndexes: file_proto_control_plane_v1_svc_resolution_proto_depIdxs, + MessageInfos: file_proto_control_plane_v1_svc_resolution_proto_msgTypes, + }.Build() + File_proto_control_plane_v1_svc_resolution_proto = out.File + file_proto_control_plane_v1_svc_resolution_proto_rawDesc = nil + file_proto_control_plane_v1_svc_resolution_proto_goTypes = nil + file_proto_control_plane_v1_svc_resolution_proto_depIdxs = nil +} diff --git a/bufgen/proto/crypto/v1/signed.pb.go b/bufgen/proto/crypto/v1/signed.pb.go new file mode 100644 index 0000000000..cc08798c0e --- /dev/null +++ b/bufgen/proto/crypto/v1/signed.pb.go @@ -0,0 +1,443 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/crypto/v1/signed.proto + +package crypto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 SignatureAlgorithm int32 + +const ( + // Unspecified signature algorithm. This value is never valid. + SignatureAlgorithm_SIGNATURE_ALGORITHM_UNSPECIFIED SignatureAlgorithm = 0 + // ECDS with SHA256. + SignatureAlgorithm_SIGNATURE_ALGORITHM_ECDSA_WITH_SHA256 SignatureAlgorithm = 1 + // ECDS with SHA384. + SignatureAlgorithm_SIGNATURE_ALGORITHM_ECDSA_WITH_SHA384 SignatureAlgorithm = 2 + // ECDS with SHA512. + SignatureAlgorithm_SIGNATURE_ALGORITHM_ECDSA_WITH_SHA512 SignatureAlgorithm = 3 +) + +// Enum value maps for SignatureAlgorithm. +var ( + SignatureAlgorithm_name = map[int32]string{ + 0: "SIGNATURE_ALGORITHM_UNSPECIFIED", + 1: "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA256", + 2: "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA384", + 3: "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA512", + } + SignatureAlgorithm_value = map[string]int32{ + "SIGNATURE_ALGORITHM_UNSPECIFIED": 0, + "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA256": 1, + "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA384": 2, + "SIGNATURE_ALGORITHM_ECDSA_WITH_SHA512": 3, + } +) + +func (x SignatureAlgorithm) Enum() *SignatureAlgorithm { + p := new(SignatureAlgorithm) + *p = x + return p +} + +func (x SignatureAlgorithm) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SignatureAlgorithm) Descriptor() protoreflect.EnumDescriptor { + return file_proto_crypto_v1_signed_proto_enumTypes[0].Descriptor() +} + +func (SignatureAlgorithm) Type() protoreflect.EnumType { + return &file_proto_crypto_v1_signed_proto_enumTypes[0] +} + +func (x SignatureAlgorithm) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SignatureAlgorithm.Descriptor instead. +func (SignatureAlgorithm) EnumDescriptor() ([]byte, []int) { + return file_proto_crypto_v1_signed_proto_rawDescGZIP(), []int{0} +} + +type SignedMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Encoded header and body. + HeaderAndBody []byte `protobuf:"bytes,1,opt,name=header_and_body,json=headerAndBody,proto3" json:"header_and_body,omitempty"` + // Raw signature. The signature is computed over the concatenation of the + // header and body, and the optional associated data. + Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *SignedMessage) Reset() { + *x = SignedMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_crypto_v1_signed_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignedMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignedMessage) ProtoMessage() {} + +func (x *SignedMessage) ProtoReflect() protoreflect.Message { + mi := &file_proto_crypto_v1_signed_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 SignedMessage.ProtoReflect.Descriptor instead. +func (*SignedMessage) Descriptor() ([]byte, []int) { + return file_proto_crypto_v1_signed_proto_rawDescGZIP(), []int{0} +} + +func (x *SignedMessage) GetHeaderAndBody() []byte { + if x != nil { + return x.HeaderAndBody + } + return nil +} + +func (x *SignedMessage) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +type Header struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Algorithm used to compute the signature. + SignatureAlgorithm SignatureAlgorithm `protobuf:"varint,1,opt,name=signature_algorithm,json=signatureAlgorithm,proto3,enum=proto.crypto.v1.SignatureAlgorithm" json:"signature_algorithm,omitempty"` + // Optional arbitrary per-protocol key identifier. + VerificationKeyId []byte `protobuf:"bytes,2,opt,name=verification_key_id,json=verificationKeyId,proto3" json:"verification_key_id,omitempty"` + // Optional signature creation timestamp. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Optional arbitrary per-protocol metadata. + Metadata []byte `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Length of associated data that is covered by the signature, but is not + // included in the header and body. This is zero, if no associated data is + // covered by the signature. + AssociatedDataLength int32 `protobuf:"varint,5,opt,name=associated_data_length,json=associatedDataLength,proto3" json:"associated_data_length,omitempty"` +} + +func (x *Header) Reset() { + *x = Header{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_crypto_v1_signed_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Header) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Header) ProtoMessage() {} + +func (x *Header) ProtoReflect() protoreflect.Message { + mi := &file_proto_crypto_v1_signed_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 Header.ProtoReflect.Descriptor instead. +func (*Header) Descriptor() ([]byte, []int) { + return file_proto_crypto_v1_signed_proto_rawDescGZIP(), []int{1} +} + +func (x *Header) GetSignatureAlgorithm() SignatureAlgorithm { + if x != nil { + return x.SignatureAlgorithm + } + return SignatureAlgorithm_SIGNATURE_ALGORITHM_UNSPECIFIED +} + +func (x *Header) GetVerificationKeyId() []byte { + if x != nil { + return x.VerificationKeyId + } + return nil +} + +func (x *Header) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *Header) GetMetadata() []byte { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Header) GetAssociatedDataLength() int32 { + if x != nil { + return x.AssociatedDataLength + } + return 0 +} + +// Low-level representation of HeaderAndBody used for signature computation +// input. This should not be used by external code. +type HeaderAndBodyInternal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enocded header suitable for signature computation. + Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // Raw payload suitable for signature computation. + Body []byte `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *HeaderAndBodyInternal) Reset() { + *x = HeaderAndBodyInternal{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_crypto_v1_signed_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeaderAndBodyInternal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeaderAndBodyInternal) ProtoMessage() {} + +func (x *HeaderAndBodyInternal) ProtoReflect() protoreflect.Message { + mi := &file_proto_crypto_v1_signed_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 HeaderAndBodyInternal.ProtoReflect.Descriptor instead. +func (*HeaderAndBodyInternal) Descriptor() ([]byte, []int) { + return file_proto_crypto_v1_signed_proto_rawDescGZIP(), []int{2} +} + +func (x *HeaderAndBodyInternal) GetHeader() []byte { + if x != nil { + return x.Header + } + return nil +} + +func (x *HeaderAndBodyInternal) GetBody() []byte { + if x != nil { + return x.Body + } + return nil +} + +var File_proto_crypto_v1_signed_proto protoreflect.FileDescriptor + +var file_proto_crypto_v1_signed_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 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, 0x55, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x41, 0x6e, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x54, 0x0a, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x52, 0x12, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, + 0x0a, 0x16, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, + 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x43, 0x0a, 0x15, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x41, 0x6e, + 0x64, 0x42, 0x6f, 0x64, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x2a, 0xba, 0x01, 0x0a, 0x12, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x4c, + 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, + 0x52, 0x45, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x45, 0x43, 0x44, + 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, + 0x12, 0x29, 0x0a, 0x25, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x4c, + 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, + 0x54, 0x48, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x53, + 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, + 0x48, 0x4d, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x53, 0x48, + 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_crypto_v1_signed_proto_rawDescOnce sync.Once + file_proto_crypto_v1_signed_proto_rawDescData = file_proto_crypto_v1_signed_proto_rawDesc +) + +func file_proto_crypto_v1_signed_proto_rawDescGZIP() []byte { + file_proto_crypto_v1_signed_proto_rawDescOnce.Do(func() { + file_proto_crypto_v1_signed_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_crypto_v1_signed_proto_rawDescData) + }) + return file_proto_crypto_v1_signed_proto_rawDescData +} + +var file_proto_crypto_v1_signed_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_crypto_v1_signed_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_proto_crypto_v1_signed_proto_goTypes = []interface{}{ + (SignatureAlgorithm)(0), // 0: proto.crypto.v1.SignatureAlgorithm + (*SignedMessage)(nil), // 1: proto.crypto.v1.SignedMessage + (*Header)(nil), // 2: proto.crypto.v1.Header + (*HeaderAndBodyInternal)(nil), // 3: proto.crypto.v1.HeaderAndBodyInternal + (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp +} +var file_proto_crypto_v1_signed_proto_depIdxs = []int32{ + 0, // 0: proto.crypto.v1.Header.signature_algorithm:type_name -> proto.crypto.v1.SignatureAlgorithm + 4, // 1: proto.crypto.v1.Header.timestamp:type_name -> google.protobuf.Timestamp + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_proto_crypto_v1_signed_proto_init() } +func file_proto_crypto_v1_signed_proto_init() { + if File_proto_crypto_v1_signed_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_crypto_v1_signed_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignedMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_crypto_v1_signed_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Header); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_crypto_v1_signed_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeaderAndBodyInternal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_crypto_v1_signed_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_crypto_v1_signed_proto_goTypes, + DependencyIndexes: file_proto_crypto_v1_signed_proto_depIdxs, + EnumInfos: file_proto_crypto_v1_signed_proto_enumTypes, + MessageInfos: file_proto_crypto_v1_signed_proto_msgTypes, + }.Build() + File_proto_crypto_v1_signed_proto = out.File + file_proto_crypto_v1_signed_proto_rawDesc = nil + file_proto_crypto_v1_signed_proto_goTypes = nil + file_proto_crypto_v1_signed_proto_depIdxs = nil +} diff --git a/bufgen/proto/daemon/v1/daemon.pb.go b/bufgen/proto/daemon/v1/daemon.pb.go new file mode 100644 index 0000000000..42a3d77482 --- /dev/null +++ b/bufgen/proto/daemon/v1/daemon.pb.go @@ -0,0 +1,2265 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/daemon/v1/daemon.proto + +package daemon + +import ( + drkey "github.com/scionproto/scion/pkg/proto/drkey" + 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 LinkType int32 + +const ( + // Unspecified link type. + LinkType_LINK_TYPE_UNSPECIFIED LinkType = 0 + // Direct physical connection. + LinkType_LINK_TYPE_DIRECT LinkType = 1 + // Connection with local routing/switching. + LinkType_LINK_TYPE_MULTI_HOP LinkType = 2 + // Connection overlayed over publicly routed Internet. + LinkType_LINK_TYPE_OPEN_NET LinkType = 3 +) + +// Enum value maps for LinkType. +var ( + LinkType_name = map[int32]string{ + 0: "LINK_TYPE_UNSPECIFIED", + 1: "LINK_TYPE_DIRECT", + 2: "LINK_TYPE_MULTI_HOP", + 3: "LINK_TYPE_OPEN_NET", + } + LinkType_value = map[string]int32{ + "LINK_TYPE_UNSPECIFIED": 0, + "LINK_TYPE_DIRECT": 1, + "LINK_TYPE_MULTI_HOP": 2, + "LINK_TYPE_OPEN_NET": 3, + } +) + +func (x LinkType) Enum() *LinkType { + p := new(LinkType) + *p = x + return p +} + +func (x LinkType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LinkType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_daemon_v1_daemon_proto_enumTypes[0].Descriptor() +} + +func (LinkType) Type() protoreflect.EnumType { + return &file_proto_daemon_v1_daemon_proto_enumTypes[0] +} + +func (x LinkType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LinkType.Descriptor instead. +func (LinkType) EnumDescriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{0} +} + +type PathsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of the source of the path request. + SourceIsdAs uint64 `protobuf:"varint,1,opt,name=source_isd_as,json=sourceIsdAs,proto3" json:"source_isd_as,omitempty"` + // ISD-AS of the destination of the path request. + DestinationIsdAs uint64 `protobuf:"varint,2,opt,name=destination_isd_as,json=destinationIsdAs,proto3" json:"destination_isd_as,omitempty"` + // Choose to fetch fresh paths for this request instead + // of having the server reply from its cache. + Refresh bool `protobuf:"varint,3,opt,name=refresh,proto3" json:"refresh,omitempty"` + // Request hidden paths instead of standard paths. + Hidden bool `protobuf:"varint,4,opt,name=hidden,proto3" json:"hidden,omitempty"` +} + +func (x *PathsRequest) Reset() { + *x = PathsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathsRequest) ProtoMessage() {} + +func (x *PathsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 PathsRequest.ProtoReflect.Descriptor instead. +func (*PathsRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{0} +} + +func (x *PathsRequest) GetSourceIsdAs() uint64 { + if x != nil { + return x.SourceIsdAs + } + return 0 +} + +func (x *PathsRequest) GetDestinationIsdAs() uint64 { + if x != nil { + return x.DestinationIsdAs + } + return 0 +} + +func (x *PathsRequest) GetRefresh() bool { + if x != nil { + return x.Refresh + } + return false +} + +func (x *PathsRequest) GetHidden() bool { + if x != nil { + return x.Hidden + } + return false +} + +type PathsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of paths found by the daemon. + Paths []*Path `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"` +} + +func (x *PathsResponse) Reset() { + *x = PathsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathsResponse) ProtoMessage() {} + +func (x *PathsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 PathsResponse.ProtoReflect.Descriptor instead. +func (*PathsResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{1} +} + +func (x *PathsResponse) GetPaths() []*Path { + if x != nil { + return x.Paths + } + return nil +} + +type Path struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The raw data-plane path. + Raw []byte `protobuf:"bytes,1,opt,name=raw,proto3" json:"raw,omitempty"` + // Interface for exiting the local AS using this path. + Interface *Interface `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"` + // The list of interfaces the path is composed of. + Interfaces []*PathInterface `protobuf:"bytes,3,rep,name=interfaces,proto3" json:"interfaces,omitempty"` + // The maximum transmission unit (MTU) on the path. + Mtu uint32 `protobuf:"varint,4,opt,name=mtu,proto3" json:"mtu,omitempty"` + // The point in time when this path expires. In seconds since UNIX epoch. + Expiration *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expiration,proto3" json:"expiration,omitempty"` + // Latency lists the latencies between any two consecutive interfaces. + // Entry i describes the latency between interface i and i+1. + // Consequently, there are N-1 entries for N interfaces. + // A 0-value indicates that the AS did not announce a latency for this hop. + Latency []*durationpb.Duration `protobuf:"bytes,6,rep,name=latency,proto3" json:"latency,omitempty"` + // Bandwidth lists the bandwidth between any two consecutive interfaces, in + // Kbit/s. + // Entry i describes the bandwidth between interfaces i and i+1. + // A 0-value indicates that the AS did not announce a bandwidth for this + // hop. + Bandwidth []uint64 `protobuf:"varint,7,rep,packed,name=bandwidth,proto3" json:"bandwidth,omitempty"` + // Geo lists the geographical position of the border routers along the + // path. + // Entry i describes the position of the router for interface i. + // A 0-value indicates that the AS did not announce a position for this + // router. + Geo []*GeoCoordinates `protobuf:"bytes,8,rep,name=geo,proto3" json:"geo,omitempty"` + // LinkType contains the announced link type of inter-domain links. + // Entry i describes the link between interfaces 2*i and 2*i+1. + LinkType []LinkType `protobuf:"varint,9,rep,packed,name=link_type,json=linkType,proto3,enum=proto.daemon.v1.LinkType" json:"link_type,omitempty"` + // InternalHops lists the number of AS internal hops for the ASes on path. + // Entry i describes the hop between interfaces 2*i+1 and 2*i+2 in the same + // AS. + // Consequently, there are no entries for the first and last ASes, as these + // are not traversed completely by the path. + InternalHops []uint32 `protobuf:"varint,10,rep,packed,name=internal_hops,json=internalHops,proto3" json:"internal_hops,omitempty"` + // Notes contains the notes added by ASes on the path, in the order of + // occurrence. + // Entry i is the note of AS i on the path. + Notes []string `protobuf:"bytes,11,rep,name=notes,proto3" json:"notes,omitempty"` + // EpicAuths contains the EPIC authenticators used to calculate the PHVF and LHVF. + EpicAuths *EpicAuths `protobuf:"bytes,12,opt,name=epic_auths,json=epicAuths,proto3" json:"epic_auths,omitempty"` +} + +func (x *Path) Reset() { + *x = Path{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Path) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Path) ProtoMessage() {} + +func (x *Path) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 Path.ProtoReflect.Descriptor instead. +func (*Path) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{2} +} + +func (x *Path) GetRaw() []byte { + if x != nil { + return x.Raw + } + return nil +} + +func (x *Path) GetInterface() *Interface { + if x != nil { + return x.Interface + } + return nil +} + +func (x *Path) GetInterfaces() []*PathInterface { + if x != nil { + return x.Interfaces + } + return nil +} + +func (x *Path) GetMtu() uint32 { + if x != nil { + return x.Mtu + } + return 0 +} + +func (x *Path) GetExpiration() *timestamppb.Timestamp { + if x != nil { + return x.Expiration + } + return nil +} + +func (x *Path) GetLatency() []*durationpb.Duration { + if x != nil { + return x.Latency + } + return nil +} + +func (x *Path) GetBandwidth() []uint64 { + if x != nil { + return x.Bandwidth + } + return nil +} + +func (x *Path) GetGeo() []*GeoCoordinates { + if x != nil { + return x.Geo + } + return nil +} + +func (x *Path) GetLinkType() []LinkType { + if x != nil { + return x.LinkType + } + return nil +} + +func (x *Path) GetInternalHops() []uint32 { + if x != nil { + return x.InternalHops + } + return nil +} + +func (x *Path) GetNotes() []string { + if x != nil { + return x.Notes + } + return nil +} + +func (x *Path) GetEpicAuths() *EpicAuths { + if x != nil { + return x.EpicAuths + } + return nil +} + +type EpicAuths struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // AuthPHVF is the authenticator use to calculate the PHVF. + AuthPhvf []byte `protobuf:"bytes,1,opt,name=auth_phvf,json=authPhvf,proto3" json:"auth_phvf,omitempty"` + // AuthLHVF is the authenticator use to calculate the LHVF. + AuthLhvf []byte `protobuf:"bytes,2,opt,name=auth_lhvf,json=authLhvf,proto3" json:"auth_lhvf,omitempty"` +} + +func (x *EpicAuths) Reset() { + *x = EpicAuths{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EpicAuths) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EpicAuths) ProtoMessage() {} + +func (x *EpicAuths) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 EpicAuths.ProtoReflect.Descriptor instead. +func (*EpicAuths) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{3} +} + +func (x *EpicAuths) GetAuthPhvf() []byte { + if x != nil { + return x.AuthPhvf + } + return nil +} + +func (x *EpicAuths) GetAuthLhvf() []byte { + if x != nil { + return x.AuthLhvf + } + return nil +} + +type PathInterface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS the interface belongs to. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // ID of the interface in the AS. + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *PathInterface) Reset() { + *x = PathInterface{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathInterface) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathInterface) ProtoMessage() {} + +func (x *PathInterface) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 PathInterface.ProtoReflect.Descriptor instead. +func (*PathInterface) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{4} +} + +func (x *PathInterface) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *PathInterface) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type GeoCoordinates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Latitude of the geographic coordinate, in the WGS 84 datum. + Latitude float32 `protobuf:"fixed32,1,opt,name=latitude,proto3" json:"latitude,omitempty"` + // Longitude of the geographic coordinate, in the WGS 84 datum. + Longitude float32 `protobuf:"fixed32,2,opt,name=longitude,proto3" json:"longitude,omitempty"` + // Civic address of the location. + Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *GeoCoordinates) Reset() { + *x = GeoCoordinates{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeoCoordinates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeoCoordinates) ProtoMessage() {} + +func (x *GeoCoordinates) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 GeoCoordinates.ProtoReflect.Descriptor instead. +func (*GeoCoordinates) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{5} +} + +func (x *GeoCoordinates) GetLatitude() float32 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *GeoCoordinates) GetLongitude() float32 { + if x != nil { + return x.Longitude + } + return 0 +} + +func (x *GeoCoordinates) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +type ASRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of the AS information is requested about. The 0 value + // can be used to discover the ISD-AS number of the local AS. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` +} + +func (x *ASRequest) Reset() { + *x = ASRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASRequest) ProtoMessage() {} + +func (x *ASRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 ASRequest.ProtoReflect.Descriptor instead. +func (*ASRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{6} +} + +func (x *ASRequest) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +type ASResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS of the AS information was requested about. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // Indicates whether the local AS is core. + Core bool `protobuf:"varint,2,opt,name=core,proto3" json:"core,omitempty"` + // The maximum transmission unit (MTU) in the local AS. + Mtu uint32 `protobuf:"varint,3,opt,name=mtu,proto3" json:"mtu,omitempty"` +} + +func (x *ASResponse) Reset() { + *x = ASResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ASResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ASResponse) ProtoMessage() {} + +func (x *ASResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 ASResponse.ProtoReflect.Descriptor instead. +func (*ASResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{7} +} + +func (x *ASResponse) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *ASResponse) GetCore() bool { + if x != nil { + return x.Core + } + return false +} + +func (x *ASResponse) GetMtu() uint32 { + if x != nil { + return x.Mtu + } + return 0 +} + +type InterfacesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InterfacesRequest) Reset() { + *x = InterfacesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterfacesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterfacesRequest) ProtoMessage() {} + +func (x *InterfacesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 InterfacesRequest.ProtoReflect.Descriptor instead. +func (*InterfacesRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{8} +} + +type InterfacesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Map from SCION interface IDs in the local AS to interface details. + Interfaces map[uint64]*Interface `protobuf:"bytes,1,rep,name=interfaces,proto3" json:"interfaces,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *InterfacesResponse) Reset() { + *x = InterfacesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InterfacesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InterfacesResponse) ProtoMessage() {} + +func (x *InterfacesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 InterfacesResponse.ProtoReflect.Descriptor instead. +func (*InterfacesResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{9} +} + +func (x *InterfacesResponse) GetInterfaces() map[uint64]*Interface { + if x != nil { + return x.Interfaces + } + return nil +} + +type Interface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Underlay address to exit through the interface. + Address *Underlay `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *Interface) Reset() { + *x = Interface{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Interface) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Interface) ProtoMessage() {} + +func (x *Interface) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 Interface.ProtoReflect.Descriptor instead. +func (*Interface) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{10} +} + +func (x *Interface) GetAddress() *Underlay { + if x != nil { + return x.Address + } + return nil +} + +type ServicesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ServicesRequest) Reset() { + *x = ServicesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicesRequest) ProtoMessage() {} + +func (x *ServicesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 ServicesRequest.ProtoReflect.Descriptor instead. +func (*ServicesRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{11} +} + +type ServicesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Map from service names to known services. + Services map[string]*ListService `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ServicesResponse) Reset() { + *x = ServicesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicesResponse) ProtoMessage() {} + +func (x *ServicesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 ServicesResponse.ProtoReflect.Descriptor instead. +func (*ServicesResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{12} +} + +func (x *ServicesResponse) GetServices() map[string]*ListService { + if x != nil { + return x.Services + } + return nil +} + +type ListService struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Services is the list of services. + Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` +} + +func (x *ListService) Reset() { + *x = ListService{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListService) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListService) ProtoMessage() {} + +func (x *ListService) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 ListService.ProtoReflect.Descriptor instead. +func (*ListService) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{13} +} + +func (x *ListService) GetServices() []*Service { + if x != nil { + return x.Services + } + return nil +} + +type Service struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Address of the service instance, in RFC 3986 format. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *Service) Reset() { + *x = Service{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Service) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Service) ProtoMessage() {} + +func (x *Service) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 Service.ProtoReflect.Descriptor instead. +func (*Service) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{14} +} + +func (x *Service) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +// Address of an underlay socket. +type Underlay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The underlay address in standard IP:port notation (e.g., 192.0.2.1:10000 + // or [2001:db8::1]:10000). The underlay is UDP/IP. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *Underlay) Reset() { + *x = Underlay{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Underlay) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Underlay) ProtoMessage() {} + +func (x *Underlay) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 Underlay.ProtoReflect.Descriptor instead. +func (*Underlay) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{15} +} + +func (x *Underlay) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +type NotifyInterfaceDownRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ISD-AS the failing interface belongs to. + IsdAs uint64 `protobuf:"varint,1,opt,name=isd_as,json=isdAs,proto3" json:"isd_as,omitempty"` + // ID of the failing interface. + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *NotifyInterfaceDownRequest) Reset() { + *x = NotifyInterfaceDownRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyInterfaceDownRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyInterfaceDownRequest) ProtoMessage() {} + +func (x *NotifyInterfaceDownRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 NotifyInterfaceDownRequest.ProtoReflect.Descriptor instead. +func (*NotifyInterfaceDownRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{16} +} + +func (x *NotifyInterfaceDownRequest) GetIsdAs() uint64 { + if x != nil { + return x.IsdAs + } + return 0 +} + +func (x *NotifyInterfaceDownRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type NotifyInterfaceDownResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NotifyInterfaceDownResponse) Reset() { + *x = NotifyInterfaceDownResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyInterfaceDownResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyInterfaceDownResponse) ProtoMessage() {} + +func (x *NotifyInterfaceDownResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 NotifyInterfaceDownResponse.ProtoReflect.Descriptor instead. +func (*NotifyInterfaceDownResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{17} +} + +type DRKeyHostASRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Src Host of the request DRKey. + SrcHost string `protobuf:"bytes,5,opt,name=src_host,json=srcHost,proto3" json:"src_host,omitempty"` +} + +func (x *DRKeyHostASRequest) Reset() { + *x = DRKeyHostASRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostASRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostASRequest) ProtoMessage() {} + +func (x *DRKeyHostASRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyHostASRequest.ProtoReflect.Descriptor instead. +func (*DRKeyHostASRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{18} +} + +func (x *DRKeyHostASRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyHostASRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyHostASRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyHostASRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyHostASRequest) GetSrcHost() string { + if x != nil { + return x.SrcHost + } + return "" +} + +type DRKeyHostASResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyHostASResponse) Reset() { + *x = DRKeyHostASResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostASResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostASResponse) ProtoMessage() {} + +func (x *DRKeyHostASResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyHostASResponse.ProtoReflect.Descriptor instead. +func (*DRKeyHostASResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{19} +} + +func (x *DRKeyHostASResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyHostASResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyHostASResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyASHostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Dst Host of the request DRKey. + DstHost string `protobuf:"bytes,5,opt,name=dst_host,json=dstHost,proto3" json:"dst_host,omitempty"` +} + +func (x *DRKeyASHostRequest) Reset() { + *x = DRKeyASHostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyASHostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyASHostRequest) ProtoMessage() {} + +func (x *DRKeyASHostRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyASHostRequest.ProtoReflect.Descriptor instead. +func (*DRKeyASHostRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{20} +} + +func (x *DRKeyASHostRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyASHostRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyASHostRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyASHostRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyASHostRequest) GetDstHost() string { + if x != nil { + return x.DstHost + } + return "" +} + +type DRKeyASHostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyASHostResponse) Reset() { + *x = DRKeyASHostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyASHostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyASHostResponse) ProtoMessage() {} + +func (x *DRKeyASHostResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyASHostResponse.ProtoReflect.Descriptor instead. +func (*DRKeyASHostResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{21} +} + +func (x *DRKeyASHostResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyASHostResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyASHostResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +type DRKeyHostHostRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Point in time where requested key is valid. + ValTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=val_time,json=valTime,proto3" json:"val_time,omitempty"` + // Protocol value. + ProtocolId drkey.Protocol `protobuf:"varint,2,opt,name=protocol_id,json=protocolId,proto3,enum=proto.drkey.v1.Protocol" json:"protocol_id,omitempty"` + // Src ISD-AS of the requested DRKey. + SrcIa uint64 `protobuf:"varint,3,opt,name=src_ia,json=srcIa,proto3" json:"src_ia,omitempty"` + // Dst ISD-AS of the requested DRKey. + DstIa uint64 `protobuf:"varint,4,opt,name=dst_ia,json=dstIa,proto3" json:"dst_ia,omitempty"` + // Src Host of the request DRKey. + SrcHost string `protobuf:"bytes,5,opt,name=src_host,json=srcHost,proto3" json:"src_host,omitempty"` + // Dst Host of the request DRKey. + DstHost string `protobuf:"bytes,6,opt,name=dst_host,json=dstHost,proto3" json:"dst_host,omitempty"` +} + +func (x *DRKeyHostHostRequest) Reset() { + *x = DRKeyHostHostRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostHostRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostHostRequest) ProtoMessage() {} + +func (x *DRKeyHostHostRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyHostHostRequest.ProtoReflect.Descriptor instead. +func (*DRKeyHostHostRequest) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{22} +} + +func (x *DRKeyHostHostRequest) GetValTime() *timestamppb.Timestamp { + if x != nil { + return x.ValTime + } + return nil +} + +func (x *DRKeyHostHostRequest) GetProtocolId() drkey.Protocol { + if x != nil { + return x.ProtocolId + } + return drkey.Protocol(0) +} + +func (x *DRKeyHostHostRequest) GetSrcIa() uint64 { + if x != nil { + return x.SrcIa + } + return 0 +} + +func (x *DRKeyHostHostRequest) GetDstIa() uint64 { + if x != nil { + return x.DstIa + } + return 0 +} + +func (x *DRKeyHostHostRequest) GetSrcHost() string { + if x != nil { + return x.SrcHost + } + return "" +} + +func (x *DRKeyHostHostRequest) GetDstHost() string { + if x != nil { + return x.DstHost + } + return "" +} + +type DRKeyHostHostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Begin of validity period of DRKey. + EpochBegin *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=epoch_begin,json=epochBegin,proto3" json:"epoch_begin,omitempty"` + // End of validity period of DRKey. + EpochEnd *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=epoch_end,json=epochEnd,proto3" json:"epoch_end,omitempty"` + // Level2 key. + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *DRKeyHostHostResponse) Reset() { + *x = DRKeyHostHostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_daemon_v1_daemon_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DRKeyHostHostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DRKeyHostHostResponse) ProtoMessage() {} + +func (x *DRKeyHostHostResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_daemon_v1_daemon_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 DRKeyHostHostResponse.ProtoReflect.Descriptor instead. +func (*DRKeyHostHostResponse) Descriptor() ([]byte, []int) { + return file_proto_daemon_v1_daemon_proto_rawDescGZIP(), []int{23} +} + +func (x *DRKeyHostHostResponse) GetEpochBegin() *timestamppb.Timestamp { + if x != nil { + return x.EpochBegin + } + return nil +} + +func (x *DRKeyHostHostResponse) GetEpochEnd() *timestamppb.Timestamp { + if x != nil { + return x.EpochEnd + } + return nil +} + +func (x *DRKeyHostHostResponse) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +var File_proto_daemon_v1_daemon_proto protoreflect.FileDescriptor + +var file_proto_daemon_v1_daemon_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 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, + 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, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2f, 0x76, 0x31, + 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, + 0x0c, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, + 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x73, 0x64, 0x41, + 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x73, 0x64, 0x41, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x22, 0x3c, 0x0a, 0x0d, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, + 0x94, 0x04, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x38, 0x0a, 0x09, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, + 0x03, 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, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x70, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x48, 0x6f, 0x70, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x65, + 0x70, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x70, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x73, 0x52, 0x09, 0x65, 0x70, 0x69, + 0x63, 0x41, 0x75, 0x74, 0x68, 0x73, 0x22, 0x45, 0x0a, 0x09, 0x45, 0x70, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x68, 0x76, 0x66, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x50, 0x68, 0x76, 0x66, + 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x68, 0x76, 0x66, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4c, 0x68, 0x76, 0x66, 0x22, 0x36, 0x0a, + 0x0d, 0x50, 0x61, 0x74, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x69, 0x73, 0x64, 0x41, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x0e, 0x47, 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x22, 0x0a, 0x09, 0x41, + 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x64, 0x5f, + 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x73, 0x64, 0x41, 0x73, 0x22, + 0x49, 0x0a, 0x0a, 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, + 0x06, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, + 0x73, 0x64, 0x41, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0x13, 0x0a, 0x11, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xc4, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x1a, 0x59, 0x0a, 0x0f, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x11, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xba, 0x01, 0x0a, 0x10, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4b, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x59, 0x0a, + 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x43, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x1b, 0x0a, + 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x24, 0x0a, 0x08, 0x55, 0x6e, + 0x64, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x43, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, + 0x0a, 0x06, 0x69, 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x69, 0x73, 0x64, 0x41, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, + 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, + 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x15, 0x0a, + 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, + 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x52, 0x4b, 0x65, 0x79, + 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, + 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x44, 0x52, 0x4b, 0x65, 0x79, + 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, 0x61, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x64, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x52, 0x4b, + 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, 0x0a, + 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xec, 0x01, 0x0a, 0x14, 0x44, 0x52, 0x4b, + 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x35, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x07, 0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x5f, 0x69, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x72, 0x63, 0x49, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, + 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x64, 0x73, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x64, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x44, 0x52, 0x4b, 0x65, + 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, + 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, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x37, + 0x0a, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x2a, 0x6c, 0x0a, 0x08, 0x4c, 0x69, 0x6e, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, + 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x48, 0x4f, 0x50, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x45, + 0x4e, 0x5f, 0x4e, 0x45, 0x54, 0x10, 0x03, 0x32, 0xd4, 0x05, 0x0a, 0x0d, 0x44, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x50, 0x61, 0x74, + 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x02, 0x41, 0x53, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x53, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, + 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, + 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, + 0x08, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x72, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0b, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x41, 0x53, 0x48, + 0x6f, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x41, 0x53, 0x48, 0x6f, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, + 0x41, 0x53, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x5a, 0x0a, 0x0b, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x12, + 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x53, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, + 0x41, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0d, + 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x25, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x61, 0x65, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x52, 0x4b, 0x65, 0x79, 0x48, 0x6f, 0x73, 0x74, + 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2e, + 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, + 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_daemon_v1_daemon_proto_rawDescOnce sync.Once + file_proto_daemon_v1_daemon_proto_rawDescData = file_proto_daemon_v1_daemon_proto_rawDesc +) + +func file_proto_daemon_v1_daemon_proto_rawDescGZIP() []byte { + file_proto_daemon_v1_daemon_proto_rawDescOnce.Do(func() { + file_proto_daemon_v1_daemon_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_daemon_v1_daemon_proto_rawDescData) + }) + return file_proto_daemon_v1_daemon_proto_rawDescData +} + +var file_proto_daemon_v1_daemon_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_daemon_v1_daemon_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_proto_daemon_v1_daemon_proto_goTypes = []interface{}{ + (LinkType)(0), // 0: proto.daemon.v1.LinkType + (*PathsRequest)(nil), // 1: proto.daemon.v1.PathsRequest + (*PathsResponse)(nil), // 2: proto.daemon.v1.PathsResponse + (*Path)(nil), // 3: proto.daemon.v1.Path + (*EpicAuths)(nil), // 4: proto.daemon.v1.EpicAuths + (*PathInterface)(nil), // 5: proto.daemon.v1.PathInterface + (*GeoCoordinates)(nil), // 6: proto.daemon.v1.GeoCoordinates + (*ASRequest)(nil), // 7: proto.daemon.v1.ASRequest + (*ASResponse)(nil), // 8: proto.daemon.v1.ASResponse + (*InterfacesRequest)(nil), // 9: proto.daemon.v1.InterfacesRequest + (*InterfacesResponse)(nil), // 10: proto.daemon.v1.InterfacesResponse + (*Interface)(nil), // 11: proto.daemon.v1.Interface + (*ServicesRequest)(nil), // 12: proto.daemon.v1.ServicesRequest + (*ServicesResponse)(nil), // 13: proto.daemon.v1.ServicesResponse + (*ListService)(nil), // 14: proto.daemon.v1.ListService + (*Service)(nil), // 15: proto.daemon.v1.Service + (*Underlay)(nil), // 16: proto.daemon.v1.Underlay + (*NotifyInterfaceDownRequest)(nil), // 17: proto.daemon.v1.NotifyInterfaceDownRequest + (*NotifyInterfaceDownResponse)(nil), // 18: proto.daemon.v1.NotifyInterfaceDownResponse + (*DRKeyHostASRequest)(nil), // 19: proto.daemon.v1.DRKeyHostASRequest + (*DRKeyHostASResponse)(nil), // 20: proto.daemon.v1.DRKeyHostASResponse + (*DRKeyASHostRequest)(nil), // 21: proto.daemon.v1.DRKeyASHostRequest + (*DRKeyASHostResponse)(nil), // 22: proto.daemon.v1.DRKeyASHostResponse + (*DRKeyHostHostRequest)(nil), // 23: proto.daemon.v1.DRKeyHostHostRequest + (*DRKeyHostHostResponse)(nil), // 24: proto.daemon.v1.DRKeyHostHostResponse + nil, // 25: proto.daemon.v1.InterfacesResponse.InterfacesEntry + nil, // 26: proto.daemon.v1.ServicesResponse.ServicesEntry + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 28: google.protobuf.Duration + (drkey.Protocol)(0), // 29: proto.drkey.v1.Protocol +} +var file_proto_daemon_v1_daemon_proto_depIdxs = []int32{ + 3, // 0: proto.daemon.v1.PathsResponse.paths:type_name -> proto.daemon.v1.Path + 11, // 1: proto.daemon.v1.Path.interface:type_name -> proto.daemon.v1.Interface + 5, // 2: proto.daemon.v1.Path.interfaces:type_name -> proto.daemon.v1.PathInterface + 27, // 3: proto.daemon.v1.Path.expiration:type_name -> google.protobuf.Timestamp + 28, // 4: proto.daemon.v1.Path.latency:type_name -> google.protobuf.Duration + 6, // 5: proto.daemon.v1.Path.geo:type_name -> proto.daemon.v1.GeoCoordinates + 0, // 6: proto.daemon.v1.Path.link_type:type_name -> proto.daemon.v1.LinkType + 4, // 7: proto.daemon.v1.Path.epic_auths:type_name -> proto.daemon.v1.EpicAuths + 25, // 8: proto.daemon.v1.InterfacesResponse.interfaces:type_name -> proto.daemon.v1.InterfacesResponse.InterfacesEntry + 16, // 9: proto.daemon.v1.Interface.address:type_name -> proto.daemon.v1.Underlay + 26, // 10: proto.daemon.v1.ServicesResponse.services:type_name -> proto.daemon.v1.ServicesResponse.ServicesEntry + 15, // 11: proto.daemon.v1.ListService.services:type_name -> proto.daemon.v1.Service + 27, // 12: proto.daemon.v1.DRKeyHostASRequest.val_time:type_name -> google.protobuf.Timestamp + 29, // 13: proto.daemon.v1.DRKeyHostASRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 27, // 14: proto.daemon.v1.DRKeyHostASResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 27, // 15: proto.daemon.v1.DRKeyHostASResponse.epoch_end:type_name -> google.protobuf.Timestamp + 27, // 16: proto.daemon.v1.DRKeyASHostRequest.val_time:type_name -> google.protobuf.Timestamp + 29, // 17: proto.daemon.v1.DRKeyASHostRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 27, // 18: proto.daemon.v1.DRKeyASHostResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 27, // 19: proto.daemon.v1.DRKeyASHostResponse.epoch_end:type_name -> google.protobuf.Timestamp + 27, // 20: proto.daemon.v1.DRKeyHostHostRequest.val_time:type_name -> google.protobuf.Timestamp + 29, // 21: proto.daemon.v1.DRKeyHostHostRequest.protocol_id:type_name -> proto.drkey.v1.Protocol + 27, // 22: proto.daemon.v1.DRKeyHostHostResponse.epoch_begin:type_name -> google.protobuf.Timestamp + 27, // 23: proto.daemon.v1.DRKeyHostHostResponse.epoch_end:type_name -> google.protobuf.Timestamp + 11, // 24: proto.daemon.v1.InterfacesResponse.InterfacesEntry.value:type_name -> proto.daemon.v1.Interface + 14, // 25: proto.daemon.v1.ServicesResponse.ServicesEntry.value:type_name -> proto.daemon.v1.ListService + 1, // 26: proto.daemon.v1.DaemonService.Paths:input_type -> proto.daemon.v1.PathsRequest + 7, // 27: proto.daemon.v1.DaemonService.AS:input_type -> proto.daemon.v1.ASRequest + 9, // 28: proto.daemon.v1.DaemonService.Interfaces:input_type -> proto.daemon.v1.InterfacesRequest + 12, // 29: proto.daemon.v1.DaemonService.Services:input_type -> proto.daemon.v1.ServicesRequest + 17, // 30: proto.daemon.v1.DaemonService.NotifyInterfaceDown:input_type -> proto.daemon.v1.NotifyInterfaceDownRequest + 21, // 31: proto.daemon.v1.DaemonService.DRKeyASHost:input_type -> proto.daemon.v1.DRKeyASHostRequest + 19, // 32: proto.daemon.v1.DaemonService.DRKeyHostAS:input_type -> proto.daemon.v1.DRKeyHostASRequest + 23, // 33: proto.daemon.v1.DaemonService.DRKeyHostHost:input_type -> proto.daemon.v1.DRKeyHostHostRequest + 2, // 34: proto.daemon.v1.DaemonService.Paths:output_type -> proto.daemon.v1.PathsResponse + 8, // 35: proto.daemon.v1.DaemonService.AS:output_type -> proto.daemon.v1.ASResponse + 10, // 36: proto.daemon.v1.DaemonService.Interfaces:output_type -> proto.daemon.v1.InterfacesResponse + 13, // 37: proto.daemon.v1.DaemonService.Services:output_type -> proto.daemon.v1.ServicesResponse + 18, // 38: proto.daemon.v1.DaemonService.NotifyInterfaceDown:output_type -> proto.daemon.v1.NotifyInterfaceDownResponse + 22, // 39: proto.daemon.v1.DaemonService.DRKeyASHost:output_type -> proto.daemon.v1.DRKeyASHostResponse + 20, // 40: proto.daemon.v1.DaemonService.DRKeyHostAS:output_type -> proto.daemon.v1.DRKeyHostASResponse + 24, // 41: proto.daemon.v1.DaemonService.DRKeyHostHost:output_type -> proto.daemon.v1.DRKeyHostHostResponse + 34, // [34:42] is the sub-list for method output_type + 26, // [26:34] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name +} + +func init() { file_proto_daemon_v1_daemon_proto_init() } +func file_proto_daemon_v1_daemon_proto_init() { + if File_proto_daemon_v1_daemon_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_daemon_v1_daemon_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Path); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EpicAuths); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathInterface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeoCoordinates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ASResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterfacesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InterfacesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Interface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListService); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Service); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Underlay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotifyInterfaceDownRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotifyInterfaceDownResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostASRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostASResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyASHostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyASHostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostHostRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_daemon_v1_daemon_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DRKeyHostHostResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_daemon_v1_daemon_proto_rawDesc, + NumEnums: 1, + NumMessages: 26, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_daemon_v1_daemon_proto_goTypes, + DependencyIndexes: file_proto_daemon_v1_daemon_proto_depIdxs, + EnumInfos: file_proto_daemon_v1_daemon_proto_enumTypes, + MessageInfos: file_proto_daemon_v1_daemon_proto_msgTypes, + }.Build() + File_proto_daemon_v1_daemon_proto = out.File + file_proto_daemon_v1_daemon_proto_rawDesc = nil + file_proto_daemon_v1_daemon_proto_goTypes = nil + file_proto_daemon_v1_daemon_proto_depIdxs = nil +} diff --git a/bufgen/proto/daemon/v1/daemonconnect/daemon.connect.go b/bufgen/proto/daemon/v1/daemonconnect/daemon.connect.go new file mode 100644 index 0000000000..efa26f0df2 --- /dev/null +++ b/bufgen/proto/daemon/v1/daemonconnect/daemon.connect.go @@ -0,0 +1,325 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/daemon/v1/daemon.proto + +package daemonconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + daemon "github.com/scionproto/scion/pkg/proto/daemon" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // DaemonServiceName is the fully-qualified name of the DaemonService service. + DaemonServiceName = "proto.daemon.v1.DaemonService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // DaemonServicePathsProcedure is the fully-qualified name of the DaemonService's Paths RPC. + DaemonServicePathsProcedure = "/proto.daemon.v1.DaemonService/Paths" + // DaemonServiceASProcedure is the fully-qualified name of the DaemonService's AS RPC. + DaemonServiceASProcedure = "/proto.daemon.v1.DaemonService/AS" + // DaemonServiceInterfacesProcedure is the fully-qualified name of the DaemonService's Interfaces + // RPC. + DaemonServiceInterfacesProcedure = "/proto.daemon.v1.DaemonService/Interfaces" + // DaemonServiceServicesProcedure is the fully-qualified name of the DaemonService's Services RPC. + DaemonServiceServicesProcedure = "/proto.daemon.v1.DaemonService/Services" + // DaemonServiceNotifyInterfaceDownProcedure is the fully-qualified name of the DaemonService's + // NotifyInterfaceDown RPC. + DaemonServiceNotifyInterfaceDownProcedure = "/proto.daemon.v1.DaemonService/NotifyInterfaceDown" + // DaemonServiceDRKeyASHostProcedure is the fully-qualified name of the DaemonService's DRKeyASHost + // RPC. + DaemonServiceDRKeyASHostProcedure = "/proto.daemon.v1.DaemonService/DRKeyASHost" + // DaemonServiceDRKeyHostASProcedure is the fully-qualified name of the DaemonService's DRKeyHostAS + // RPC. + DaemonServiceDRKeyHostASProcedure = "/proto.daemon.v1.DaemonService/DRKeyHostAS" + // DaemonServiceDRKeyHostHostProcedure is the fully-qualified name of the DaemonService's + // DRKeyHostHost RPC. + DaemonServiceDRKeyHostHostProcedure = "/proto.daemon.v1.DaemonService/DRKeyHostHost" +) + +// DaemonServiceClient is a client for the proto.daemon.v1.DaemonService service. +type DaemonServiceClient interface { + // Return a set of paths to the requested destination. + Paths(context.Context, *connect.Request[daemon.PathsRequest]) (*connect.Response[daemon.PathsResponse], error) + // Return information about an AS. + AS(context.Context, *connect.Request[daemon.ASRequest]) (*connect.Response[daemon.ASResponse], error) + // Return the underlay addresses associated with + // the specified interfaces. + Interfaces(context.Context, *connect.Request[daemon.InterfacesRequest]) (*connect.Response[daemon.InterfacesResponse], error) + // Return the underlay addresses associated with the + // specified services. + Services(context.Context, *connect.Request[daemon.ServicesRequest]) (*connect.Response[daemon.ServicesResponse], error) + // Inform the SCION Daemon of a revocation. + NotifyInterfaceDown(context.Context, *connect.Request[daemon.NotifyInterfaceDownRequest]) (*connect.Response[daemon.NotifyInterfaceDownResponse], error) + // DRKeyASHost returns a key that matches the request. + DRKeyASHost(context.Context, *connect.Request[daemon.DRKeyASHostRequest]) (*connect.Response[daemon.DRKeyASHostResponse], error) + // DRKeyHostAS returns a key that matches the request. + DRKeyHostAS(context.Context, *connect.Request[daemon.DRKeyHostASRequest]) (*connect.Response[daemon.DRKeyHostASResponse], error) + // DRKeyHostHost returns a key that matches the request. + DRKeyHostHost(context.Context, *connect.Request[daemon.DRKeyHostHostRequest]) (*connect.Response[daemon.DRKeyHostHostResponse], error) +} + +// NewDaemonServiceClient constructs a client for the proto.daemon.v1.DaemonService service. By +// default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, +// and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the +// connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewDaemonServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) DaemonServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &daemonServiceClient{ + paths: connect.NewClient[daemon.PathsRequest, daemon.PathsResponse]( + httpClient, + baseURL+DaemonServicePathsProcedure, + opts..., + ), + aS: connect.NewClient[daemon.ASRequest, daemon.ASResponse]( + httpClient, + baseURL+DaemonServiceASProcedure, + opts..., + ), + interfaces: connect.NewClient[daemon.InterfacesRequest, daemon.InterfacesResponse]( + httpClient, + baseURL+DaemonServiceInterfacesProcedure, + opts..., + ), + services: connect.NewClient[daemon.ServicesRequest, daemon.ServicesResponse]( + httpClient, + baseURL+DaemonServiceServicesProcedure, + opts..., + ), + notifyInterfaceDown: connect.NewClient[daemon.NotifyInterfaceDownRequest, daemon.NotifyInterfaceDownResponse]( + httpClient, + baseURL+DaemonServiceNotifyInterfaceDownProcedure, + opts..., + ), + dRKeyASHost: connect.NewClient[daemon.DRKeyASHostRequest, daemon.DRKeyASHostResponse]( + httpClient, + baseURL+DaemonServiceDRKeyASHostProcedure, + opts..., + ), + dRKeyHostAS: connect.NewClient[daemon.DRKeyHostASRequest, daemon.DRKeyHostASResponse]( + httpClient, + baseURL+DaemonServiceDRKeyHostASProcedure, + opts..., + ), + dRKeyHostHost: connect.NewClient[daemon.DRKeyHostHostRequest, daemon.DRKeyHostHostResponse]( + httpClient, + baseURL+DaemonServiceDRKeyHostHostProcedure, + opts..., + ), + } +} + +// daemonServiceClient implements DaemonServiceClient. +type daemonServiceClient struct { + paths *connect.Client[daemon.PathsRequest, daemon.PathsResponse] + aS *connect.Client[daemon.ASRequest, daemon.ASResponse] + interfaces *connect.Client[daemon.InterfacesRequest, daemon.InterfacesResponse] + services *connect.Client[daemon.ServicesRequest, daemon.ServicesResponse] + notifyInterfaceDown *connect.Client[daemon.NotifyInterfaceDownRequest, daemon.NotifyInterfaceDownResponse] + dRKeyASHost *connect.Client[daemon.DRKeyASHostRequest, daemon.DRKeyASHostResponse] + dRKeyHostAS *connect.Client[daemon.DRKeyHostASRequest, daemon.DRKeyHostASResponse] + dRKeyHostHost *connect.Client[daemon.DRKeyHostHostRequest, daemon.DRKeyHostHostResponse] +} + +// Paths calls proto.daemon.v1.DaemonService.Paths. +func (c *daemonServiceClient) Paths(ctx context.Context, req *connect.Request[daemon.PathsRequest]) (*connect.Response[daemon.PathsResponse], error) { + return c.paths.CallUnary(ctx, req) +} + +// AS calls proto.daemon.v1.DaemonService.AS. +func (c *daemonServiceClient) AS(ctx context.Context, req *connect.Request[daemon.ASRequest]) (*connect.Response[daemon.ASResponse], error) { + return c.aS.CallUnary(ctx, req) +} + +// Interfaces calls proto.daemon.v1.DaemonService.Interfaces. +func (c *daemonServiceClient) Interfaces(ctx context.Context, req *connect.Request[daemon.InterfacesRequest]) (*connect.Response[daemon.InterfacesResponse], error) { + return c.interfaces.CallUnary(ctx, req) +} + +// Services calls proto.daemon.v1.DaemonService.Services. +func (c *daemonServiceClient) Services(ctx context.Context, req *connect.Request[daemon.ServicesRequest]) (*connect.Response[daemon.ServicesResponse], error) { + return c.services.CallUnary(ctx, req) +} + +// NotifyInterfaceDown calls proto.daemon.v1.DaemonService.NotifyInterfaceDown. +func (c *daemonServiceClient) NotifyInterfaceDown(ctx context.Context, req *connect.Request[daemon.NotifyInterfaceDownRequest]) (*connect.Response[daemon.NotifyInterfaceDownResponse], error) { + return c.notifyInterfaceDown.CallUnary(ctx, req) +} + +// DRKeyASHost calls proto.daemon.v1.DaemonService.DRKeyASHost. +func (c *daemonServiceClient) DRKeyASHost(ctx context.Context, req *connect.Request[daemon.DRKeyASHostRequest]) (*connect.Response[daemon.DRKeyASHostResponse], error) { + return c.dRKeyASHost.CallUnary(ctx, req) +} + +// DRKeyHostAS calls proto.daemon.v1.DaemonService.DRKeyHostAS. +func (c *daemonServiceClient) DRKeyHostAS(ctx context.Context, req *connect.Request[daemon.DRKeyHostASRequest]) (*connect.Response[daemon.DRKeyHostASResponse], error) { + return c.dRKeyHostAS.CallUnary(ctx, req) +} + +// DRKeyHostHost calls proto.daemon.v1.DaemonService.DRKeyHostHost. +func (c *daemonServiceClient) DRKeyHostHost(ctx context.Context, req *connect.Request[daemon.DRKeyHostHostRequest]) (*connect.Response[daemon.DRKeyHostHostResponse], error) { + return c.dRKeyHostHost.CallUnary(ctx, req) +} + +// DaemonServiceHandler is an implementation of the proto.daemon.v1.DaemonService service. +type DaemonServiceHandler interface { + // Return a set of paths to the requested destination. + Paths(context.Context, *connect.Request[daemon.PathsRequest]) (*connect.Response[daemon.PathsResponse], error) + // Return information about an AS. + AS(context.Context, *connect.Request[daemon.ASRequest]) (*connect.Response[daemon.ASResponse], error) + // Return the underlay addresses associated with + // the specified interfaces. + Interfaces(context.Context, *connect.Request[daemon.InterfacesRequest]) (*connect.Response[daemon.InterfacesResponse], error) + // Return the underlay addresses associated with the + // specified services. + Services(context.Context, *connect.Request[daemon.ServicesRequest]) (*connect.Response[daemon.ServicesResponse], error) + // Inform the SCION Daemon of a revocation. + NotifyInterfaceDown(context.Context, *connect.Request[daemon.NotifyInterfaceDownRequest]) (*connect.Response[daemon.NotifyInterfaceDownResponse], error) + // DRKeyASHost returns a key that matches the request. + DRKeyASHost(context.Context, *connect.Request[daemon.DRKeyASHostRequest]) (*connect.Response[daemon.DRKeyASHostResponse], error) + // DRKeyHostAS returns a key that matches the request. + DRKeyHostAS(context.Context, *connect.Request[daemon.DRKeyHostASRequest]) (*connect.Response[daemon.DRKeyHostASResponse], error) + // DRKeyHostHost returns a key that matches the request. + DRKeyHostHost(context.Context, *connect.Request[daemon.DRKeyHostHostRequest]) (*connect.Response[daemon.DRKeyHostHostResponse], error) +} + +// NewDaemonServiceHandler builds an HTTP handler from the service implementation. It returns the +// path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewDaemonServiceHandler(svc DaemonServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + daemonServicePathsHandler := connect.NewUnaryHandler( + DaemonServicePathsProcedure, + svc.Paths, + opts..., + ) + daemonServiceASHandler := connect.NewUnaryHandler( + DaemonServiceASProcedure, + svc.AS, + opts..., + ) + daemonServiceInterfacesHandler := connect.NewUnaryHandler( + DaemonServiceInterfacesProcedure, + svc.Interfaces, + opts..., + ) + daemonServiceServicesHandler := connect.NewUnaryHandler( + DaemonServiceServicesProcedure, + svc.Services, + opts..., + ) + daemonServiceNotifyInterfaceDownHandler := connect.NewUnaryHandler( + DaemonServiceNotifyInterfaceDownProcedure, + svc.NotifyInterfaceDown, + opts..., + ) + daemonServiceDRKeyASHostHandler := connect.NewUnaryHandler( + DaemonServiceDRKeyASHostProcedure, + svc.DRKeyASHost, + opts..., + ) + daemonServiceDRKeyHostASHandler := connect.NewUnaryHandler( + DaemonServiceDRKeyHostASProcedure, + svc.DRKeyHostAS, + opts..., + ) + daemonServiceDRKeyHostHostHandler := connect.NewUnaryHandler( + DaemonServiceDRKeyHostHostProcedure, + svc.DRKeyHostHost, + opts..., + ) + return "/proto.daemon.v1.DaemonService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case DaemonServicePathsProcedure: + daemonServicePathsHandler.ServeHTTP(w, r) + case DaemonServiceASProcedure: + daemonServiceASHandler.ServeHTTP(w, r) + case DaemonServiceInterfacesProcedure: + daemonServiceInterfacesHandler.ServeHTTP(w, r) + case DaemonServiceServicesProcedure: + daemonServiceServicesHandler.ServeHTTP(w, r) + case DaemonServiceNotifyInterfaceDownProcedure: + daemonServiceNotifyInterfaceDownHandler.ServeHTTP(w, r) + case DaemonServiceDRKeyASHostProcedure: + daemonServiceDRKeyASHostHandler.ServeHTTP(w, r) + case DaemonServiceDRKeyHostASProcedure: + daemonServiceDRKeyHostASHandler.ServeHTTP(w, r) + case DaemonServiceDRKeyHostHostProcedure: + daemonServiceDRKeyHostHostHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedDaemonServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedDaemonServiceHandler struct{} + +func (UnimplementedDaemonServiceHandler) Paths(context.Context, *connect.Request[daemon.PathsRequest]) (*connect.Response[daemon.PathsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.Paths is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) AS(context.Context, *connect.Request[daemon.ASRequest]) (*connect.Response[daemon.ASResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.AS is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) Interfaces(context.Context, *connect.Request[daemon.InterfacesRequest]) (*connect.Response[daemon.InterfacesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.Interfaces is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) Services(context.Context, *connect.Request[daemon.ServicesRequest]) (*connect.Response[daemon.ServicesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.Services is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) NotifyInterfaceDown(context.Context, *connect.Request[daemon.NotifyInterfaceDownRequest]) (*connect.Response[daemon.NotifyInterfaceDownResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.NotifyInterfaceDown is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) DRKeyASHost(context.Context, *connect.Request[daemon.DRKeyASHostRequest]) (*connect.Response[daemon.DRKeyASHostResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.DRKeyASHost is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) DRKeyHostAS(context.Context, *connect.Request[daemon.DRKeyHostASRequest]) (*connect.Response[daemon.DRKeyHostASResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.DRKeyHostAS is not implemented")) +} + +func (UnimplementedDaemonServiceHandler) DRKeyHostHost(context.Context, *connect.Request[daemon.DRKeyHostHostRequest]) (*connect.Response[daemon.DRKeyHostHostResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.daemon.v1.DaemonService.DRKeyHostHost is not implemented")) +} diff --git a/bufgen/proto/discovery/v1/discovery.pb.go b/bufgen/proto/discovery/v1/discovery.pb.go new file mode 100644 index 0000000000..c5043dce19 --- /dev/null +++ b/bufgen/proto/discovery/v1/discovery.pb.go @@ -0,0 +1,604 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/discovery/v1/discovery.proto + +package discovery + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GatewaysRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GatewaysRequest) Reset() { + *x = GatewaysRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GatewaysRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GatewaysRequest) ProtoMessage() {} + +func (x *GatewaysRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 GatewaysRequest.ProtoReflect.Descriptor instead. +func (*GatewaysRequest) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{0} +} + +type GatewaysResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of gateways. + Gateways []*Gateway `protobuf:"bytes,1,rep,name=gateways,proto3" json:"gateways,omitempty"` +} + +func (x *GatewaysResponse) Reset() { + *x = GatewaysResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GatewaysResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GatewaysResponse) ProtoMessage() {} + +func (x *GatewaysResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 GatewaysResponse.ProtoReflect.Descriptor instead. +func (*GatewaysResponse) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{1} +} + +func (x *GatewaysResponse) GetGateways() []*Gateway { + if x != nil { + return x.Gateways + } + return nil +} + +type Gateway struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The control address of this gateway. + ControlAddress string `protobuf:"bytes,1,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` + // The data address of this gateway. + DataAddress string `protobuf:"bytes,2,opt,name=data_address,json=dataAddress,proto3" json:"data_address,omitempty"` + // The probe address of this gateway. The probe address is used for the + // gateway health checking probes. + ProbeAddress string `protobuf:"bytes,3,opt,name=probe_address,json=probeAddress,proto3" json:"probe_address,omitempty"` + // The allowed AS interface IDs of this gateway. The client of this service + // should only access this gateway by using a path that reaches the + // destination AS through an interface that is member of this list. The + // list can be empty, in which case any path can be used. + AllowInterfaces []uint64 `protobuf:"varint,4,rep,packed,name=allow_interfaces,json=allowInterfaces,proto3" json:"allow_interfaces,omitempty"` +} + +func (x *Gateway) Reset() { + *x = Gateway{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Gateway) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Gateway) ProtoMessage() {} + +func (x *Gateway) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 Gateway.ProtoReflect.Descriptor instead. +func (*Gateway) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{2} +} + +func (x *Gateway) GetControlAddress() string { + if x != nil { + return x.ControlAddress + } + return "" +} + +func (x *Gateway) GetDataAddress() string { + if x != nil { + return x.DataAddress + } + return "" +} + +func (x *Gateway) GetProbeAddress() string { + if x != nil { + return x.ProbeAddress + } + return "" +} + +func (x *Gateway) GetAllowInterfaces() []uint64 { + if x != nil { + return x.AllowInterfaces + } + return nil +} + +type HiddenSegmentServicesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HiddenSegmentServicesRequest) Reset() { + *x = HiddenSegmentServicesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentServicesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentServicesRequest) ProtoMessage() {} + +func (x *HiddenSegmentServicesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 HiddenSegmentServicesRequest.ProtoReflect.Descriptor instead. +func (*HiddenSegmentServicesRequest) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{3} +} + +type HiddenSegmentServicesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of lookup service instances. + Lookup []*HiddenSegmentLookupServer `protobuf:"bytes,1,rep,name=lookup,proto3" json:"lookup,omitempty"` + // The list of registration service instances. + Registration []*HiddenSegmentRegistrationServer `protobuf:"bytes,2,rep,name=registration,proto3" json:"registration,omitempty"` +} + +func (x *HiddenSegmentServicesResponse) Reset() { + *x = HiddenSegmentServicesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentServicesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentServicesResponse) ProtoMessage() {} + +func (x *HiddenSegmentServicesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 HiddenSegmentServicesResponse.ProtoReflect.Descriptor instead. +func (*HiddenSegmentServicesResponse) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{4} +} + +func (x *HiddenSegmentServicesResponse) GetLookup() []*HiddenSegmentLookupServer { + if x != nil { + return x.Lookup + } + return nil +} + +func (x *HiddenSegmentServicesResponse) GetRegistration() []*HiddenSegmentRegistrationServer { + if x != nil { + return x.Registration + } + return nil +} + +type HiddenSegmentLookupServer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address of a hidden segment lookup service instance. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *HiddenSegmentLookupServer) Reset() { + *x = HiddenSegmentLookupServer{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentLookupServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentLookupServer) ProtoMessage() {} + +func (x *HiddenSegmentLookupServer) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 HiddenSegmentLookupServer.ProtoReflect.Descriptor instead. +func (*HiddenSegmentLookupServer) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{5} +} + +func (x *HiddenSegmentLookupServer) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +type HiddenSegmentRegistrationServer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address of a hidden segment registration service instance. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *HiddenSegmentRegistrationServer) Reset() { + *x = HiddenSegmentRegistrationServer{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_discovery_v1_discovery_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentRegistrationServer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentRegistrationServer) ProtoMessage() {} + +func (x *HiddenSegmentRegistrationServer) ProtoReflect() protoreflect.Message { + mi := &file_proto_discovery_v1_discovery_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 HiddenSegmentRegistrationServer.ProtoReflect.Descriptor instead. +func (*HiddenSegmentRegistrationServer) Descriptor() ([]byte, []int) { + return file_proto_discovery_v1_discovery_proto_rawDescGZIP(), []int{6} +} + +func (x *HiddenSegmentRegistrationServer) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +var File_proto_discovery_v1_discovery_proto protoreflect.FileDescriptor + +var file_proto_discovery_v1_discovery_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x10, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x37, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x08, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x22, 0x1e, 0x0a, 0x1c, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xbf, 0x01, 0x0a, 0x1d, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x57, 0x0a, 0x0c, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x19, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x1f, 0x48, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x32, 0xeb, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x15, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x30, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, + 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_discovery_v1_discovery_proto_rawDescOnce sync.Once + file_proto_discovery_v1_discovery_proto_rawDescData = file_proto_discovery_v1_discovery_proto_rawDesc +) + +func file_proto_discovery_v1_discovery_proto_rawDescGZIP() []byte { + file_proto_discovery_v1_discovery_proto_rawDescOnce.Do(func() { + file_proto_discovery_v1_discovery_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_discovery_v1_discovery_proto_rawDescData) + }) + return file_proto_discovery_v1_discovery_proto_rawDescData +} + +var file_proto_discovery_v1_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_proto_discovery_v1_discovery_proto_goTypes = []interface{}{ + (*GatewaysRequest)(nil), // 0: proto.discovery.v1.GatewaysRequest + (*GatewaysResponse)(nil), // 1: proto.discovery.v1.GatewaysResponse + (*Gateway)(nil), // 2: proto.discovery.v1.Gateway + (*HiddenSegmentServicesRequest)(nil), // 3: proto.discovery.v1.HiddenSegmentServicesRequest + (*HiddenSegmentServicesResponse)(nil), // 4: proto.discovery.v1.HiddenSegmentServicesResponse + (*HiddenSegmentLookupServer)(nil), // 5: proto.discovery.v1.HiddenSegmentLookupServer + (*HiddenSegmentRegistrationServer)(nil), // 6: proto.discovery.v1.HiddenSegmentRegistrationServer +} +var file_proto_discovery_v1_discovery_proto_depIdxs = []int32{ + 2, // 0: proto.discovery.v1.GatewaysResponse.gateways:type_name -> proto.discovery.v1.Gateway + 5, // 1: proto.discovery.v1.HiddenSegmentServicesResponse.lookup:type_name -> proto.discovery.v1.HiddenSegmentLookupServer + 6, // 2: proto.discovery.v1.HiddenSegmentServicesResponse.registration:type_name -> proto.discovery.v1.HiddenSegmentRegistrationServer + 0, // 3: proto.discovery.v1.DiscoveryService.Gateways:input_type -> proto.discovery.v1.GatewaysRequest + 3, // 4: proto.discovery.v1.DiscoveryService.HiddenSegmentServices:input_type -> proto.discovery.v1.HiddenSegmentServicesRequest + 1, // 5: proto.discovery.v1.DiscoveryService.Gateways:output_type -> proto.discovery.v1.GatewaysResponse + 4, // 6: proto.discovery.v1.DiscoveryService.HiddenSegmentServices:output_type -> proto.discovery.v1.HiddenSegmentServicesResponse + 5, // [5:7] is the sub-list for method output_type + 3, // [3:5] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_proto_discovery_v1_discovery_proto_init() } +func file_proto_discovery_v1_discovery_proto_init() { + if File_proto_discovery_v1_discovery_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_discovery_v1_discovery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GatewaysRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GatewaysResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Gateway); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentServicesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentServicesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentLookupServer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_discovery_v1_discovery_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentRegistrationServer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_discovery_v1_discovery_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_discovery_v1_discovery_proto_goTypes, + DependencyIndexes: file_proto_discovery_v1_discovery_proto_depIdxs, + MessageInfos: file_proto_discovery_v1_discovery_proto_msgTypes, + }.Build() + File_proto_discovery_v1_discovery_proto = out.File + file_proto_discovery_v1_discovery_proto_rawDesc = nil + file_proto_discovery_v1_discovery_proto_goTypes = nil + file_proto_discovery_v1_discovery_proto_depIdxs = nil +} diff --git a/bufgen/proto/discovery/v1/discoveryconnect/discovery.connect.go b/bufgen/proto/discovery/v1/discoveryconnect/discovery.connect.go new file mode 100644 index 0000000000..6b4cc52e73 --- /dev/null +++ b/bufgen/proto/discovery/v1/discoveryconnect/discovery.connect.go @@ -0,0 +1,150 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/discovery/v1/discovery.proto + +package discoveryconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + discovery "github.com/scionproto/scion/pkg/proto/discovery" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // DiscoveryServiceName is the fully-qualified name of the DiscoveryService service. + DiscoveryServiceName = "proto.discovery.v1.DiscoveryService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // DiscoveryServiceGatewaysProcedure is the fully-qualified name of the DiscoveryService's Gateways + // RPC. + DiscoveryServiceGatewaysProcedure = "/proto.discovery.v1.DiscoveryService/Gateways" + // DiscoveryServiceHiddenSegmentServicesProcedure is the fully-qualified name of the + // DiscoveryService's HiddenSegmentServices RPC. + DiscoveryServiceHiddenSegmentServicesProcedure = "/proto.discovery.v1.DiscoveryService/HiddenSegmentServices" +) + +// DiscoveryServiceClient is a client for the proto.discovery.v1.DiscoveryService service. +type DiscoveryServiceClient interface { + // Return the remote gateways. + Gateways(context.Context, *connect.Request[discovery.GatewaysRequest]) (*connect.Response[discovery.GatewaysResponse], error) + // Return the hidden segment services. + HiddenSegmentServices(context.Context, *connect.Request[discovery.HiddenSegmentServicesRequest]) (*connect.Response[discovery.HiddenSegmentServicesResponse], error) +} + +// NewDiscoveryServiceClient constructs a client for the proto.discovery.v1.DiscoveryService +// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for +// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply +// the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewDiscoveryServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) DiscoveryServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &discoveryServiceClient{ + gateways: connect.NewClient[discovery.GatewaysRequest, discovery.GatewaysResponse]( + httpClient, + baseURL+DiscoveryServiceGatewaysProcedure, + opts..., + ), + hiddenSegmentServices: connect.NewClient[discovery.HiddenSegmentServicesRequest, discovery.HiddenSegmentServicesResponse]( + httpClient, + baseURL+DiscoveryServiceHiddenSegmentServicesProcedure, + opts..., + ), + } +} + +// discoveryServiceClient implements DiscoveryServiceClient. +type discoveryServiceClient struct { + gateways *connect.Client[discovery.GatewaysRequest, discovery.GatewaysResponse] + hiddenSegmentServices *connect.Client[discovery.HiddenSegmentServicesRequest, discovery.HiddenSegmentServicesResponse] +} + +// Gateways calls proto.discovery.v1.DiscoveryService.Gateways. +func (c *discoveryServiceClient) Gateways(ctx context.Context, req *connect.Request[discovery.GatewaysRequest]) (*connect.Response[discovery.GatewaysResponse], error) { + return c.gateways.CallUnary(ctx, req) +} + +// HiddenSegmentServices calls proto.discovery.v1.DiscoveryService.HiddenSegmentServices. +func (c *discoveryServiceClient) HiddenSegmentServices(ctx context.Context, req *connect.Request[discovery.HiddenSegmentServicesRequest]) (*connect.Response[discovery.HiddenSegmentServicesResponse], error) { + return c.hiddenSegmentServices.CallUnary(ctx, req) +} + +// DiscoveryServiceHandler is an implementation of the proto.discovery.v1.DiscoveryService service. +type DiscoveryServiceHandler interface { + // Return the remote gateways. + Gateways(context.Context, *connect.Request[discovery.GatewaysRequest]) (*connect.Response[discovery.GatewaysResponse], error) + // Return the hidden segment services. + HiddenSegmentServices(context.Context, *connect.Request[discovery.HiddenSegmentServicesRequest]) (*connect.Response[discovery.HiddenSegmentServicesResponse], error) +} + +// NewDiscoveryServiceHandler builds an HTTP handler from the service implementation. It returns the +// path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewDiscoveryServiceHandler(svc DiscoveryServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + discoveryServiceGatewaysHandler := connect.NewUnaryHandler( + DiscoveryServiceGatewaysProcedure, + svc.Gateways, + opts..., + ) + discoveryServiceHiddenSegmentServicesHandler := connect.NewUnaryHandler( + DiscoveryServiceHiddenSegmentServicesProcedure, + svc.HiddenSegmentServices, + opts..., + ) + return "/proto.discovery.v1.DiscoveryService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case DiscoveryServiceGatewaysProcedure: + discoveryServiceGatewaysHandler.ServeHTTP(w, r) + case DiscoveryServiceHiddenSegmentServicesProcedure: + discoveryServiceHiddenSegmentServicesHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedDiscoveryServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedDiscoveryServiceHandler struct{} + +func (UnimplementedDiscoveryServiceHandler) Gateways(context.Context, *connect.Request[discovery.GatewaysRequest]) (*connect.Response[discovery.GatewaysResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.discovery.v1.DiscoveryService.Gateways is not implemented")) +} + +func (UnimplementedDiscoveryServiceHandler) HiddenSegmentServices(context.Context, *connect.Request[discovery.HiddenSegmentServicesRequest]) (*connect.Response[discovery.HiddenSegmentServicesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.discovery.v1.DiscoveryService.HiddenSegmentServices is not implemented")) +} diff --git a/bufgen/proto/drkey/v1/drkey.pb.go b/bufgen/proto/drkey/v1/drkey.pb.go new file mode 100644 index 0000000000..51158e0559 --- /dev/null +++ b/bufgen/proto/drkey/v1/drkey.pb.go @@ -0,0 +1,148 @@ +// Copyright 2022 ETH Zurich +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/drkey/v1/drkey.proto + +package drkey + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Protocol int32 + +const ( + // Generic is used to derive keys in the generic derivation scheme + Protocol_PROTOCOL_GENERIC_UNSPECIFIED Protocol = 0 + // SCMP protocol + Protocol_PROTOCOL_SCMP Protocol = 1 +) + +// Enum value maps for Protocol. +var ( + Protocol_name = map[int32]string{ + 0: "PROTOCOL_GENERIC_UNSPECIFIED", + 1: "PROTOCOL_SCMP", + } + Protocol_value = map[string]int32{ + "PROTOCOL_GENERIC_UNSPECIFIED": 0, + "PROTOCOL_SCMP": 1, + } +) + +func (x Protocol) Enum() *Protocol { + p := new(Protocol) + *p = x + return p +} + +func (x Protocol) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Protocol) Descriptor() protoreflect.EnumDescriptor { + return file_proto_drkey_v1_drkey_proto_enumTypes[0].Descriptor() +} + +func (Protocol) Type() protoreflect.EnumType { + return &file_proto_drkey_v1_drkey_proto_enumTypes[0] +} + +func (x Protocol) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Protocol.Descriptor instead. +func (Protocol) EnumDescriptor() ([]byte, []int) { + return file_proto_drkey_v1_drkey_proto_rawDescGZIP(), []int{0} +} + +var File_proto_drkey_v1_drkey_proto protoreflect.FileDescriptor + +var file_proto_drkey_v1_drkey_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2f, 0x76, 0x31, + 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x2e, 0x76, 0x31, 0x2a, 0x4b, 0x0a, 0x08, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x54, + 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x43, 0x4d, 0x50, 0x10, 0x01, 0x22, 0x0a, 0x08, + 0x80, 0x80, 0x04, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x64, 0x72, 0x6b, 0x65, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_drkey_v1_drkey_proto_rawDescOnce sync.Once + file_proto_drkey_v1_drkey_proto_rawDescData = file_proto_drkey_v1_drkey_proto_rawDesc +) + +func file_proto_drkey_v1_drkey_proto_rawDescGZIP() []byte { + file_proto_drkey_v1_drkey_proto_rawDescOnce.Do(func() { + file_proto_drkey_v1_drkey_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_drkey_v1_drkey_proto_rawDescData) + }) + return file_proto_drkey_v1_drkey_proto_rawDescData +} + +var file_proto_drkey_v1_drkey_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_proto_drkey_v1_drkey_proto_goTypes = []interface{}{ + (Protocol)(0), // 0: proto.drkey.v1.Protocol +} +var file_proto_drkey_v1_drkey_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_proto_drkey_v1_drkey_proto_init() } +func file_proto_drkey_v1_drkey_proto_init() { + if File_proto_drkey_v1_drkey_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_drkey_v1_drkey_proto_rawDesc, + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_drkey_v1_drkey_proto_goTypes, + DependencyIndexes: file_proto_drkey_v1_drkey_proto_depIdxs, + EnumInfos: file_proto_drkey_v1_drkey_proto_enumTypes, + }.Build() + File_proto_drkey_v1_drkey_proto = out.File + file_proto_drkey_v1_drkey_proto_rawDesc = nil + file_proto_drkey_v1_drkey_proto_goTypes = nil + file_proto_drkey_v1_drkey_proto_depIdxs = nil +} diff --git a/bufgen/proto/gateway/v1/control.pb.go b/bufgen/proto/gateway/v1/control.pb.go new file mode 100644 index 0000000000..bfe42f345f --- /dev/null +++ b/bufgen/proto/gateway/v1/control.pb.go @@ -0,0 +1,430 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/gateway/v1/control.proto + +package gateway + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ControlRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The gateway control protocol request. + // + // Types that are assignable to Request: + // + // *ControlRequest_Probe + Request isControlRequest_Request `protobuf_oneof:"request"` +} + +func (x *ControlRequest) Reset() { + *x = ControlRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_control_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ControlRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ControlRequest) ProtoMessage() {} + +func (x *ControlRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_control_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 ControlRequest.ProtoReflect.Descriptor instead. +func (*ControlRequest) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_control_proto_rawDescGZIP(), []int{0} +} + +func (m *ControlRequest) GetRequest() isControlRequest_Request { + if m != nil { + return m.Request + } + return nil +} + +func (x *ControlRequest) GetProbe() *ProbeRequest { + if x, ok := x.GetRequest().(*ControlRequest_Probe); ok { + return x.Probe + } + return nil +} + +type isControlRequest_Request interface { + isControlRequest_Request() +} + +type ControlRequest_Probe struct { + // A probe request. + Probe *ProbeRequest `protobuf:"bytes,1,opt,name=probe,proto3,oneof"` +} + +func (*ControlRequest_Probe) isControlRequest_Request() {} + +type ControlResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The gateway control protocol response. + // + // Types that are assignable to Response: + // + // *ControlResponse_Probe + Response isControlResponse_Response `protobuf_oneof:"response"` +} + +func (x *ControlResponse) Reset() { + *x = ControlResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_control_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ControlResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ControlResponse) ProtoMessage() {} + +func (x *ControlResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_control_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 ControlResponse.ProtoReflect.Descriptor instead. +func (*ControlResponse) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_control_proto_rawDescGZIP(), []int{1} +} + +func (m *ControlResponse) GetResponse() isControlResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *ControlResponse) GetProbe() *ProbeResponse { + if x, ok := x.GetResponse().(*ControlResponse_Probe); ok { + return x.Probe + } + return nil +} + +type isControlResponse_Response interface { + isControlResponse_Response() +} + +type ControlResponse_Probe struct { + // A probe response + Probe *ProbeResponse `protobuf:"bytes,1,opt,name=probe,proto3,oneof"` +} + +func (*ControlResponse_Probe) isControlResponse_Response() {} + +type ProbeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The session ID that this probe request is associated with. + SessionId uint32 `protobuf:"varint,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // Arbitrary data that will be reflected in the response. + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *ProbeRequest) Reset() { + *x = ProbeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_control_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProbeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProbeRequest) ProtoMessage() {} + +func (x *ProbeRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_control_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 ProbeRequest.ProtoReflect.Descriptor instead. +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_control_proto_rawDescGZIP(), []int{2} +} + +func (x *ProbeRequest) GetSessionId() uint32 { + if x != nil { + return x.SessionId + } + return 0 +} + +func (x *ProbeRequest) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type ProbeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The session ID that this probe response is associated with. + SessionId uint32 `protobuf:"varint,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // Arbitrary data that was part of the request. + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *ProbeResponse) Reset() { + *x = ProbeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_control_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProbeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProbeResponse) ProtoMessage() {} + +func (x *ProbeResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_control_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 ProbeResponse.ProtoReflect.Descriptor instead. +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_control_proto_rawDescGZIP(), []int{3} +} + +func (x *ProbeResponse) GetSessionId() uint32 { + if x != nil { + return x.SessionId + } + return 0 +} + +func (x *ProbeResponse) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +var File_proto_gateway_v1_control_proto protoreflect.FileDescriptor + +var file_proto_gateway_v1_control_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, + 0x76, 0x31, 0x22, 0x53, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x72, + 0x6f, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x70, 0x72, + 0x6f, 0x62, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x41, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x42, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_gateway_v1_control_proto_rawDescOnce sync.Once + file_proto_gateway_v1_control_proto_rawDescData = file_proto_gateway_v1_control_proto_rawDesc +) + +func file_proto_gateway_v1_control_proto_rawDescGZIP() []byte { + file_proto_gateway_v1_control_proto_rawDescOnce.Do(func() { + file_proto_gateway_v1_control_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_gateway_v1_control_proto_rawDescData) + }) + return file_proto_gateway_v1_control_proto_rawDescData +} + +var file_proto_gateway_v1_control_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_proto_gateway_v1_control_proto_goTypes = []interface{}{ + (*ControlRequest)(nil), // 0: proto.gateway.v1.ControlRequest + (*ControlResponse)(nil), // 1: proto.gateway.v1.ControlResponse + (*ProbeRequest)(nil), // 2: proto.gateway.v1.ProbeRequest + (*ProbeResponse)(nil), // 3: proto.gateway.v1.ProbeResponse +} +var file_proto_gateway_v1_control_proto_depIdxs = []int32{ + 2, // 0: proto.gateway.v1.ControlRequest.probe:type_name -> proto.gateway.v1.ProbeRequest + 3, // 1: proto.gateway.v1.ControlResponse.probe:type_name -> proto.gateway.v1.ProbeResponse + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_proto_gateway_v1_control_proto_init() } +func file_proto_gateway_v1_control_proto_init() { + if File_proto_gateway_v1_control_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_gateway_v1_control_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gateway_v1_control_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gateway_v1_control_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProbeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gateway_v1_control_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProbeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_gateway_v1_control_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ControlRequest_Probe)(nil), + } + file_proto_gateway_v1_control_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ControlResponse_Probe)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_gateway_v1_control_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_gateway_v1_control_proto_goTypes, + DependencyIndexes: file_proto_gateway_v1_control_proto_depIdxs, + MessageInfos: file_proto_gateway_v1_control_proto_msgTypes, + }.Build() + File_proto_gateway_v1_control_proto = out.File + file_proto_gateway_v1_control_proto_rawDesc = nil + file_proto_gateway_v1_control_proto_goTypes = nil + file_proto_gateway_v1_control_proto_depIdxs = nil +} diff --git a/bufgen/proto/gateway/v1/gatewayconnect/prefix.connect.go b/bufgen/proto/gateway/v1/gatewayconnect/prefix.connect.go new file mode 100644 index 0000000000..51fc02dcbf --- /dev/null +++ b/bufgen/proto/gateway/v1/gatewayconnect/prefix.connect.go @@ -0,0 +1,121 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/gateway/v1/prefix.proto + +package gatewayconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + gateway "github.com/scionproto/scion/pkg/proto/gateway" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // IPPrefixesServiceName is the fully-qualified name of the IPPrefixesService service. + IPPrefixesServiceName = "proto.gateway.v1.IPPrefixesService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // IPPrefixesServicePrefixesProcedure is the fully-qualified name of the IPPrefixesService's + // Prefixes RPC. + IPPrefixesServicePrefixesProcedure = "/proto.gateway.v1.IPPrefixesService/Prefixes" +) + +// IPPrefixesServiceClient is a client for the proto.gateway.v1.IPPrefixesService service. +type IPPrefixesServiceClient interface { + // Prefixes requests the IP prefixes that can be reachable via the remote. + Prefixes(context.Context, *connect.Request[gateway.PrefixesRequest]) (*connect.Response[gateway.PrefixesResponse], error) +} + +// NewIPPrefixesServiceClient constructs a client for the proto.gateway.v1.IPPrefixesService +// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for +// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply +// the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewIPPrefixesServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) IPPrefixesServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &iPPrefixesServiceClient{ + prefixes: connect.NewClient[gateway.PrefixesRequest, gateway.PrefixesResponse]( + httpClient, + baseURL+IPPrefixesServicePrefixesProcedure, + opts..., + ), + } +} + +// iPPrefixesServiceClient implements IPPrefixesServiceClient. +type iPPrefixesServiceClient struct { + prefixes *connect.Client[gateway.PrefixesRequest, gateway.PrefixesResponse] +} + +// Prefixes calls proto.gateway.v1.IPPrefixesService.Prefixes. +func (c *iPPrefixesServiceClient) Prefixes(ctx context.Context, req *connect.Request[gateway.PrefixesRequest]) (*connect.Response[gateway.PrefixesResponse], error) { + return c.prefixes.CallUnary(ctx, req) +} + +// IPPrefixesServiceHandler is an implementation of the proto.gateway.v1.IPPrefixesService service. +type IPPrefixesServiceHandler interface { + // Prefixes requests the IP prefixes that can be reachable via the remote. + Prefixes(context.Context, *connect.Request[gateway.PrefixesRequest]) (*connect.Response[gateway.PrefixesResponse], error) +} + +// NewIPPrefixesServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewIPPrefixesServiceHandler(svc IPPrefixesServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + iPPrefixesServicePrefixesHandler := connect.NewUnaryHandler( + IPPrefixesServicePrefixesProcedure, + svc.Prefixes, + opts..., + ) + return "/proto.gateway.v1.IPPrefixesService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case IPPrefixesServicePrefixesProcedure: + iPPrefixesServicePrefixesHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedIPPrefixesServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedIPPrefixesServiceHandler struct{} + +func (UnimplementedIPPrefixesServiceHandler) Prefixes(context.Context, *connect.Request[gateway.PrefixesRequest]) (*connect.Response[gateway.PrefixesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.gateway.v1.IPPrefixesService.Prefixes is not implemented")) +} diff --git a/bufgen/proto/gateway/v1/prefix.pb.go b/bufgen/proto/gateway/v1/prefix.pb.go new file mode 100644 index 0000000000..6206ede70c --- /dev/null +++ b/bufgen/proto/gateway/v1/prefix.pb.go @@ -0,0 +1,300 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/gateway/v1/prefix.proto + +package gateway + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PrefixesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PrefixesRequest) Reset() { + *x = PrefixesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_prefix_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrefixesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrefixesRequest) ProtoMessage() {} + +func (x *PrefixesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_prefix_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 PrefixesRequest.ProtoReflect.Descriptor instead. +func (*PrefixesRequest) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_prefix_proto_rawDescGZIP(), []int{0} +} + +type PrefixesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Prefixes are the prefixes that are reachable via the Gateway that + // responds. + Prefixes []*Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` +} + +func (x *PrefixesResponse) Reset() { + *x = PrefixesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_prefix_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrefixesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrefixesResponse) ProtoMessage() {} + +func (x *PrefixesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_prefix_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 PrefixesResponse.ProtoReflect.Descriptor instead. +func (*PrefixesResponse) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_prefix_proto_rawDescGZIP(), []int{1} +} + +func (x *PrefixesResponse) GetPrefixes() []*Prefix { + if x != nil { + return x.Prefixes + } + return nil +} + +type Prefix struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Prefix is the raw IP address prefix. Must be 4 bytes long for IPv4 and + // 16 bytes long for IPv6. + Prefix []byte `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"` + // Mask is the network mask. E.g. to denote a /24 the mask is set to 24. + Mask uint32 `protobuf:"varint,2,opt,name=mask,proto3" json:"mask,omitempty"` +} + +func (x *Prefix) Reset() { + *x = Prefix{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_gateway_v1_prefix_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Prefix) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Prefix) ProtoMessage() {} + +func (x *Prefix) ProtoReflect() protoreflect.Message { + mi := &file_proto_gateway_v1_prefix_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 Prefix.ProtoReflect.Descriptor instead. +func (*Prefix) Descriptor() ([]byte, []int) { + return file_proto_gateway_v1_prefix_proto_rawDescGZIP(), []int{2} +} + +func (x *Prefix) GetPrefix() []byte { + if x != nil { + return x.Prefix + } + return nil +} + +func (x *Prefix) GetMask() uint32 { + if x != nil { + return x.Mask + } + return 0 +} + +var File_proto_gateway_v1_prefix_proto protoreflect.FileDescriptor + +var file_proto_gateway_v1_prefix_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x76, + 0x31, 0x22, 0x11, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0x34, + 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x6d, 0x61, 0x73, 0x6b, 0x32, 0x68, 0x0a, 0x11, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2f, + 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x69, + 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_gateway_v1_prefix_proto_rawDescOnce sync.Once + file_proto_gateway_v1_prefix_proto_rawDescData = file_proto_gateway_v1_prefix_proto_rawDesc +) + +func file_proto_gateway_v1_prefix_proto_rawDescGZIP() []byte { + file_proto_gateway_v1_prefix_proto_rawDescOnce.Do(func() { + file_proto_gateway_v1_prefix_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_gateway_v1_prefix_proto_rawDescData) + }) + return file_proto_gateway_v1_prefix_proto_rawDescData +} + +var file_proto_gateway_v1_prefix_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_proto_gateway_v1_prefix_proto_goTypes = []interface{}{ + (*PrefixesRequest)(nil), // 0: proto.gateway.v1.PrefixesRequest + (*PrefixesResponse)(nil), // 1: proto.gateway.v1.PrefixesResponse + (*Prefix)(nil), // 2: proto.gateway.v1.Prefix +} +var file_proto_gateway_v1_prefix_proto_depIdxs = []int32{ + 2, // 0: proto.gateway.v1.PrefixesResponse.prefixes:type_name -> proto.gateway.v1.Prefix + 0, // 1: proto.gateway.v1.IPPrefixesService.Prefixes:input_type -> proto.gateway.v1.PrefixesRequest + 1, // 2: proto.gateway.v1.IPPrefixesService.Prefixes:output_type -> proto.gateway.v1.PrefixesResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_proto_gateway_v1_prefix_proto_init() } +func file_proto_gateway_v1_prefix_proto_init() { + if File_proto_gateway_v1_prefix_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_gateway_v1_prefix_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrefixesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gateway_v1_prefix_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrefixesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_gateway_v1_prefix_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Prefix); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_gateway_v1_prefix_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_proto_gateway_v1_prefix_proto_goTypes, + DependencyIndexes: file_proto_gateway_v1_prefix_proto_depIdxs, + MessageInfos: file_proto_gateway_v1_prefix_proto_msgTypes, + }.Build() + File_proto_gateway_v1_prefix_proto = out.File + file_proto_gateway_v1_prefix_proto_rawDesc = nil + file_proto_gateway_v1_prefix_proto_goTypes = nil + file_proto_gateway_v1_prefix_proto_depIdxs = nil +} diff --git a/bufgen/proto/hidden_segment/v1/hidden_segment.pb.go b/bufgen/proto/hidden_segment/v1/hidden_segment.pb.go new file mode 100644 index 0000000000..859589dbc7 --- /dev/null +++ b/bufgen/proto/hidden_segment/v1/hidden_segment.pb.go @@ -0,0 +1,731 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: proto/hidden_segment/v1/hidden_segment.proto + +package hidden_segment + +import ( + control_plane "github.com/scionproto/scion/pkg/proto/control_plane" + crypto "github.com/scionproto/scion/pkg/proto/crypto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Segments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of path segments. + Segments []*control_plane.PathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` +} + +func (x *Segments) Reset() { + *x = Segments{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Segments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Segments) ProtoMessage() {} + +func (x *Segments) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 Segments.ProtoReflect.Descriptor instead. +func (*Segments) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{0} +} + +func (x *Segments) GetSegments() []*control_plane.PathSegment { + if x != nil { + return x.Segments + } + return nil +} + +type HiddenSegmentRegistrationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The signed hidden segment registration request. The body of the + // SignedMessage is the serialized HiddenSegmentRegistrationRequestBody. + SignedRequest *crypto.SignedMessage `protobuf:"bytes,1,opt,name=signed_request,json=signedRequest,proto3" json:"signed_request,omitempty"` +} + +func (x *HiddenSegmentRegistrationRequest) Reset() { + *x = HiddenSegmentRegistrationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentRegistrationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentRegistrationRequest) ProtoMessage() {} + +func (x *HiddenSegmentRegistrationRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 HiddenSegmentRegistrationRequest.ProtoReflect.Descriptor instead. +func (*HiddenSegmentRegistrationRequest) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{1} +} + +func (x *HiddenSegmentRegistrationRequest) GetSignedRequest() *crypto.SignedMessage { + if x != nil { + return x.SignedRequest + } + return nil +} + +type HiddenSegmentRegistrationRequestBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mapping from path segment type to path segments. The key is the integer + // representation of the control_plane.v1.SegmentType enum. + Segments map[int32]*Segments `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // GroupID is the group ID to which these segments should be registered. + GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` +} + +func (x *HiddenSegmentRegistrationRequestBody) Reset() { + *x = HiddenSegmentRegistrationRequestBody{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentRegistrationRequestBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentRegistrationRequestBody) ProtoMessage() {} + +func (x *HiddenSegmentRegistrationRequestBody) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 HiddenSegmentRegistrationRequestBody.ProtoReflect.Descriptor instead. +func (*HiddenSegmentRegistrationRequestBody) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{2} +} + +func (x *HiddenSegmentRegistrationRequestBody) GetSegments() map[int32]*Segments { + if x != nil { + return x.Segments + } + return nil +} + +func (x *HiddenSegmentRegistrationRequestBody) GetGroupId() uint64 { + if x != nil { + return x.GroupId + } + return 0 +} + +type HiddenSegmentRegistrationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HiddenSegmentRegistrationResponse) Reset() { + *x = HiddenSegmentRegistrationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentRegistrationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentRegistrationResponse) ProtoMessage() {} + +func (x *HiddenSegmentRegistrationResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 HiddenSegmentRegistrationResponse.ProtoReflect.Descriptor instead. +func (*HiddenSegmentRegistrationResponse) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{3} +} + +type HiddenSegmentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hidden path group IDs for which a hidden segment is requested. + GroupIds []uint64 `protobuf:"varint,1,rep,packed,name=group_ids,json=groupIds,proto3" json:"group_ids,omitempty"` + // The destination ISD-AS of the segment. + DstIsdAs uint64 `protobuf:"varint,2,opt,name=dst_isd_as,json=dstIsdAs,proto3" json:"dst_isd_as,omitempty"` +} + +func (x *HiddenSegmentsRequest) Reset() { + *x = HiddenSegmentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentsRequest) ProtoMessage() {} + +func (x *HiddenSegmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 HiddenSegmentsRequest.ProtoReflect.Descriptor instead. +func (*HiddenSegmentsRequest) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{4} +} + +func (x *HiddenSegmentsRequest) GetGroupIds() []uint64 { + if x != nil { + return x.GroupIds + } + return nil +} + +func (x *HiddenSegmentsRequest) GetDstIsdAs() uint64 { + if x != nil { + return x.DstIsdAs + } + return 0 +} + +type HiddenSegmentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mapping from path segment type to path segments. The key is the integer + // representation of the control_plane.v1.SegmentType enum. + Segments map[int32]*Segments `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *HiddenSegmentsResponse) Reset() { + *x = HiddenSegmentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HiddenSegmentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HiddenSegmentsResponse) ProtoMessage() {} + +func (x *HiddenSegmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 HiddenSegmentsResponse.ProtoReflect.Descriptor instead. +func (*HiddenSegmentsResponse) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{5} +} + +func (x *HiddenSegmentsResponse) GetSegments() map[int32]*Segments { + if x != nil { + return x.Segments + } + return nil +} + +type AuthoritativeHiddenSegmentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The signed hidden segment request. The body of the SignedMessage is the + // serialized HiddenSegmentRegistrationRequestBody. + SignedRequest *crypto.SignedMessage `protobuf:"bytes,1,opt,name=signed_request,json=signedRequest,proto3" json:"signed_request,omitempty"` +} + +func (x *AuthoritativeHiddenSegmentsRequest) Reset() { + *x = AuthoritativeHiddenSegmentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthoritativeHiddenSegmentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthoritativeHiddenSegmentsRequest) ProtoMessage() {} + +func (x *AuthoritativeHiddenSegmentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 AuthoritativeHiddenSegmentsRequest.ProtoReflect.Descriptor instead. +func (*AuthoritativeHiddenSegmentsRequest) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{6} +} + +func (x *AuthoritativeHiddenSegmentsRequest) GetSignedRequest() *crypto.SignedMessage { + if x != nil { + return x.SignedRequest + } + return nil +} + +type AuthoritativeHiddenSegmentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Mapping from path segment type to path segments. The key is the integer + // representation of the control_plane.v1.SegmentType enum. + Segments map[int32]*Segments `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AuthoritativeHiddenSegmentsResponse) Reset() { + *x = AuthoritativeHiddenSegmentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthoritativeHiddenSegmentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthoritativeHiddenSegmentsResponse) ProtoMessage() {} + +func (x *AuthoritativeHiddenSegmentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_hidden_segment_v1_hidden_segment_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 AuthoritativeHiddenSegmentsResponse.ProtoReflect.Descriptor instead. +func (*AuthoritativeHiddenSegmentsResponse) Descriptor() ([]byte, []int) { + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP(), []int{7} +} + +func (x *AuthoritativeHiddenSegmentsResponse) GetSegments() map[int32]*Segments { + if x != nil { + return x.Segments + } + return nil +} + +var File_proto_hidden_segment_v1_hidden_segment_proto protoreflect.FileDescriptor + +var file_proto_hidden_segment_v1_hidden_segment_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x65, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b, 0x0a, 0x08, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x69, 0x0a, 0x20, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x8a, 0x02, 0x0a, 0x24, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x67, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, 0x5e, 0x0a, 0x0d, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x37, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x23, 0x0a, 0x21, + 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x52, 0x0a, 0x15, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x0a, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x73, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x73, 0x74, + 0x49, 0x73, 0x64, 0x41, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x16, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x59, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5e, 0x0a, 0x0d, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6b, 0x0a, 0x22, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xed, 0x01, 0x0a, 0x23, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x66, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5e, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0xb9, 0x01, 0x0a, 0x20, 0x48, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x94, 0x01, + 0x0a, 0x19, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x32, 0x91, 0x01, 0x0a, 0x1a, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, + 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xc6, 0x01, 0x0a, 0x27, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x1b, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x63, 0x69, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x6f, 0x6e, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_proto_hidden_segment_v1_hidden_segment_proto_rawDescOnce sync.Once + file_proto_hidden_segment_v1_hidden_segment_proto_rawDescData = file_proto_hidden_segment_v1_hidden_segment_proto_rawDesc +) + +func file_proto_hidden_segment_v1_hidden_segment_proto_rawDescGZIP() []byte { + file_proto_hidden_segment_v1_hidden_segment_proto_rawDescOnce.Do(func() { + file_proto_hidden_segment_v1_hidden_segment_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_hidden_segment_v1_hidden_segment_proto_rawDescData) + }) + return file_proto_hidden_segment_v1_hidden_segment_proto_rawDescData +} + +var file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_proto_hidden_segment_v1_hidden_segment_proto_goTypes = []interface{}{ + (*Segments)(nil), // 0: proto.hidden_segment.v1.Segments + (*HiddenSegmentRegistrationRequest)(nil), // 1: proto.hidden_segment.v1.HiddenSegmentRegistrationRequest + (*HiddenSegmentRegistrationRequestBody)(nil), // 2: proto.hidden_segment.v1.HiddenSegmentRegistrationRequestBody + (*HiddenSegmentRegistrationResponse)(nil), // 3: proto.hidden_segment.v1.HiddenSegmentRegistrationResponse + (*HiddenSegmentsRequest)(nil), // 4: proto.hidden_segment.v1.HiddenSegmentsRequest + (*HiddenSegmentsResponse)(nil), // 5: proto.hidden_segment.v1.HiddenSegmentsResponse + (*AuthoritativeHiddenSegmentsRequest)(nil), // 6: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsRequest + (*AuthoritativeHiddenSegmentsResponse)(nil), // 7: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse + nil, // 8: proto.hidden_segment.v1.HiddenSegmentRegistrationRequestBody.SegmentsEntry + nil, // 9: proto.hidden_segment.v1.HiddenSegmentsResponse.SegmentsEntry + nil, // 10: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse.SegmentsEntry + (*control_plane.PathSegment)(nil), // 11: proto.control_plane.v1.PathSegment + (*crypto.SignedMessage)(nil), // 12: proto.crypto.v1.SignedMessage +} +var file_proto_hidden_segment_v1_hidden_segment_proto_depIdxs = []int32{ + 11, // 0: proto.hidden_segment.v1.Segments.segments:type_name -> proto.control_plane.v1.PathSegment + 12, // 1: proto.hidden_segment.v1.HiddenSegmentRegistrationRequest.signed_request:type_name -> proto.crypto.v1.SignedMessage + 8, // 2: proto.hidden_segment.v1.HiddenSegmentRegistrationRequestBody.segments:type_name -> proto.hidden_segment.v1.HiddenSegmentRegistrationRequestBody.SegmentsEntry + 9, // 3: proto.hidden_segment.v1.HiddenSegmentsResponse.segments:type_name -> proto.hidden_segment.v1.HiddenSegmentsResponse.SegmentsEntry + 12, // 4: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsRequest.signed_request:type_name -> proto.crypto.v1.SignedMessage + 10, // 5: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse.segments:type_name -> proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse.SegmentsEntry + 0, // 6: proto.hidden_segment.v1.HiddenSegmentRegistrationRequestBody.SegmentsEntry.value:type_name -> proto.hidden_segment.v1.Segments + 0, // 7: proto.hidden_segment.v1.HiddenSegmentsResponse.SegmentsEntry.value:type_name -> proto.hidden_segment.v1.Segments + 0, // 8: proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse.SegmentsEntry.value:type_name -> proto.hidden_segment.v1.Segments + 1, // 9: proto.hidden_segment.v1.HiddenSegmentRegistrationService.HiddenSegmentRegistration:input_type -> proto.hidden_segment.v1.HiddenSegmentRegistrationRequest + 4, // 10: proto.hidden_segment.v1.HiddenSegmentLookupService.HiddenSegments:input_type -> proto.hidden_segment.v1.HiddenSegmentsRequest + 6, // 11: proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService.AuthoritativeHiddenSegments:input_type -> proto.hidden_segment.v1.AuthoritativeHiddenSegmentsRequest + 3, // 12: proto.hidden_segment.v1.HiddenSegmentRegistrationService.HiddenSegmentRegistration:output_type -> proto.hidden_segment.v1.HiddenSegmentRegistrationResponse + 5, // 13: proto.hidden_segment.v1.HiddenSegmentLookupService.HiddenSegments:output_type -> proto.hidden_segment.v1.HiddenSegmentsResponse + 7, // 14: proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService.AuthoritativeHiddenSegments:output_type -> proto.hidden_segment.v1.AuthoritativeHiddenSegmentsResponse + 12, // [12:15] is the sub-list for method output_type + 9, // [9:12] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_proto_hidden_segment_v1_hidden_segment_proto_init() } +func file_proto_hidden_segment_v1_hidden_segment_proto_init() { + if File_proto_hidden_segment_v1_hidden_segment_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Segments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentRegistrationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentRegistrationRequestBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentRegistrationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HiddenSegmentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthoritativeHiddenSegmentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthoritativeHiddenSegmentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_hidden_segment_v1_hidden_segment_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 3, + }, + GoTypes: file_proto_hidden_segment_v1_hidden_segment_proto_goTypes, + DependencyIndexes: file_proto_hidden_segment_v1_hidden_segment_proto_depIdxs, + MessageInfos: file_proto_hidden_segment_v1_hidden_segment_proto_msgTypes, + }.Build() + File_proto_hidden_segment_v1_hidden_segment_proto = out.File + file_proto_hidden_segment_v1_hidden_segment_proto_rawDesc = nil + file_proto_hidden_segment_v1_hidden_segment_proto_goTypes = nil + file_proto_hidden_segment_v1_hidden_segment_proto_depIdxs = nil +} diff --git a/bufgen/proto/hidden_segment/v1/hidden_segmentconnect/hidden_segment.connect.go b/bufgen/proto/hidden_segment/v1/hidden_segmentconnect/hidden_segment.connect.go new file mode 100644 index 0000000000..a51418dfac --- /dev/null +++ b/bufgen/proto/hidden_segment/v1/hidden_segmentconnect/hidden_segment.connect.go @@ -0,0 +1,284 @@ +// Copyright 2020 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: proto/hidden_segment/v1/hidden_segment.proto + +package hidden_segmentconnect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + hidden_segment "github.com/scionproto/scion/pkg/proto/hidden_segment" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion0_1_0 + +const ( + // HiddenSegmentRegistrationServiceName is the fully-qualified name of the + // HiddenSegmentRegistrationService service. + HiddenSegmentRegistrationServiceName = "proto.hidden_segment.v1.HiddenSegmentRegistrationService" + // HiddenSegmentLookupServiceName is the fully-qualified name of the HiddenSegmentLookupService + // service. + HiddenSegmentLookupServiceName = "proto.hidden_segment.v1.HiddenSegmentLookupService" + // AuthoritativeHiddenSegmentLookupServiceName is the fully-qualified name of the + // AuthoritativeHiddenSegmentLookupService service. + AuthoritativeHiddenSegmentLookupServiceName = "proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // HiddenSegmentRegistrationServiceHiddenSegmentRegistrationProcedure is the fully-qualified name of + // the HiddenSegmentRegistrationService's HiddenSegmentRegistration RPC. + HiddenSegmentRegistrationServiceHiddenSegmentRegistrationProcedure = "/proto.hidden_segment.v1.HiddenSegmentRegistrationService/HiddenSegmentRegistration" + // HiddenSegmentLookupServiceHiddenSegmentsProcedure is the fully-qualified name of the + // HiddenSegmentLookupService's HiddenSegments RPC. + HiddenSegmentLookupServiceHiddenSegmentsProcedure = "/proto.hidden_segment.v1.HiddenSegmentLookupService/HiddenSegments" + // AuthoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsProcedure is the + // fully-qualified name of the AuthoritativeHiddenSegmentLookupService's AuthoritativeHiddenSegments + // RPC. + AuthoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsProcedure = "/proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService/AuthoritativeHiddenSegments" +) + +// HiddenSegmentRegistrationServiceClient is a client for the +// proto.hidden_segment.v1.HiddenSegmentRegistrationService service. +type HiddenSegmentRegistrationServiceClient interface { + // HiddenSegmentRegistration registers hidden segments at the remote. + HiddenSegmentRegistration(context.Context, *connect.Request[hidden_segment.HiddenSegmentRegistrationRequest]) (*connect.Response[hidden_segment.HiddenSegmentRegistrationResponse], error) +} + +// NewHiddenSegmentRegistrationServiceClient constructs a client for the +// proto.hidden_segment.v1.HiddenSegmentRegistrationService service. By default, it uses the Connect +// protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed +// requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or +// connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewHiddenSegmentRegistrationServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) HiddenSegmentRegistrationServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &hiddenSegmentRegistrationServiceClient{ + hiddenSegmentRegistration: connect.NewClient[hidden_segment.HiddenSegmentRegistrationRequest, hidden_segment.HiddenSegmentRegistrationResponse]( + httpClient, + baseURL+HiddenSegmentRegistrationServiceHiddenSegmentRegistrationProcedure, + opts..., + ), + } +} + +// hiddenSegmentRegistrationServiceClient implements HiddenSegmentRegistrationServiceClient. +type hiddenSegmentRegistrationServiceClient struct { + hiddenSegmentRegistration *connect.Client[hidden_segment.HiddenSegmentRegistrationRequest, hidden_segment.HiddenSegmentRegistrationResponse] +} + +// HiddenSegmentRegistration calls +// proto.hidden_segment.v1.HiddenSegmentRegistrationService.HiddenSegmentRegistration. +func (c *hiddenSegmentRegistrationServiceClient) HiddenSegmentRegistration(ctx context.Context, req *connect.Request[hidden_segment.HiddenSegmentRegistrationRequest]) (*connect.Response[hidden_segment.HiddenSegmentRegistrationResponse], error) { + return c.hiddenSegmentRegistration.CallUnary(ctx, req) +} + +// HiddenSegmentRegistrationServiceHandler is an implementation of the +// proto.hidden_segment.v1.HiddenSegmentRegistrationService service. +type HiddenSegmentRegistrationServiceHandler interface { + // HiddenSegmentRegistration registers hidden segments at the remote. + HiddenSegmentRegistration(context.Context, *connect.Request[hidden_segment.HiddenSegmentRegistrationRequest]) (*connect.Response[hidden_segment.HiddenSegmentRegistrationResponse], error) +} + +// NewHiddenSegmentRegistrationServiceHandler builds an HTTP handler from the service +// implementation. It returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewHiddenSegmentRegistrationServiceHandler(svc HiddenSegmentRegistrationServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + hiddenSegmentRegistrationServiceHiddenSegmentRegistrationHandler := connect.NewUnaryHandler( + HiddenSegmentRegistrationServiceHiddenSegmentRegistrationProcedure, + svc.HiddenSegmentRegistration, + opts..., + ) + return "/proto.hidden_segment.v1.HiddenSegmentRegistrationService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case HiddenSegmentRegistrationServiceHiddenSegmentRegistrationProcedure: + hiddenSegmentRegistrationServiceHiddenSegmentRegistrationHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedHiddenSegmentRegistrationServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedHiddenSegmentRegistrationServiceHandler struct{} + +func (UnimplementedHiddenSegmentRegistrationServiceHandler) HiddenSegmentRegistration(context.Context, *connect.Request[hidden_segment.HiddenSegmentRegistrationRequest]) (*connect.Response[hidden_segment.HiddenSegmentRegistrationResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.hidden_segment.v1.HiddenSegmentRegistrationService.HiddenSegmentRegistration is not implemented")) +} + +// HiddenSegmentLookupServiceClient is a client for the +// proto.hidden_segment.v1.HiddenSegmentLookupService service. +type HiddenSegmentLookupServiceClient interface { + // HiddenSegments returns all segments that match the request. + HiddenSegments(context.Context, *connect.Request[hidden_segment.HiddenSegmentsRequest]) (*connect.Response[hidden_segment.HiddenSegmentsResponse], error) +} + +// NewHiddenSegmentLookupServiceClient constructs a client for the +// proto.hidden_segment.v1.HiddenSegmentLookupService service. By default, it uses the Connect +// protocol with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed +// requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or +// connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewHiddenSegmentLookupServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) HiddenSegmentLookupServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &hiddenSegmentLookupServiceClient{ + hiddenSegments: connect.NewClient[hidden_segment.HiddenSegmentsRequest, hidden_segment.HiddenSegmentsResponse]( + httpClient, + baseURL+HiddenSegmentLookupServiceHiddenSegmentsProcedure, + opts..., + ), + } +} + +// hiddenSegmentLookupServiceClient implements HiddenSegmentLookupServiceClient. +type hiddenSegmentLookupServiceClient struct { + hiddenSegments *connect.Client[hidden_segment.HiddenSegmentsRequest, hidden_segment.HiddenSegmentsResponse] +} + +// HiddenSegments calls proto.hidden_segment.v1.HiddenSegmentLookupService.HiddenSegments. +func (c *hiddenSegmentLookupServiceClient) HiddenSegments(ctx context.Context, req *connect.Request[hidden_segment.HiddenSegmentsRequest]) (*connect.Response[hidden_segment.HiddenSegmentsResponse], error) { + return c.hiddenSegments.CallUnary(ctx, req) +} + +// HiddenSegmentLookupServiceHandler is an implementation of the +// proto.hidden_segment.v1.HiddenSegmentLookupService service. +type HiddenSegmentLookupServiceHandler interface { + // HiddenSegments returns all segments that match the request. + HiddenSegments(context.Context, *connect.Request[hidden_segment.HiddenSegmentsRequest]) (*connect.Response[hidden_segment.HiddenSegmentsResponse], error) +} + +// NewHiddenSegmentLookupServiceHandler builds an HTTP handler from the service implementation. It +// returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewHiddenSegmentLookupServiceHandler(svc HiddenSegmentLookupServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + hiddenSegmentLookupServiceHiddenSegmentsHandler := connect.NewUnaryHandler( + HiddenSegmentLookupServiceHiddenSegmentsProcedure, + svc.HiddenSegments, + opts..., + ) + return "/proto.hidden_segment.v1.HiddenSegmentLookupService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case HiddenSegmentLookupServiceHiddenSegmentsProcedure: + hiddenSegmentLookupServiceHiddenSegmentsHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedHiddenSegmentLookupServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedHiddenSegmentLookupServiceHandler struct{} + +func (UnimplementedHiddenSegmentLookupServiceHandler) HiddenSegments(context.Context, *connect.Request[hidden_segment.HiddenSegmentsRequest]) (*connect.Response[hidden_segment.HiddenSegmentsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.hidden_segment.v1.HiddenSegmentLookupService.HiddenSegments is not implemented")) +} + +// AuthoritativeHiddenSegmentLookupServiceClient is a client for the +// proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService service. +type AuthoritativeHiddenSegmentLookupServiceClient interface { + // HiddenSegments returns all segments that match the request. + AuthoritativeHiddenSegments(context.Context, *connect.Request[hidden_segment.AuthoritativeHiddenSegmentsRequest]) (*connect.Response[hidden_segment.AuthoritativeHiddenSegmentsResponse], error) +} + +// NewAuthoritativeHiddenSegmentLookupServiceClient constructs a client for the +// proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService service. By default, it uses the +// Connect protocol with the binary Protobuf Codec, asks for gzipped responses, and sends +// uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or +// connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewAuthoritativeHiddenSegmentLookupServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) AuthoritativeHiddenSegmentLookupServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &authoritativeHiddenSegmentLookupServiceClient{ + authoritativeHiddenSegments: connect.NewClient[hidden_segment.AuthoritativeHiddenSegmentsRequest, hidden_segment.AuthoritativeHiddenSegmentsResponse]( + httpClient, + baseURL+AuthoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsProcedure, + opts..., + ), + } +} + +// authoritativeHiddenSegmentLookupServiceClient implements +// AuthoritativeHiddenSegmentLookupServiceClient. +type authoritativeHiddenSegmentLookupServiceClient struct { + authoritativeHiddenSegments *connect.Client[hidden_segment.AuthoritativeHiddenSegmentsRequest, hidden_segment.AuthoritativeHiddenSegmentsResponse] +} + +// AuthoritativeHiddenSegments calls +// proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService.AuthoritativeHiddenSegments. +func (c *authoritativeHiddenSegmentLookupServiceClient) AuthoritativeHiddenSegments(ctx context.Context, req *connect.Request[hidden_segment.AuthoritativeHiddenSegmentsRequest]) (*connect.Response[hidden_segment.AuthoritativeHiddenSegmentsResponse], error) { + return c.authoritativeHiddenSegments.CallUnary(ctx, req) +} + +// AuthoritativeHiddenSegmentLookupServiceHandler is an implementation of the +// proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService service. +type AuthoritativeHiddenSegmentLookupServiceHandler interface { + // HiddenSegments returns all segments that match the request. + AuthoritativeHiddenSegments(context.Context, *connect.Request[hidden_segment.AuthoritativeHiddenSegmentsRequest]) (*connect.Response[hidden_segment.AuthoritativeHiddenSegmentsResponse], error) +} + +// NewAuthoritativeHiddenSegmentLookupServiceHandler builds an HTTP handler from the service +// implementation. It returns the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewAuthoritativeHiddenSegmentLookupServiceHandler(svc AuthoritativeHiddenSegmentLookupServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + authoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsHandler := connect.NewUnaryHandler( + AuthoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsProcedure, + svc.AuthoritativeHiddenSegments, + opts..., + ) + return "/proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case AuthoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsProcedure: + authoritativeHiddenSegmentLookupServiceAuthoritativeHiddenSegmentsHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedAuthoritativeHiddenSegmentLookupServiceHandler returns CodeUnimplemented from all +// methods. +type UnimplementedAuthoritativeHiddenSegmentLookupServiceHandler struct{} + +func (UnimplementedAuthoritativeHiddenSegmentLookupServiceHandler) AuthoritativeHiddenSegments(context.Context, *connect.Request[hidden_segment.AuthoritativeHiddenSegmentsRequest]) (*connect.Response[hidden_segment.AuthoritativeHiddenSegmentsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("proto.hidden_segment.v1.AuthoritativeHiddenSegmentLookupService.AuthoritativeHiddenSegments is not implemented")) +} diff --git a/control/trust/connect/material.go b/control/trust/connect/material.go new file mode 100644 index 0000000000..34b33768db --- /dev/null +++ b/control/trust/connect/material.go @@ -0,0 +1,32 @@ +package connect + +import ( + "context" + + "connectrpc.com/connect" + "github.com/scionproto/scion/bufgen/proto/control_plane/v1/control_planeconnect" + "github.com/scionproto/scion/control/trust/grpc" + "github.com/scionproto/scion/pkg/proto/control_plane" +) + +var _ control_planeconnect.TrustMaterialServiceHandler = MaterialServer{} + +type MaterialServer struct { + grpc.MaterialServer +} + +func (m MaterialServer) Chains(ctx context.Context, req *connect.Request[control_plane.ChainsRequest]) (*connect.Response[control_plane.ChainsResponse], error) { + rep, err := m.MaterialServer.Chains(ctx, req.Msg) + if err != nil { + return nil, err + } + return connect.NewResponse(rep), nil +} + +func (m MaterialServer) TRC(ctx context.Context, req *connect.Request[control_plane.TRCRequest]) (*connect.Response[control_plane.TRCResponse], error) { + rep, err := m.MaterialServer.TRC(ctx, req.Msg) + if err != nil { + return nil, err + } + return connect.NewResponse(rep), nil +} diff --git a/go.mod b/go.mod index 77f168f212..788b9fc230 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,7 @@ module github.com/scionproto/scion require ( + connectrpc.com/connect v1.12.0 github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220209173558-ad29539cd2e9 github.com/bazelbuild/rules_go v0.38.1 github.com/buildkite/go-buildkite/v2 v2.9.0 diff --git a/go.sum b/go.sum index c53bec95f1..f1f1756bf9 100644 --- a/go.sum +++ b/go.sum @@ -35,6 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +connectrpc.com/connect v1.12.0 h1:HwKdOY0lGhhoHdsza+hW55aqHEC64pYpObRNoAgn70g= +connectrpc.com/connect v1.12.0/go.mod h1:3AGaO6RRGMx5IKFfqbe3hvK1NqLosFNP2BxDYTPmNPo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=