feat: add binary name RPC

This commit is contained in:
Peter 2023-09-12 18:05:19 +02:00
parent e4d230e5c7
commit 4b705a6732
Signed by: prskr
GPG key ID: C1DB5D2E8DB512F9
4 changed files with 639 additions and 121 deletions

View file

@ -45,6 +45,9 @@ const (
// WasiExecutorServiceHelpProcedure is the fully-qualified name of the WasiExecutorService's Help
// RPC.
WasiExecutorServiceHelpProcedure = "/buildr.rpc.v1.WasiExecutorService/Help"
// WasiExecutorServiceBinaryNameProcedure is the fully-qualified name of the WasiExecutorService's
// BinaryName RPC.
WasiExecutorServiceBinaryNameProcedure = "/buildr.rpc.v1.WasiExecutorService/BinaryName"
// ExecutorHostServiceProcessStartProcedure is the fully-qualified name of the ExecutorHostService's
// ProcessStart RPC.
ExecutorHostServiceProcessStartProcedure = "/buildr.rpc.v1.ExecutorHostService/ProcessStart"
@ -58,6 +61,7 @@ type WasiExecutorServiceClient interface {
PluginInventory(context.Context, *connect.Request[v1.PluginInventoryRequest]) (*connect.Response[v1.PluginInventoryResponse], error)
StartTask(context.Context, *connect.Request[v11.StartTaskRequest]) (*connect.Response[v1.StartTaskResponse], error)
Help(context.Context, *connect.Request[v1.HelpRequest]) (*connect.Response[v1.HelpResponse], error)
BinaryName(context.Context, *connect.Request[v1.BinaryNameRequest]) (*connect.Response[v1.BinaryNameResponse], error)
}
// NewWasiExecutorServiceClient constructs a client for the buildr.rpc.v1.WasiExecutorService
@ -85,6 +89,11 @@ func NewWasiExecutorServiceClient(httpClient connect.HTTPClient, baseURL string,
baseURL+WasiExecutorServiceHelpProcedure,
opts...,
),
binaryName: connect.NewClient[v1.BinaryNameRequest, v1.BinaryNameResponse](
httpClient,
baseURL+WasiExecutorServiceBinaryNameProcedure,
opts...,
),
}
}
@ -93,6 +102,7 @@ type wasiExecutorServiceClient struct {
pluginInventory *connect.Client[v1.PluginInventoryRequest, v1.PluginInventoryResponse]
startTask *connect.Client[v11.StartTaskRequest, v1.StartTaskResponse]
help *connect.Client[v1.HelpRequest, v1.HelpResponse]
binaryName *connect.Client[v1.BinaryNameRequest, v1.BinaryNameResponse]
}
// PluginInventory calls buildr.rpc.v1.WasiExecutorService.PluginInventory.
@ -110,11 +120,17 @@ func (c *wasiExecutorServiceClient) Help(ctx context.Context, req *connect.Reque
return c.help.CallUnary(ctx, req)
}
// BinaryName calls buildr.rpc.v1.WasiExecutorService.BinaryName.
func (c *wasiExecutorServiceClient) BinaryName(ctx context.Context, req *connect.Request[v1.BinaryNameRequest]) (*connect.Response[v1.BinaryNameResponse], error) {
return c.binaryName.CallUnary(ctx, req)
}
// WasiExecutorServiceHandler is an implementation of the buildr.rpc.v1.WasiExecutorService service.
type WasiExecutorServiceHandler interface {
PluginInventory(context.Context, *connect.Request[v1.PluginInventoryRequest]) (*connect.Response[v1.PluginInventoryResponse], error)
StartTask(context.Context, *connect.Request[v11.StartTaskRequest]) (*connect.Response[v1.StartTaskResponse], error)
Help(context.Context, *connect.Request[v1.HelpRequest]) (*connect.Response[v1.HelpResponse], error)
BinaryName(context.Context, *connect.Request[v1.BinaryNameRequest]) (*connect.Response[v1.BinaryNameResponse], error)
}
// NewWasiExecutorServiceHandler builds an HTTP handler from the service implementation. It returns
@ -138,6 +154,11 @@ func NewWasiExecutorServiceHandler(svc WasiExecutorServiceHandler, opts ...conne
svc.Help,
opts...,
)
wasiExecutorServiceBinaryNameHandler := connect.NewUnaryHandler(
WasiExecutorServiceBinaryNameProcedure,
svc.BinaryName,
opts...,
)
return "/buildr.rpc.v1.WasiExecutorService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case WasiExecutorServicePluginInventoryProcedure:
@ -146,6 +167,8 @@ func NewWasiExecutorServiceHandler(svc WasiExecutorServiceHandler, opts ...conne
wasiExecutorServiceStartTaskHandler.ServeHTTP(w, r)
case WasiExecutorServiceHelpProcedure:
wasiExecutorServiceHelpHandler.ServeHTTP(w, r)
case WasiExecutorServiceBinaryNameProcedure:
wasiExecutorServiceBinaryNameHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
@ -167,6 +190,10 @@ func (UnimplementedWasiExecutorServiceHandler) Help(context.Context, *connect.Re
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("buildr.rpc.v1.WasiExecutorService.Help is not implemented"))
}
func (UnimplementedWasiExecutorServiceHandler) BinaryName(context.Context, *connect.Request[v1.BinaryNameRequest]) (*connect.Response[v1.BinaryNameResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("buildr.rpc.v1.WasiExecutorService.BinaryName is not implemented"))
}
// ExecutorHostServiceClient is a client for the buildr.rpc.v1.ExecutorHostService service.
type ExecutorHostServiceClient interface {
ProcessStart(context.Context, *connect.Request[v1.ProcessStartRequest]) (*connect.Response[v1.ProcessStartResponse], error)

View file

@ -327,6 +327,108 @@ func (x *StartTaskResponse) GetError() string {
return ""
}
type BinaryNameRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ModuleReference *v1.ModuleReference `protobuf:"bytes,1,opt,name=module_reference,json=moduleReference,proto3" json:"module_reference,omitempty"`
Spec *v1.ModuleSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"`
}
func (x *BinaryNameRequest) Reset() {
*x = BinaryNameRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryNameRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryNameRequest) ProtoMessage() {}
func (x *BinaryNameRequest) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_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 BinaryNameRequest.ProtoReflect.Descriptor instead.
func (*BinaryNameRequest) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{6}
}
func (x *BinaryNameRequest) GetModuleReference() *v1.ModuleReference {
if x != nil {
return x.ModuleReference
}
return nil
}
func (x *BinaryNameRequest) GetSpec() *v1.ModuleSpec {
if x != nil {
return x.Spec
}
return nil
}
type BinaryNameResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *BinaryNameResponse) Reset() {
*x = BinaryNameResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BinaryNameResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BinaryNameResponse) ProtoMessage() {}
func (x *BinaryNameResponse) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_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 BinaryNameResponse.ProtoReflect.Descriptor instead.
func (*BinaryNameResponse) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{7}
}
func (x *BinaryNameResponse) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type ProcessStartRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -342,7 +444,7 @@ type ProcessStartRequest struct {
func (x *ProcessStartRequest) Reset() {
*x = ProcessStartRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[6]
mi := &file_wasi_v1_wasi_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -355,7 +457,7 @@ func (x *ProcessStartRequest) String() string {
func (*ProcessStartRequest) ProtoMessage() {}
func (x *ProcessStartRequest) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_proto_msgTypes[6]
mi := &file_wasi_v1_wasi_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -368,7 +470,7 @@ func (x *ProcessStartRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessStartRequest.ProtoReflect.Descriptor instead.
func (*ProcessStartRequest) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{6}
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{8}
}
func (x *ProcessStartRequest) GetCommand() string {
@ -419,7 +521,7 @@ type ProcessStartResponse struct {
func (x *ProcessStartResponse) Reset() {
*x = ProcessStartResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[7]
mi := &file_wasi_v1_wasi_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -432,7 +534,7 @@ func (x *ProcessStartResponse) String() string {
func (*ProcessStartResponse) ProtoMessage() {}
func (x *ProcessStartResponse) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_proto_msgTypes[7]
mi := &file_wasi_v1_wasi_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -445,7 +547,7 @@ func (x *ProcessStartResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ProcessStartResponse.ProtoReflect.Descriptor instead.
func (*ProcessStartResponse) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{7}
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{9}
}
func (x *ProcessStartResponse) GetExitCode() int32 {
@ -480,7 +582,7 @@ type LookupPathRequest struct {
func (x *LookupPathRequest) Reset() {
*x = LookupPathRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[8]
mi := &file_wasi_v1_wasi_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -493,7 +595,7 @@ func (x *LookupPathRequest) String() string {
func (*LookupPathRequest) ProtoMessage() {}
func (x *LookupPathRequest) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_proto_msgTypes[8]
mi := &file_wasi_v1_wasi_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -506,7 +608,7 @@ func (x *LookupPathRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupPathRequest.ProtoReflect.Descriptor instead.
func (*LookupPathRequest) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{8}
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{10}
}
func (x *LookupPathRequest) GetCommand() string {
@ -528,7 +630,7 @@ type LookupPathResponse struct {
func (x *LookupPathResponse) Reset() {
*x = LookupPathResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[9]
mi := &file_wasi_v1_wasi_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -541,7 +643,7 @@ func (x *LookupPathResponse) String() string {
func (*LookupPathResponse) ProtoMessage() {}
func (x *LookupPathResponse) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_proto_msgTypes[9]
mi := &file_wasi_v1_wasi_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -554,7 +656,7 @@ func (x *LookupPathResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupPathResponse.ProtoReflect.Descriptor instead.
func (*LookupPathResponse) Descriptor() ([]byte, []int) {
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{9}
return file_wasi_v1_wasi_proto_rawDescGZIP(), []int{11}
}
func (x *LookupPathResponse) GetPath() string {
@ -583,7 +685,7 @@ type PluginInventoryResponse_InventorySpec struct {
func (x *PluginInventoryResponse_InventorySpec) Reset() {
*x = PluginInventoryResponse_InventorySpec{}
if protoimpl.UnsafeEnabled {
mi := &file_wasi_v1_wasi_proto_msgTypes[10]
mi := &file_wasi_v1_wasi_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -596,7 +698,7 @@ func (x *PluginInventoryResponse_InventorySpec) String() string {
func (*PluginInventoryResponse_InventorySpec) ProtoMessage() {}
func (x *PluginInventoryResponse_InventorySpec) ProtoReflect() protoreflect.Message {
mi := &file_wasi_v1_wasi_proto_msgTypes[10]
mi := &file_wasi_v1_wasi_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -673,78 +775,95 @@ var file_wasi_v1_wasi_proto_rawDesc = []byte{
0x70, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x22, 0x9d, 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74,
0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b,
0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65,
0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65,
0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45,
0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x73, 0x74, 0x64, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x74, 0x64,
0x69, 0x6e, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x22, 0x61, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61,
0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78,
0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65,
0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a,
0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73,
0x74, 0x64, 0x65, 0x72, 0x72, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50,
0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x22, 0x3e, 0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61,
0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14,
0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x32, 0x88, 0x02, 0x0a, 0x13, 0x57, 0x61, 0x73, 0x69, 0x45, 0x78, 0x65,
0x63, 0x75, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x0f,
0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e,
0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x76,
0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e,
0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1f, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72,
0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61,
0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f,
0x0a, 0x04, 0x48, 0x65, 0x6c, 0x70, 0x12, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32,
0xc1, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x48, 0x6f, 0x73, 0x74,
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x63, 0x65,
0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53,
0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63,
0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x51, 0x0a, 0x0a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20,
0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x42, 0xaa, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x61, 0x73, 0x69, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x48, 0x02, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x69,
0x63, 0x62, 0x34, 0x64, 0x63, 0x30, 0x2e, 0x64, 0x65, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72,
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x77,
0x61, 0x73, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x70, 0x63, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x42,
0x52, 0x58, 0xaa, 0x02, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x52, 0x70, 0x63, 0x2e,
0x56, 0x31, 0xca, 0x02, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x5c, 0x52, 0x70, 0x63, 0x5c,
0x56, 0x31, 0xe2, 0x02, 0x19, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x5c, 0x52, 0x70, 0x63, 0x5c,
0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x3a, 0x3a, 0x52, 0x70, 0x63, 0x3a, 0x3a, 0x56, 0x31,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6f, 0x72, 0x22, 0x8d, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x75,
0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
0x63, 0x65, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76,
0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70,
0x65, 0x63, 0x22, 0x28, 0x0a, 0x12, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9d, 0x02, 0x0a,
0x13, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72,
0x67, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69,
0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77,
0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12,
0x55, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72,
0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x1a, 0x3e, 0x0a, 0x10,
0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x61, 0x0a, 0x14,
0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72,
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x22,
0x2d, 0x0a, 0x11, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x3e,
0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0xdb,
0x02, 0x0a, 0x13, 0x57, 0x61, 0x73, 0x69, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x53,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x0f, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x26, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72,
0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72,
0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x48, 0x65, 0x6c, 0x70,
0x12, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31,
0x2e, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c,
0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x42, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61,
0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xc1, 0x01, 0x0a,
0x13, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53,
0x74, 0x61, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x72,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a,
0x0a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b,
0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f,
0x6f, 0x6b, 0x75, 0x70, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x42, 0xaa, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x61, 0x73, 0x69, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x48, 0x02, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x63, 0x62, 0x34,
0x64, 0x63, 0x30, 0x2e, 0x64, 0x65, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x77, 0x61, 0x73, 0x69,
0x2f, 0x76, 0x31, 0x3b, 0x72, 0x70, 0x63, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x52, 0x58, 0xaa,
0x02, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x2e, 0x52, 0x70, 0x63, 0x2e, 0x56, 0x31, 0xca,
0x02, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x5c, 0x52, 0x70, 0x63, 0x5c, 0x56, 0x31, 0xe2,
0x02, 0x19, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x5c, 0x52, 0x70, 0x63, 0x5c, 0x56, 0x31, 0x5c,
0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x42, 0x75,
0x69, 0x6c, 0x64, 0x72, 0x3a, 0x3a, 0x52, 0x70, 0x63, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -759,7 +878,7 @@ func file_wasi_v1_wasi_proto_rawDescGZIP() []byte {
return file_wasi_v1_wasi_proto_rawDescData
}
var file_wasi_v1_wasi_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_wasi_v1_wasi_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_wasi_v1_wasi_proto_goTypes = []interface{}{
(*HelpRequest)(nil), // 0: buildr.rpc.v1.HelpRequest
(*TaskExample)(nil), // 1: buildr.rpc.v1.TaskExample
@ -767,38 +886,45 @@ var file_wasi_v1_wasi_proto_goTypes = []interface{}{
(*PluginInventoryRequest)(nil), // 3: buildr.rpc.v1.PluginInventoryRequest
(*PluginInventoryResponse)(nil), // 4: buildr.rpc.v1.PluginInventoryResponse
(*StartTaskResponse)(nil), // 5: buildr.rpc.v1.StartTaskResponse
(*ProcessStartRequest)(nil), // 6: buildr.rpc.v1.ProcessStartRequest
(*ProcessStartResponse)(nil), // 7: buildr.rpc.v1.ProcessStartResponse
(*LookupPathRequest)(nil), // 8: buildr.rpc.v1.LookupPathRequest
(*LookupPathResponse)(nil), // 9: buildr.rpc.v1.LookupPathResponse
(*PluginInventoryResponse_InventorySpec)(nil), // 10: buildr.rpc.v1.PluginInventoryResponse.InventorySpec
nil, // 11: buildr.rpc.v1.ProcessStartRequest.EnvironmentEntry
(*v1.ModuleReference)(nil), // 12: buildr.rpc.v1.ModuleReference
(*v1.TaskSpec)(nil), // 13: buildr.rpc.v1.TaskSpec
(*v11.StartTaskRequest)(nil), // 14: buildr.rpc.v1.StartTaskRequest
(*BinaryNameRequest)(nil), // 6: buildr.rpc.v1.BinaryNameRequest
(*BinaryNameResponse)(nil), // 7: buildr.rpc.v1.BinaryNameResponse
(*ProcessStartRequest)(nil), // 8: buildr.rpc.v1.ProcessStartRequest
(*ProcessStartResponse)(nil), // 9: buildr.rpc.v1.ProcessStartResponse
(*LookupPathRequest)(nil), // 10: buildr.rpc.v1.LookupPathRequest
(*LookupPathResponse)(nil), // 11: buildr.rpc.v1.LookupPathResponse
(*PluginInventoryResponse_InventorySpec)(nil), // 12: buildr.rpc.v1.PluginInventoryResponse.InventorySpec
nil, // 13: buildr.rpc.v1.ProcessStartRequest.EnvironmentEntry
(*v1.ModuleReference)(nil), // 14: buildr.rpc.v1.ModuleReference
(*v1.TaskSpec)(nil), // 15: buildr.rpc.v1.TaskSpec
(*v1.ModuleSpec)(nil), // 16: buildr.rpc.v1.ModuleSpec
(*v11.StartTaskRequest)(nil), // 17: buildr.rpc.v1.StartTaskRequest
}
var file_wasi_v1_wasi_proto_depIdxs = []int32{
12, // 0: buildr.rpc.v1.HelpRequest.module_reference:type_name -> buildr.rpc.v1.ModuleReference
13, // 1: buildr.rpc.v1.TaskExample.task_spec:type_name -> buildr.rpc.v1.TaskSpec
14, // 0: buildr.rpc.v1.HelpRequest.module_reference:type_name -> buildr.rpc.v1.ModuleReference
15, // 1: buildr.rpc.v1.TaskExample.task_spec:type_name -> buildr.rpc.v1.TaskSpec
1, // 2: buildr.rpc.v1.HelpResponse.examples:type_name -> buildr.rpc.v1.TaskExample
10, // 3: buildr.rpc.v1.PluginInventoryResponse.specs:type_name -> buildr.rpc.v1.PluginInventoryResponse.InventorySpec
11, // 4: buildr.rpc.v1.ProcessStartRequest.environment:type_name -> buildr.rpc.v1.ProcessStartRequest.EnvironmentEntry
12, // 5: buildr.rpc.v1.PluginInventoryResponse.InventorySpec.module_ref:type_name -> buildr.rpc.v1.ModuleReference
3, // 6: buildr.rpc.v1.WasiExecutorService.PluginInventory:input_type -> buildr.rpc.v1.PluginInventoryRequest
14, // 7: buildr.rpc.v1.WasiExecutorService.StartTask:input_type -> buildr.rpc.v1.StartTaskRequest
0, // 8: buildr.rpc.v1.WasiExecutorService.Help:input_type -> buildr.rpc.v1.HelpRequest
6, // 9: buildr.rpc.v1.ExecutorHostService.ProcessStart:input_type -> buildr.rpc.v1.ProcessStartRequest
8, // 10: buildr.rpc.v1.ExecutorHostService.LookupPath:input_type -> buildr.rpc.v1.LookupPathRequest
4, // 11: buildr.rpc.v1.WasiExecutorService.PluginInventory:output_type -> buildr.rpc.v1.PluginInventoryResponse
5, // 12: buildr.rpc.v1.WasiExecutorService.StartTask:output_type -> buildr.rpc.v1.StartTaskResponse
2, // 13: buildr.rpc.v1.WasiExecutorService.Help:output_type -> buildr.rpc.v1.HelpResponse
7, // 14: buildr.rpc.v1.ExecutorHostService.ProcessStart:output_type -> buildr.rpc.v1.ProcessStartResponse
9, // 15: buildr.rpc.v1.ExecutorHostService.LookupPath:output_type -> buildr.rpc.v1.LookupPathResponse
11, // [11:16] is the sub-list for method output_type
6, // [6:11] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
12, // 3: buildr.rpc.v1.PluginInventoryResponse.specs:type_name -> buildr.rpc.v1.PluginInventoryResponse.InventorySpec
14, // 4: buildr.rpc.v1.BinaryNameRequest.module_reference:type_name -> buildr.rpc.v1.ModuleReference
16, // 5: buildr.rpc.v1.BinaryNameRequest.spec:type_name -> buildr.rpc.v1.ModuleSpec
13, // 6: buildr.rpc.v1.ProcessStartRequest.environment:type_name -> buildr.rpc.v1.ProcessStartRequest.EnvironmentEntry
14, // 7: buildr.rpc.v1.PluginInventoryResponse.InventorySpec.module_ref:type_name -> buildr.rpc.v1.ModuleReference
3, // 8: buildr.rpc.v1.WasiExecutorService.PluginInventory:input_type -> buildr.rpc.v1.PluginInventoryRequest
17, // 9: buildr.rpc.v1.WasiExecutorService.StartTask:input_type -> buildr.rpc.v1.StartTaskRequest
0, // 10: buildr.rpc.v1.WasiExecutorService.Help:input_type -> buildr.rpc.v1.HelpRequest
6, // 11: buildr.rpc.v1.WasiExecutorService.BinaryName:input_type -> buildr.rpc.v1.BinaryNameRequest
8, // 12: buildr.rpc.v1.ExecutorHostService.ProcessStart:input_type -> buildr.rpc.v1.ProcessStartRequest
10, // 13: buildr.rpc.v1.ExecutorHostService.LookupPath:input_type -> buildr.rpc.v1.LookupPathRequest
4, // 14: buildr.rpc.v1.WasiExecutorService.PluginInventory:output_type -> buildr.rpc.v1.PluginInventoryResponse
5, // 15: buildr.rpc.v1.WasiExecutorService.StartTask:output_type -> buildr.rpc.v1.StartTaskResponse
2, // 16: buildr.rpc.v1.WasiExecutorService.Help:output_type -> buildr.rpc.v1.HelpResponse
7, // 17: buildr.rpc.v1.WasiExecutorService.BinaryName:output_type -> buildr.rpc.v1.BinaryNameResponse
9, // 18: buildr.rpc.v1.ExecutorHostService.ProcessStart:output_type -> buildr.rpc.v1.ProcessStartResponse
11, // 19: buildr.rpc.v1.ExecutorHostService.LookupPath:output_type -> buildr.rpc.v1.LookupPathResponse
14, // [14:20] is the sub-list for method output_type
8, // [8:14] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_wasi_v1_wasi_proto_init() }
@ -880,7 +1006,7 @@ func file_wasi_v1_wasi_proto_init() {
}
}
file_wasi_v1_wasi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProcessStartRequest); i {
switch v := v.(*BinaryNameRequest); i {
case 0:
return &v.state
case 1:
@ -892,7 +1018,7 @@ func file_wasi_v1_wasi_proto_init() {
}
}
file_wasi_v1_wasi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProcessStartResponse); i {
switch v := v.(*BinaryNameResponse); i {
case 0:
return &v.state
case 1:
@ -904,7 +1030,7 @@ func file_wasi_v1_wasi_proto_init() {
}
}
file_wasi_v1_wasi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LookupPathRequest); i {
switch v := v.(*ProcessStartRequest); i {
case 0:
return &v.state
case 1:
@ -916,7 +1042,7 @@ func file_wasi_v1_wasi_proto_init() {
}
}
file_wasi_v1_wasi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LookupPathResponse); i {
switch v := v.(*ProcessStartResponse); i {
case 0:
return &v.state
case 1:
@ -928,6 +1054,30 @@ func file_wasi_v1_wasi_proto_init() {
}
}
file_wasi_v1_wasi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LookupPathRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_wasi_v1_wasi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LookupPathResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_wasi_v1_wasi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PluginInventoryResponse_InventorySpec); i {
case 0:
return &v.state
@ -946,7 +1096,7 @@ func file_wasi_v1_wasi_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_wasi_v1_wasi_proto_rawDesc,
NumEnums: 0,
NumMessages: 12,
NumMessages: 14,
NumExtensions: 0,
NumServices: 2,
},

View file

@ -346,6 +346,99 @@ func (m *StartTaskResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *BinaryNameRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
}
size := m.SizeVT()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBufferVT(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *BinaryNameRequest) MarshalToVT(dAtA []byte) (int, error) {
size := m.SizeVT()
return m.MarshalToSizedBufferVT(dAtA[:size])
}
func (m *BinaryNameRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if m == nil {
return 0, nil
}
i := len(dAtA)
_ = i
var l int
_ = l
if m.unknownFields != nil {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
if m.Spec != nil {
size, err := m.Spec.MarshalToSizedBufferVT(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x12
}
if m.ModuleReference != nil {
size, err := m.ModuleReference.MarshalToSizedBufferVT(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *BinaryNameResponse) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
}
size := m.SizeVT()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBufferVT(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *BinaryNameResponse) MarshalToVT(dAtA []byte) (int, error) {
size := m.SizeVT()
return m.MarshalToSizedBufferVT(dAtA[:size])
}
func (m *BinaryNameResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if m == nil {
return 0, nil
}
i := len(dAtA)
_ = i
var l int
_ = l
if m.unknownFields != nil {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
if len(m.Name) > 0 {
i -= len(m.Name)
copy(dAtA[i:], m.Name)
i = encodeVarint(dAtA, i, uint64(len(m.Name)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *ProcessStartRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@ -696,6 +789,38 @@ func (m *StartTaskResponse) SizeVT() (n int) {
return n
}
func (m *BinaryNameRequest) SizeVT() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.ModuleReference != nil {
l = m.ModuleReference.SizeVT()
n += 1 + l + sov(uint64(l))
}
if m.Spec != nil {
l = m.Spec.SizeVT()
n += 1 + l + sov(uint64(l))
}
n += len(m.unknownFields)
return n
}
func (m *BinaryNameResponse) SizeVT() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Name)
if l > 0 {
n += 1 + l + sov(uint64(l))
}
n += len(m.unknownFields)
return n
}
func (m *ProcessStartRequest) SizeVT() (n int) {
if m == nil {
return 0
@ -1518,6 +1643,212 @@ func (m *StartTaskResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
func (m *BinaryNameRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: BinaryNameRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: BinaryNameRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ModuleReference", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.ModuleReference == nil {
m.ModuleReference = &v1.ModuleReference{}
}
if err := m.ModuleReference.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Spec == nil {
m.Spec = &v1.ModuleSpec{}
}
if err := m.Spec.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *BinaryNameResponse) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: BinaryNameResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: BinaryNameResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Name = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ProcessStartRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View file

@ -37,10 +37,20 @@ message StartTaskResponse {
string error = 1;
}
message BinaryNameRequest {
ModuleReference module_reference = 1;
ModuleSpec spec = 2;
}
message BinaryNameResponse {
string name = 1;
}
service WasiExecutorService {
rpc PluginInventory(PluginInventoryRequest) returns (PluginInventoryResponse);
rpc StartTask(StartTaskRequest) returns (StartTaskResponse);
rpc Help(HelpRequest) returns (HelpResponse);
rpc BinaryName(BinaryNameRequest) returns (BinaryNameResponse);
}
message ProcessStartRequest {