diff --git a/Makefile b/Makefile index eff2cc1..5a3e3ce 100644 --- a/Makefile +++ b/Makefile @@ -12,10 +12,14 @@ unknown-cli: install: @echo "check PROTOC: `which protoc`" + go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.32.0 cargo install protobuf-codegen@3.2.0 generate: install - protoc --experimental_allow_proto3_optional --rust_out=proto/v1/src proto/v1/api.proto + protoc --experimental_allow_proto3_optional \ + --rust_out=proto/v1/src \ + --go_out=proto/v1/go \ + proto/v1/api.proto generate-web-list-mods-response: cd scripts/protobuf-list-modules-response && cargo run --release -- $(take) diff --git a/cli/src/cmd/mod.rs b/cli/src/cmd/mod.rs index 9b84330..9d95ae3 100644 --- a/cli/src/cmd/mod.rs +++ b/cli/src/cmd/mod.rs @@ -2,4 +2,5 @@ pub mod api_result; pub mod exec; pub mod generate; +#[allow(unused_imports)] pub use exec::*; diff --git a/proto/v1/api.proto b/proto/v1/api.proto index e05750e..ca8bfb8 100644 --- a/proto/v1/api.proto +++ b/proto/v1/api.proto @@ -1,5 +1,7 @@ syntax = "proto3"; +option go_package = "./modsurferpb"; + import "google/protobuf/timestamp.proto"; // Used to type the arguments and return types from wasm elements such as import diff --git a/proto/v1/go/go.mod b/proto/v1/go/go.mod new file mode 100644 index 0000000..8f05c42 --- /dev/null +++ b/proto/v1/go/go.mod @@ -0,0 +1,3 @@ +module github.com/dylibso/modsurfer/proto/v1/go/modsurferpb + +go 1.21.1 diff --git a/proto/v1/go/modsurferpb/api.pb.go b/proto/v1/go/modsurferpb/api.pb.go new file mode 100644 index 0000000..0a54306 --- /dev/null +++ b/proto/v1/go/modsurferpb/api.pb.go @@ -0,0 +1,3396 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.12.4 +// source: proto/v1/api.proto + +package modsurferpb + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + 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) +) + +// Used to type the arguments and return types from wasm elements such as import +// and export functions. +type ValType int32 + +const ( + ValType_I32 ValType = 0 + ValType_I64 ValType = 1 + ValType_F32 ValType = 2 + ValType_F64 ValType = 3 + ValType_V128 ValType = 4 + ValType_FuncRef ValType = 5 + ValType_ExternRef ValType = 6 +) + +// Enum value maps for ValType. +var ( + ValType_name = map[int32]string{ + 0: "I32", + 1: "I64", + 2: "F32", + 3: "F64", + 4: "V128", + 5: "FuncRef", + 6: "ExternRef", + } + ValType_value = map[string]int32{ + "I32": 0, + "I64": 1, + "F32": 2, + "F64": 3, + "V128": 4, + "FuncRef": 5, + "ExternRef": 6, + } +) + +func (x ValType) Enum() *ValType { + p := new(ValType) + *p = x + return p +} + +func (x ValType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ValType) Descriptor() protoreflect.EnumDescriptor { + return file_proto_v1_api_proto_enumTypes[0].Descriptor() +} + +func (ValType) Type() protoreflect.EnumType { + return &file_proto_v1_api_proto_enumTypes[0] +} + +func (x ValType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ValType.Descriptor instead. +func (ValType) EnumDescriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{0} +} + +// The language (or most similar match) used to produce a wasm module. +type SourceLanguage int32 + +const ( + SourceLanguage_Unknown SourceLanguage = 0 + SourceLanguage_Rust SourceLanguage = 1 + SourceLanguage_Go SourceLanguage = 2 + SourceLanguage_C SourceLanguage = 3 + SourceLanguage_Cpp SourceLanguage = 4 + SourceLanguage_AssemblyScript SourceLanguage = 5 + SourceLanguage_Swift SourceLanguage = 6 + SourceLanguage_JavaScript SourceLanguage = 7 + SourceLanguage_Haskell SourceLanguage = 8 + SourceLanguage_Zig SourceLanguage = 9 +) + +// Enum value maps for SourceLanguage. +var ( + SourceLanguage_name = map[int32]string{ + 0: "Unknown", + 1: "Rust", + 2: "Go", + 3: "C", + 4: "Cpp", + 5: "AssemblyScript", + 6: "Swift", + 7: "JavaScript", + 8: "Haskell", + 9: "Zig", + } + SourceLanguage_value = map[string]int32{ + "Unknown": 0, + "Rust": 1, + "Go": 2, + "C": 3, + "Cpp": 4, + "AssemblyScript": 5, + "Swift": 6, + "JavaScript": 7, + "Haskell": 8, + "Zig": 9, + } +) + +func (x SourceLanguage) Enum() *SourceLanguage { + p := new(SourceLanguage) + *p = x + return p +} + +func (x SourceLanguage) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SourceLanguage) Descriptor() protoreflect.EnumDescriptor { + return file_proto_v1_api_proto_enumTypes[1].Descriptor() +} + +func (SourceLanguage) Type() protoreflect.EnumType { + return &file_proto_v1_api_proto_enumTypes[1] +} + +func (x SourceLanguage) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SourceLanguage.Descriptor instead. +func (SourceLanguage) EnumDescriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{1} +} + +// The direction, descending or ascending, of the sort operation. +type Direction int32 + +const ( + Direction_Desc Direction = 0 + Direction_Asc Direction = 1 +) + +// Enum value maps for Direction. +var ( + Direction_name = map[int32]string{ + 0: "Desc", + 1: "Asc", + } + Direction_value = map[string]int32{ + "Desc": 0, + "Asc": 1, + } +) + +func (x Direction) Enum() *Direction { + p := new(Direction) + *p = x + return p +} + +func (x Direction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Direction) Descriptor() protoreflect.EnumDescriptor { + return file_proto_v1_api_proto_enumTypes[2].Descriptor() +} + +func (Direction) Type() protoreflect.EnumType { + return &file_proto_v1_api_proto_enumTypes[2] +} + +func (x Direction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Direction.Descriptor instead. +func (Direction) EnumDescriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{2} +} + +// The field within the Module schema that is used as the sorting dimension. +type Field int32 + +const ( + Field_CreatedAt Field = 0 + Field_Name Field = 1 + Field_Size Field = 2 + Field_Language Field = 3 + Field_ImportsCount Field = 4 + Field_ExportsCount Field = 5 + Field_Sha256 Field = 6 + Field_Complexity Field = 7 +) + +// Enum value maps for Field. +var ( + Field_name = map[int32]string{ + 0: "CreatedAt", + 1: "Name", + 2: "Size", + 3: "Language", + 4: "ImportsCount", + 5: "ExportsCount", + 6: "Sha256", + 7: "Complexity", + } + Field_value = map[string]int32{ + "CreatedAt": 0, + "Name": 1, + "Size": 2, + "Language": 3, + "ImportsCount": 4, + "ExportsCount": 5, + "Sha256": 6, + "Complexity": 7, + } +) + +func (x Field) Enum() *Field { + p := new(Field) + *p = x + return p +} + +func (x Field) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Field) Descriptor() protoreflect.EnumDescriptor { + return file_proto_v1_api_proto_enumTypes[3].Descriptor() +} + +func (Field) Type() protoreflect.EnumType { + return &file_proto_v1_api_proto_enumTypes[3] +} + +func (x Field) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Field.Descriptor instead. +func (Field) EnumDescriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{3} +} + +// Represents the expected outcome of an AuditModulesRequest. If PASS is provided, then +// the audit returns modules which conform to the checkfile. If FAIL is provided, then +// the audit returns modules which do not conform to the checkfile. +type AuditOutcome int32 + +const ( + AuditOutcome_PASS AuditOutcome = 0 + AuditOutcome_FAIL AuditOutcome = 1 +) + +// Enum value maps for AuditOutcome. +var ( + AuditOutcome_name = map[int32]string{ + 0: "PASS", + 1: "FAIL", + } + AuditOutcome_value = map[string]int32{ + "PASS": 0, + "FAIL": 1, + } +) + +func (x AuditOutcome) Enum() *AuditOutcome { + p := new(AuditOutcome) + *p = x + return p +} + +func (x AuditOutcome) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AuditOutcome) Descriptor() protoreflect.EnumDescriptor { + return file_proto_v1_api_proto_enumTypes[4].Descriptor() +} + +func (AuditOutcome) Type() protoreflect.EnumType { + return &file_proto_v1_api_proto_enumTypes[4] +} + +func (x AuditOutcome) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AuditOutcome.Descriptor instead. +func (AuditOutcome) EnumDescriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{4} +} + +// Contained by an import or export element within a wasm binary. +type Function struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Params []ValType `protobuf:"varint,1,rep,packed,name=params,proto3,enum=ValType" json:"params,omitempty"` + Results []ValType `protobuf:"varint,2,rep,packed,name=results,proto3,enum=ValType" json:"results,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Function) Reset() { + *x = Function{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Function) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Function) ProtoMessage() {} + +func (x *Function) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Function.ProtoReflect.Descriptor instead. +func (*Function) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{0} +} + +func (x *Function) GetParams() []ValType { + if x != nil { + return x.Params + } + return nil +} + +func (x *Function) GetResults() []ValType { + if x != nil { + return x.Results + } + return nil +} + +func (x *Function) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// A function and module namespace that is defined outside of the current +// module, and referenced & called by the current module. +type Import struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleName string `protobuf:"bytes,1,opt,name=module_name,json=moduleName,proto3" json:"module_name,omitempty"` + Func *Function `protobuf:"bytes,2,opt,name=func,proto3" json:"func,omitempty"` +} + +func (x *Import) Reset() { + *x = Import{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Import) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Import) ProtoMessage() {} + +func (x *Import) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Import.ProtoReflect.Descriptor instead. +func (*Import) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{1} +} + +func (x *Import) GetModuleName() string { + if x != nil { + return x.ModuleName + } + return "" +} + +func (x *Import) GetFunc() *Function { + if x != nil { + return x.Func + } + return nil +} + +// A function that is defined inside the current module, made available to +// outside modules / environments. +type Export struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Func *Function `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` +} + +func (x *Export) Reset() { + *x = Export{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Export) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Export) ProtoMessage() {} + +func (x *Export) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Export.ProtoReflect.Descriptor instead. +func (*Export) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{2} +} + +func (x *Export) GetFunc() *Function { + if x != nil { + return x.Func + } + return nil +} + +// Details about a wasm module, either extracted directly from the binary, or +// inferred somehow. +type Module struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID for this module, generated by the database. + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // sha256 hash of the modules raw bytes + Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` + // function imports called by the module (see: + // + Imports []*Import `protobuf:"bytes,4,rep,name=imports,proto3" json:"imports,omitempty"` + // function exports provided by the module (see: + // + Exports []*Export `protobuf:"bytes,5,rep,name=exports,proto3" json:"exports,omitempty"` + // size in bytes of the module + Size uint64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"` + // path or locator to the module + Location string `protobuf:"bytes,7,opt,name=location,proto3" json:"location,omitempty"` + // programming language used to produce this module + SourceLanguage SourceLanguage `protobuf:"varint,8,opt,name=source_language,json=sourceLanguage,proto3,enum=SourceLanguage" json:"source_language,omitempty"` + // arbitrary metadata provided by the operator of this module + Metadata map[string]string `protobuf:"bytes,9,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // timestamp when this module was loaded and stored + InsertedAt *timestamp.Timestamp `protobuf:"bytes,10,opt,name=inserted_at,json=insertedAt,proto3" json:"inserted_at,omitempty"` + // the interned strings stored in the wasm binary (panic/abort messages, etc.) + Strings []string `protobuf:"bytes,11,rep,name=strings,proto3" json:"strings,omitempty"` + // the cyclomatic complexity + // () of the instructions + Complexity *uint32 `protobuf:"varint,13,opt,name=complexity,proto3,oneof" json:"complexity,omitempty"` + // the serialized graph in json format + Graph []byte `protobuf:"bytes,14,opt,name=graph,proto3,oneof" json:"graph,omitempty"` + // function hashes + FunctionHashes map[string]string `protobuf:"bytes,15,rep,name=function_hashes,json=functionHashes,proto3" json:"function_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Module) Reset() { + *x = Module{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Module) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Module) ProtoMessage() {} + +func (x *Module) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Module.ProtoReflect.Descriptor instead. +func (*Module) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{3} +} + +func (x *Module) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Module) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *Module) GetImports() []*Import { + if x != nil { + return x.Imports + } + return nil +} + +func (x *Module) GetExports() []*Export { + if x != nil { + return x.Exports + } + return nil +} + +func (x *Module) GetSize() uint64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *Module) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +func (x *Module) GetSourceLanguage() SourceLanguage { + if x != nil { + return x.SourceLanguage + } + return SourceLanguage_Unknown +} + +func (x *Module) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Module) GetInsertedAt() *timestamp.Timestamp { + if x != nil { + return x.InsertedAt + } + return nil +} + +func (x *Module) GetStrings() []string { + if x != nil { + return x.Strings + } + return nil +} + +func (x *Module) GetComplexity() uint32 { + if x != nil && x.Complexity != nil { + return *x.Complexity + } + return 0 +} + +func (x *Module) GetGraph() []byte { + if x != nil { + return x.Graph + } + return nil +} + +func (x *Module) GetFunctionHashes() map[string]string { + if x != nil { + return x.FunctionHashes + } + return nil +} + +// Details about a wasm module graph +type ModuleGraph struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID for this module, generated by the database. + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // the serialized graph in json format + JsonBytes []byte `protobuf:"bytes,2,opt,name=json_bytes,json=jsonBytes,proto3" json:"json_bytes,omitempty"` +} + +func (x *ModuleGraph) Reset() { + *x = ModuleGraph{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModuleGraph) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModuleGraph) ProtoMessage() {} + +func (x *ModuleGraph) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 ModuleGraph.ProtoReflect.Descriptor instead. +func (*ModuleGraph) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{4} +} + +func (x *ModuleGraph) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ModuleGraph) GetJsonBytes() []byte { + if x != nil { + return x.JsonBytes + } + return nil +} + +// An error message indicating a problem in the API. +type Error struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *Error) Reset() { + *x = Error{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Error) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Error) ProtoMessage() {} + +func (x *Error) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{5} +} + +func (x *Error) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Error) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// Control/limit the way results are paginated when working with large +// responses. +type Pagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` + Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *Pagination) Reset() { + *x = Pagination{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pagination) ProtoMessage() {} + +func (x *Pagination) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Pagination.ProtoReflect.Descriptor instead. +func (*Pagination) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{6} +} + +func (x *Pagination) GetLimit() uint32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *Pagination) GetOffset() uint32 { + if x != nil { + return x.Offset + } + return 0 +} + +// Determine how to sort results from the API +type Sort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Direction Direction `protobuf:"varint,1,opt,name=direction,proto3,enum=Direction" json:"direction,omitempty"` + Field Field `protobuf:"varint,2,opt,name=field,proto3,enum=Field" json:"field,omitempty"` +} + +func (x *Sort) Reset() { + *x = Sort{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Sort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Sort) ProtoMessage() {} + +func (x *Sort) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 Sort.ProtoReflect.Descriptor instead. +func (*Sort) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{7} +} + +func (x *Sort) GetDirection() Direction { + if x != nil { + return x.Direction + } + return Direction_Desc +} + +func (x *Sort) GetField() Field { + if x != nil { + return x.Field + } + return Field_CreatedAt +} + +// `PUT /api/v1/module:` +// Insert a module, extract data from binary. Return the module ID & hash. +type CreateModuleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Wasm []byte `protobuf:"bytes,1,opt,name=wasm,proto3" json:"wasm,omitempty"` + Metadata map[string]string `protobuf:"bytes,2,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // a valid URL with a scheme prefix e.g. `s3://`, `file://`, `https://` + Location *string `protobuf:"bytes,3,opt,name=location,proto3,oneof" json:"location,omitempty"` +} + +func (x *CreateModuleRequest) Reset() { + *x = CreateModuleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateModuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateModuleRequest) ProtoMessage() {} + +func (x *CreateModuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 CreateModuleRequest.ProtoReflect.Descriptor instead. +func (*CreateModuleRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{8} +} + +func (x *CreateModuleRequest) GetWasm() []byte { + if x != nil { + return x.Wasm + } + return nil +} + +func (x *CreateModuleRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *CreateModuleRequest) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location + } + return "" +} + +// The message returned in response to a `CreateModuleRequest`. +type CreateModuleResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleId int64 `protobuf:"varint,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"` + Hash string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *CreateModuleResponse) Reset() { + *x = CreateModuleResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateModuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateModuleResponse) ProtoMessage() {} + +func (x *CreateModuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 CreateModuleResponse.ProtoReflect.Descriptor instead. +func (*CreateModuleResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateModuleResponse) GetModuleId() int64 { + if x != nil { + return x.ModuleId + } + return 0 +} + +func (x *CreateModuleResponse) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *CreateModuleResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/module:` +// Return a single module. +type GetModuleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleId int64 `protobuf:"varint,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"` +} + +func (x *GetModuleRequest) Reset() { + *x = GetModuleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModuleRequest) ProtoMessage() {} + +func (x *GetModuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 GetModuleRequest.ProtoReflect.Descriptor instead. +func (*GetModuleRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{10} +} + +func (x *GetModuleRequest) GetModuleId() int64 { + if x != nil { + return x.ModuleId + } + return 0 +} + +// The message returned in response to a `GetModuleRequest`. +type GetModuleResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Module *Module `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *GetModuleResponse) Reset() { + *x = GetModuleResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModuleResponse) ProtoMessage() {} + +func (x *GetModuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 GetModuleResponse.ProtoReflect.Descriptor instead. +func (*GetModuleResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{11} +} + +func (x *GetModuleResponse) GetModule() *Module { + if x != nil { + return x.Module + } + return nil +} + +func (x *GetModuleResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/modules:` +// Return paginated list of all modules. +type ListModulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *Pagination `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` + Sort *Sort `protobuf:"bytes,2,opt,name=sort,proto3" json:"sort,omitempty"` +} + +func (x *ListModulesRequest) Reset() { + *x = ListModulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListModulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListModulesRequest) ProtoMessage() {} + +func (x *ListModulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 ListModulesRequest.ProtoReflect.Descriptor instead. +func (*ListModulesRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{12} +} + +func (x *ListModulesRequest) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *ListModulesRequest) GetSort() *Sort { + if x != nil { + return x.Sort + } + return nil +} + +// The message returned in response to a `ListModulesRequest`. +type ListModulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Modules []*Module `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"` + Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + // the full count of results in the database (not the count of this message's + // `modules`). + Total uint64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` + Sort *Sort `protobuf:"bytes,4,opt,name=sort,proto3" json:"sort,omitempty"` + Error *Error `protobuf:"bytes,5,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *ListModulesResponse) Reset() { + *x = ListModulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListModulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListModulesResponse) ProtoMessage() {} + +func (x *ListModulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 ListModulesResponse.ProtoReflect.Descriptor instead. +func (*ListModulesResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{13} +} + +func (x *ListModulesResponse) GetModules() []*Module { + if x != nil { + return x.Modules + } + return nil +} + +func (x *ListModulesResponse) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *ListModulesResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *ListModulesResponse) GetSort() *Sort { + if x != nil { + return x.Sort + } + return nil +} + +func (x *ListModulesResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/search:` +// Search for modules based on filter params provided (which should be any +// dimension of the module schema, or string search in any metadata value). +// Return a paginated list of matching modules. +type SearchModulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID for this module, generated by the database. + Id *int64 `protobuf:"varint,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + // original name of the binary module file + Hash *string `protobuf:"bytes,3,opt,name=hash,proto3,oneof" json:"hash,omitempty"` + // function imports called by the module (see: + // ) + Imports []*Import `protobuf:"bytes,4,rep,name=imports,proto3" json:"imports,omitempty"` + // function exports provided by the module (see: + // ) + Exports []*Export `protobuf:"bytes,5,rep,name=exports,proto3" json:"exports,omitempty"` + // minimum size in bytes of the module + MinSize *uint64 `protobuf:"varint,6,opt,name=min_size,json=minSize,proto3,oneof" json:"min_size,omitempty"` + // maximum size in bytes of the module + MaxSize *uint64 `protobuf:"varint,7,opt,name=max_size,json=maxSize,proto3,oneof" json:"max_size,omitempty"` + // optional path or locator to the module (TODO: maybe this is better stored + // as metadata) + Location *string `protobuf:"bytes,8,opt,name=location,proto3,oneof" json:"location,omitempty"` + // programming language used to produce this module + SourceLanguage *SourceLanguage `protobuf:"varint,9,opt,name=source_language,json=sourceLanguage,proto3,enum=SourceLanguage,oneof" json:"source_language,omitempty"` + // arbitrary metadata provided by the operator of this module + Metadata map[string]string `protobuf:"bytes,10,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // timestamp when this module was loaded and stored + InsertedBefore *timestamp.Timestamp `protobuf:"bytes,11,opt,name=inserted_before,json=insertedBefore,proto3,oneof" json:"inserted_before,omitempty"` + // timestamp when this module was loaded and stored + InsertedAfter *timestamp.Timestamp `protobuf:"bytes,12,opt,name=inserted_after,json=insertedAfter,proto3,oneof" json:"inserted_after,omitempty"` + // the interned strings stored in the wasm binary (panic/abort messages, etc.) + Strings []string `protobuf:"bytes,13,rep,name=strings,proto3" json:"strings,omitempty"` + // match on any function name in an import or export. + FunctionName *string `protobuf:"bytes,14,opt,name=function_name,json=functionName,proto3,oneof" json:"function_name,omitempty"` + // match on the module name e.g. `env` or `wasi_snapshot_preview1` + ModuleName *string `protobuf:"bytes,15,opt,name=module_name,json=moduleName,proto3,oneof" json:"module_name,omitempty"` + Pagination *Pagination `protobuf:"bytes,16,opt,name=pagination,proto3" json:"pagination,omitempty"` + Sort *Sort `protobuf:"bytes,17,opt,name=sort,proto3" json:"sort,omitempty"` +} + +func (x *SearchModulesRequest) Reset() { + *x = SearchModulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchModulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchModulesRequest) ProtoMessage() {} + +func (x *SearchModulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 SearchModulesRequest.ProtoReflect.Descriptor instead. +func (*SearchModulesRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{14} +} + +func (x *SearchModulesRequest) GetId() int64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *SearchModulesRequest) GetHash() string { + if x != nil && x.Hash != nil { + return *x.Hash + } + return "" +} + +func (x *SearchModulesRequest) GetImports() []*Import { + if x != nil { + return x.Imports + } + return nil +} + +func (x *SearchModulesRequest) GetExports() []*Export { + if x != nil { + return x.Exports + } + return nil +} + +func (x *SearchModulesRequest) GetMinSize() uint64 { + if x != nil && x.MinSize != nil { + return *x.MinSize + } + return 0 +} + +func (x *SearchModulesRequest) GetMaxSize() uint64 { + if x != nil && x.MaxSize != nil { + return *x.MaxSize + } + return 0 +} + +func (x *SearchModulesRequest) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location + } + return "" +} + +func (x *SearchModulesRequest) GetSourceLanguage() SourceLanguage { + if x != nil && x.SourceLanguage != nil { + return *x.SourceLanguage + } + return SourceLanguage_Unknown +} + +func (x *SearchModulesRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *SearchModulesRequest) GetInsertedBefore() *timestamp.Timestamp { + if x != nil { + return x.InsertedBefore + } + return nil +} + +func (x *SearchModulesRequest) GetInsertedAfter() *timestamp.Timestamp { + if x != nil { + return x.InsertedAfter + } + return nil +} + +func (x *SearchModulesRequest) GetStrings() []string { + if x != nil { + return x.Strings + } + return nil +} + +func (x *SearchModulesRequest) GetFunctionName() string { + if x != nil && x.FunctionName != nil { + return *x.FunctionName + } + return "" +} + +func (x *SearchModulesRequest) GetModuleName() string { + if x != nil && x.ModuleName != nil { + return *x.ModuleName + } + return "" +} + +func (x *SearchModulesRequest) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *SearchModulesRequest) GetSort() *Sort { + if x != nil { + return x.Sort + } + return nil +} + +// The message returned in response to a `SearchModulesRequest`. +type SearchModulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Modules []*Module `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"` + Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + // the full count of results in the database (not the count of this message's + // `modules`). + Total uint64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` + Sort *Sort `protobuf:"bytes,4,opt,name=sort,proto3" json:"sort,omitempty"` + Error *Error `protobuf:"bytes,5,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *SearchModulesResponse) Reset() { + *x = SearchModulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchModulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchModulesResponse) ProtoMessage() {} + +func (x *SearchModulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 SearchModulesResponse.ProtoReflect.Descriptor instead. +func (*SearchModulesResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{15} +} + +func (x *SearchModulesResponse) GetModules() []*Module { + if x != nil { + return x.Modules + } + return nil +} + +func (x *SearchModulesResponse) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *SearchModulesResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *SearchModulesResponse) GetSort() *Sort { + if x != nil { + return x.Sort + } + return nil +} + +func (x *SearchModulesResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `DELETE /api/v1/module:` +// Remove a module from the database by its ID. Return the module IDs & hashes. +type DeleteModulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleIds []int64 `protobuf:"varint,1,rep,packed,name=module_ids,json=moduleIds,proto3" json:"module_ids,omitempty"` +} + +func (x *DeleteModulesRequest) Reset() { + *x = DeleteModulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteModulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteModulesRequest) ProtoMessage() {} + +func (x *DeleteModulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 DeleteModulesRequest.ProtoReflect.Descriptor instead. +func (*DeleteModulesRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{16} +} + +func (x *DeleteModulesRequest) GetModuleIds() []int64 { + if x != nil { + return x.ModuleIds + } + return nil +} + +// The message returned in response to a `DeleteModulesRequest`. +type DeleteModulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleIdHash map[int64]string `protobuf:"bytes,1,rep,name=module_id_hash,json=moduleIdHash,proto3" json:"module_id_hash,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *DeleteModulesResponse) Reset() { + *x = DeleteModulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteModulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteModulesResponse) ProtoMessage() {} + +func (x *DeleteModulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 DeleteModulesResponse.ProtoReflect.Descriptor instead. +func (*DeleteModulesResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteModulesResponse) GetModuleIdHash() map[int64]string { + if x != nil { + return x.ModuleIdHash + } + return nil +} + +func (x *DeleteModulesResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/audit:` +// Return a list of modules which match the outcome requirements using the provided checkfile. +type AuditModulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the YAML checkfile (e.g. mod.yaml) bytes + Checkfile []byte `protobuf:"bytes,1,opt,name=checkfile,proto3" json:"checkfile,omitempty"` + Outcome AuditOutcome `protobuf:"varint,2,opt,name=outcome,proto3,enum=AuditOutcome" json:"outcome,omitempty"` + Pagination *Pagination `protobuf:"bytes,3,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *AuditModulesRequest) Reset() { + *x = AuditModulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuditModulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditModulesRequest) ProtoMessage() {} + +func (x *AuditModulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 AuditModulesRequest.ProtoReflect.Descriptor instead. +func (*AuditModulesRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{18} +} + +func (x *AuditModulesRequest) GetCheckfile() []byte { + if x != nil { + return x.Checkfile + } + return nil +} + +func (x *AuditModulesRequest) GetOutcome() AuditOutcome { + if x != nil { + return x.Outcome + } + return AuditOutcome_PASS +} + +func (x *AuditModulesRequest) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +// The message returned in response to a `AuditModulesRequest`. +type AuditModulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // each record contains the ID of the invalid Module which failed the audit, as well as the failure + // report produced by the validation check (encoded in JSON) + InvalidModuleReport map[int64][]byte `protobuf:"bytes,1,rep,name=invalid_module_report,json=invalidModuleReport,proto3" json:"invalid_module_report,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + // the full count of results in the database (not the count of this message's + // `modules`). + Total uint64 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` + Error *Error `protobuf:"bytes,4,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *AuditModulesResponse) Reset() { + *x = AuditModulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuditModulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuditModulesResponse) ProtoMessage() {} + +func (x *AuditModulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 AuditModulesResponse.ProtoReflect.Descriptor instead. +func (*AuditModulesResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{19} +} + +func (x *AuditModulesResponse) GetInvalidModuleReport() map[int64][]byte { + if x != nil { + return x.InvalidModuleReport + } + return nil +} + +func (x *AuditModulesResponse) GetPagination() *Pagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *AuditModulesResponse) GetTotal() uint64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *AuditModulesResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/diff:` +// Return the diff of two modules +type DiffRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Module1 int64 `protobuf:"varint,1,opt,name=module1,proto3" json:"module1,omitempty"` + Module2 int64 `protobuf:"varint,2,opt,name=module2,proto3" json:"module2,omitempty"` + ColorTerminal bool `protobuf:"varint,3,opt,name=color_terminal,json=colorTerminal,proto3" json:"color_terminal,omitempty"` + WithContext bool `protobuf:"varint,4,opt,name=with_context,json=withContext,proto3" json:"with_context,omitempty"` +} + +func (x *DiffRequest) Reset() { + *x = DiffRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiffRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiffRequest) ProtoMessage() {} + +func (x *DiffRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 DiffRequest.ProtoReflect.Descriptor instead. +func (*DiffRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{20} +} + +func (x *DiffRequest) GetModule1() int64 { + if x != nil { + return x.Module1 + } + return 0 +} + +func (x *DiffRequest) GetModule2() int64 { + if x != nil { + return x.Module2 + } + return 0 +} + +func (x *DiffRequest) GetColorTerminal() bool { + if x != nil { + return x.ColorTerminal + } + return false +} + +func (x *DiffRequest) GetWithContext() bool { + if x != nil { + return x.WithContext + } + return false +} + +// The message returned in response to `DiffRequest`, contains a text representation of the difference +// between the two specified modules. +type DiffResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Diff string `protobuf:"bytes,1,opt,name=diff,proto3" json:"diff,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *DiffResponse) Reset() { + *x = DiffResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiffResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiffResponse) ProtoMessage() {} + +func (x *DiffResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 DiffResponse.ProtoReflect.Descriptor instead. +func (*DiffResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{21} +} + +func (x *DiffResponse) GetDiff() string { + if x != nil { + return x.Diff + } + return "" +} + +func (x *DiffResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/validate:` +// Return the failure report (if applicable) of a wasm module validation against a given checkfile. +type ValidateModuleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // the YAML checkfile (e.g. mod.yaml) bytes + Checkfile []byte `protobuf:"bytes,1,opt,name=checkfile,proto3" json:"checkfile,omitempty"` + // module_input is either an existing `module_id` that is known to the database, or the bytes of + // a raw wasm module. It is used to validate against the given checkfile. + // + // Types that are assignable to ModuleInput: + // + // *ValidateModuleRequest_Module + // *ValidateModuleRequest_ModuleId + ModuleInput isValidateModuleRequest_ModuleInput `protobuf_oneof:"module_input"` +} + +func (x *ValidateModuleRequest) Reset() { + *x = ValidateModuleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateModuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateModuleRequest) ProtoMessage() {} + +func (x *ValidateModuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 ValidateModuleRequest.ProtoReflect.Descriptor instead. +func (*ValidateModuleRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{22} +} + +func (x *ValidateModuleRequest) GetCheckfile() []byte { + if x != nil { + return x.Checkfile + } + return nil +} + +func (m *ValidateModuleRequest) GetModuleInput() isValidateModuleRequest_ModuleInput { + if m != nil { + return m.ModuleInput + } + return nil +} + +func (x *ValidateModuleRequest) GetModule() []byte { + if x, ok := x.GetModuleInput().(*ValidateModuleRequest_Module); ok { + return x.Module + } + return nil +} + +func (x *ValidateModuleRequest) GetModuleId() int64 { + if x, ok := x.GetModuleInput().(*ValidateModuleRequest_ModuleId); ok { + return x.ModuleId + } + return 0 +} + +type isValidateModuleRequest_ModuleInput interface { + isValidateModuleRequest_ModuleInput() +} + +type ValidateModuleRequest_Module struct { + Module []byte `protobuf:"bytes,2,opt,name=module,proto3,oneof"` +} + +type ValidateModuleRequest_ModuleId struct { + ModuleId int64 `protobuf:"varint,3,opt,name=module_id,json=moduleId,proto3,oneof"` +} + +func (*ValidateModuleRequest_Module) isValidateModuleRequest_ModuleInput() {} + +func (*ValidateModuleRequest_ModuleId) isValidateModuleRequest_ModuleInput() {} + +// The failure report produced by the validation check (encoded in JSON). +type ValidateModuleResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InvalidModuleReport []byte `protobuf:"bytes,1,opt,name=invalid_module_report,json=invalidModuleReport,proto3" json:"invalid_module_report,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *ValidateModuleResponse) Reset() { + *x = ValidateModuleResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateModuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateModuleResponse) ProtoMessage() {} + +func (x *ValidateModuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_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 ValidateModuleResponse.ProtoReflect.Descriptor instead. +func (*ValidateModuleResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{23} +} + +func (x *ValidateModuleResponse) GetInvalidModuleReport() []byte { + if x != nil { + return x.InvalidModuleReport + } + return nil +} + +func (x *ValidateModuleResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// `POST /api/v1/module_graph:` +// Return a single module_graph. +type GetModuleGraphRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleId int64 `protobuf:"varint,1,opt,name=module_id,json=moduleId,proto3" json:"module_id,omitempty"` +} + +func (x *GetModuleGraphRequest) Reset() { + *x = GetModuleGraphRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModuleGraphRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModuleGraphRequest) ProtoMessage() {} + +func (x *GetModuleGraphRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetModuleGraphRequest.ProtoReflect.Descriptor instead. +func (*GetModuleGraphRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{24} +} + +func (x *GetModuleGraphRequest) GetModuleId() int64 { + if x != nil { + return x.ModuleId + } + return 0 +} + +// The message returned in response to a `GetModuleGraphRequest`. +type GetModuleGraphResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ModuleGraph *ModuleGraph `protobuf:"bytes,1,opt,name=module_graph,json=moduleGraph,proto3" json:"module_graph,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *GetModuleGraphResponse) Reset() { + *x = GetModuleGraphResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModuleGraphResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModuleGraphResponse) ProtoMessage() {} + +func (x *GetModuleGraphResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetModuleGraphResponse.ProtoReflect.Descriptor instead. +func (*GetModuleGraphResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{25} +} + +func (x *GetModuleGraphResponse) GetModuleGraph() *ModuleGraph { + if x != nil { + return x.ModuleGraph + } + return nil +} + +func (x *GetModuleGraphResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// PUT /api/v1/plugin: +type InstallPluginRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + Location string `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"` + Wasm []byte `protobuf:"bytes,4,opt,name=wasm,proto3" json:"wasm,omitempty"` // bytes config = 5; +} + +func (x *InstallPluginRequest) Reset() { + *x = InstallPluginRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstallPluginRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstallPluginRequest) ProtoMessage() {} + +func (x *InstallPluginRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstallPluginRequest.ProtoReflect.Descriptor instead. +func (*InstallPluginRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{26} +} + +func (x *InstallPluginRequest) GetIdentifier() string { + if x != nil { + return x.Identifier + } + return "" +} + +func (x *InstallPluginRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *InstallPluginRequest) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +func (x *InstallPluginRequest) GetWasm() []byte { + if x != nil { + return x.Wasm + } + return nil +} + +type InstallPluginResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *InstallPluginResponse) Reset() { + *x = InstallPluginResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InstallPluginResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstallPluginResponse) ProtoMessage() {} + +func (x *InstallPluginResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstallPluginResponse.ProtoReflect.Descriptor instead. +func (*InstallPluginResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{27} +} + +func (x *InstallPluginResponse) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *InstallPluginResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// DELETE /api/v1/plugin: +type UninstallPluginRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` +} + +func (x *UninstallPluginRequest) Reset() { + *x = UninstallPluginRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UninstallPluginRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UninstallPluginRequest) ProtoMessage() {} + +func (x *UninstallPluginRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UninstallPluginRequest.ProtoReflect.Descriptor instead. +func (*UninstallPluginRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{28} +} + +func (x *UninstallPluginRequest) GetIdentifier() string { + if x != nil { + return x.Identifier + } + return "" +} + +type UninstallPluginResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error *Error `protobuf:"bytes,1,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *UninstallPluginResponse) Reset() { + *x = UninstallPluginResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UninstallPluginResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UninstallPluginResponse) ProtoMessage() {} + +func (x *UninstallPluginResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UninstallPluginResponse.ProtoReflect.Descriptor instead. +func (*UninstallPluginResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{29} +} + +func (x *UninstallPluginResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +// POST /api/v1/plugin: +type CallPluginRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` + FunctionName string `protobuf:"bytes,2,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"` + Input []byte `protobuf:"bytes,3,opt,name=input,proto3" json:"input,omitempty"` + Hash *string `protobuf:"bytes,4,opt,name=hash,proto3,oneof" json:"hash,omitempty"` // bytes config = 5; +} + +func (x *CallPluginRequest) Reset() { + *x = CallPluginRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CallPluginRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CallPluginRequest) ProtoMessage() {} + +func (x *CallPluginRequest) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CallPluginRequest.ProtoReflect.Descriptor instead. +func (*CallPluginRequest) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{30} +} + +func (x *CallPluginRequest) GetIdentifier() string { + if x != nil { + return x.Identifier + } + return "" +} + +func (x *CallPluginRequest) GetFunctionName() string { + if x != nil { + return x.FunctionName + } + return "" +} + +func (x *CallPluginRequest) GetInput() []byte { + if x != nil { + return x.Input + } + return nil +} + +func (x *CallPluginRequest) GetHash() string { + if x != nil && x.Hash != nil { + return *x.Hash + } + return "" +} + +type CallPluginResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *CallPluginResponse) Reset() { + *x = CallPluginResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_v1_api_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CallPluginResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CallPluginResponse) ProtoMessage() {} + +func (x *CallPluginResponse) ProtoReflect() protoreflect.Message { + mi := &file_proto_v1_api_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CallPluginResponse.ProtoReflect.Descriptor instead. +func (*CallPluginResponse) Descriptor() ([]byte, []int) { + return file_proto_v1_api_proto_rawDescGZIP(), []int{31} +} + +func (x *CallPluginResponse) GetOutput() []byte { + if x != nil { + return x.Output + } + return nil +} + +func (x *CallPluginResponse) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +var File_proto_v1_api_proto protoreflect.FileDescriptor + +var file_proto_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 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, 0x64, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x08, 0x2e, 0x56, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x08, 0x2e, 0x56, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x06, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x04, 0x66, 0x75, 0x6e, 0x63, 0x22, 0x27, 0x0a, 0x06, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x1d, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, + 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x22, 0x85, + 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, + 0x07, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, + 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x12, 0x21, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x07, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0a, 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, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x05, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, + 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x22, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x4e, 0x0a, 0x04, 0x53, 0x6f, 0x72, 0x74, 0x12, + 0x28, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x06, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x77, 0x61, 0x73, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x77, + 0x61, 0x73, 0x6d, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, + 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x5c, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x04, 0x73, + 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x53, 0x6f, 0x72, 0x74, + 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, + 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x07, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x12, 0x2b, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, + 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x80, 0x07, 0x0a, + 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x07, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x6d, + 0x69, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x6d, + 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x48, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x0f, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x0b, 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, 0x48, + 0x06, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x0c, 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, 0x48, 0x07, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, + 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x05, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x1a, 0x3b, + 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, + 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc5, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x19, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, + 0x53, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x35, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0xd5, + 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, + 0x64, 0x48, 0x61, 0x73, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x49, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, + 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x48, 0x61, 0x73, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x74, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x07, + 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, + 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x14, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x15, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x41, 0x75, 0x64, + 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x2b, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x66, 0x66, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x32, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4f, 0x0a, 0x0c, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7e, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, + 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0x79, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0x34, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x47, 0x72, + 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2f, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0x88, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x77, 0x61, 0x73, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x77, 0x61, 0x73, + 0x6d, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x15, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x38, 0x0a, 0x16, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x46, + 0x0a, 0x17, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x11, 0x43, 0x61, 0x6c, 0x6c, 0x50, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x59, 0x0a, 0x12, 0x43, 0x61, 0x6c, + 0x6c, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x53, 0x0a, 0x07, 0x56, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x49, 0x33, 0x32, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x36, 0x34, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x33, 0x32, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x36, + 0x34, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x31, 0x32, 0x38, 0x10, 0x04, 0x12, 0x0b, 0x0a, + 0x07, 0x46, 0x75, 0x6e, 0x63, 0x52, 0x65, 0x66, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x52, 0x65, 0x66, 0x10, 0x06, 0x2a, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x0b, 0x0a, 0x07, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, + 0x74, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01, 0x43, + 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x70, 0x70, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x41, + 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x05, 0x12, + 0x09, 0x0a, 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, + 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, + 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x09, + 0x2a, 0x1e, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x65, 0x73, 0x63, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x73, 0x63, 0x10, 0x01, + 0x2a, 0x78, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x79, 0x10, 0x07, 0x2a, 0x22, 0x0a, 0x0c, 0x41, 0x75, + 0x64, 0x69, 0x74, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, + 0x53, 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x01, 0x42, 0x0f, + 0x5a, 0x0d, 0x2e, 0x2f, 0x6d, 0x6f, 0x64, 0x73, 0x75, 0x72, 0x66, 0x65, 0x72, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_v1_api_proto_rawDescOnce sync.Once + file_proto_v1_api_proto_rawDescData = file_proto_v1_api_proto_rawDesc +) + +func file_proto_v1_api_proto_rawDescGZIP() []byte { + file_proto_v1_api_proto_rawDescOnce.Do(func() { + file_proto_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_v1_api_proto_rawDescData) + }) + return file_proto_v1_api_proto_rawDescData +} + +var file_proto_v1_api_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_proto_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_proto_v1_api_proto_goTypes = []interface{}{ + (ValType)(0), // 0: ValType + (SourceLanguage)(0), // 1: SourceLanguage + (Direction)(0), // 2: Direction + (Field)(0), // 3: Field + (AuditOutcome)(0), // 4: AuditOutcome + (*Function)(nil), // 5: Function + (*Import)(nil), // 6: Import + (*Export)(nil), // 7: Export + (*Module)(nil), // 8: Module + (*ModuleGraph)(nil), // 9: ModuleGraph + (*Error)(nil), // 10: Error + (*Pagination)(nil), // 11: Pagination + (*Sort)(nil), // 12: Sort + (*CreateModuleRequest)(nil), // 13: CreateModuleRequest + (*CreateModuleResponse)(nil), // 14: CreateModuleResponse + (*GetModuleRequest)(nil), // 15: GetModuleRequest + (*GetModuleResponse)(nil), // 16: GetModuleResponse + (*ListModulesRequest)(nil), // 17: ListModulesRequest + (*ListModulesResponse)(nil), // 18: ListModulesResponse + (*SearchModulesRequest)(nil), // 19: SearchModulesRequest + (*SearchModulesResponse)(nil), // 20: SearchModulesResponse + (*DeleteModulesRequest)(nil), // 21: DeleteModulesRequest + (*DeleteModulesResponse)(nil), // 22: DeleteModulesResponse + (*AuditModulesRequest)(nil), // 23: AuditModulesRequest + (*AuditModulesResponse)(nil), // 24: AuditModulesResponse + (*DiffRequest)(nil), // 25: DiffRequest + (*DiffResponse)(nil), // 26: DiffResponse + (*ValidateModuleRequest)(nil), // 27: ValidateModuleRequest + (*ValidateModuleResponse)(nil), // 28: ValidateModuleResponse + (*GetModuleGraphRequest)(nil), // 29: GetModuleGraphRequest + (*GetModuleGraphResponse)(nil), // 30: GetModuleGraphResponse + (*InstallPluginRequest)(nil), // 31: InstallPluginRequest + (*InstallPluginResponse)(nil), // 32: InstallPluginResponse + (*UninstallPluginRequest)(nil), // 33: UninstallPluginRequest + (*UninstallPluginResponse)(nil), // 34: UninstallPluginResponse + (*CallPluginRequest)(nil), // 35: CallPluginRequest + (*CallPluginResponse)(nil), // 36: CallPluginResponse + nil, // 37: Module.MetadataEntry + nil, // 38: Module.FunctionHashesEntry + nil, // 39: CreateModuleRequest.MetadataEntry + nil, // 40: SearchModulesRequest.MetadataEntry + nil, // 41: DeleteModulesResponse.ModuleIdHashEntry + nil, // 42: AuditModulesResponse.InvalidModuleReportEntry + (*timestamp.Timestamp)(nil), // 43: google.protobuf.Timestamp +} +var file_proto_v1_api_proto_depIdxs = []int32{ + 0, // 0: Function.params:type_name -> ValType + 0, // 1: Function.results:type_name -> ValType + 5, // 2: Import.func:type_name -> Function + 5, // 3: Export.func:type_name -> Function + 6, // 4: Module.imports:type_name -> Import + 7, // 5: Module.exports:type_name -> Export + 1, // 6: Module.source_language:type_name -> SourceLanguage + 37, // 7: Module.metadata:type_name -> Module.MetadataEntry + 43, // 8: Module.inserted_at:type_name -> google.protobuf.Timestamp + 38, // 9: Module.function_hashes:type_name -> Module.FunctionHashesEntry + 2, // 10: Sort.direction:type_name -> Direction + 3, // 11: Sort.field:type_name -> Field + 39, // 12: CreateModuleRequest.metadata:type_name -> CreateModuleRequest.MetadataEntry + 10, // 13: CreateModuleResponse.error:type_name -> Error + 8, // 14: GetModuleResponse.module:type_name -> Module + 10, // 15: GetModuleResponse.error:type_name -> Error + 11, // 16: ListModulesRequest.pagination:type_name -> Pagination + 12, // 17: ListModulesRequest.sort:type_name -> Sort + 8, // 18: ListModulesResponse.modules:type_name -> Module + 11, // 19: ListModulesResponse.pagination:type_name -> Pagination + 12, // 20: ListModulesResponse.sort:type_name -> Sort + 10, // 21: ListModulesResponse.error:type_name -> Error + 6, // 22: SearchModulesRequest.imports:type_name -> Import + 7, // 23: SearchModulesRequest.exports:type_name -> Export + 1, // 24: SearchModulesRequest.source_language:type_name -> SourceLanguage + 40, // 25: SearchModulesRequest.metadata:type_name -> SearchModulesRequest.MetadataEntry + 43, // 26: SearchModulesRequest.inserted_before:type_name -> google.protobuf.Timestamp + 43, // 27: SearchModulesRequest.inserted_after:type_name -> google.protobuf.Timestamp + 11, // 28: SearchModulesRequest.pagination:type_name -> Pagination + 12, // 29: SearchModulesRequest.sort:type_name -> Sort + 8, // 30: SearchModulesResponse.modules:type_name -> Module + 11, // 31: SearchModulesResponse.pagination:type_name -> Pagination + 12, // 32: SearchModulesResponse.sort:type_name -> Sort + 10, // 33: SearchModulesResponse.error:type_name -> Error + 41, // 34: DeleteModulesResponse.module_id_hash:type_name -> DeleteModulesResponse.ModuleIdHashEntry + 10, // 35: DeleteModulesResponse.error:type_name -> Error + 4, // 36: AuditModulesRequest.outcome:type_name -> AuditOutcome + 11, // 37: AuditModulesRequest.pagination:type_name -> Pagination + 42, // 38: AuditModulesResponse.invalid_module_report:type_name -> AuditModulesResponse.InvalidModuleReportEntry + 11, // 39: AuditModulesResponse.pagination:type_name -> Pagination + 10, // 40: AuditModulesResponse.error:type_name -> Error + 10, // 41: DiffResponse.error:type_name -> Error + 10, // 42: ValidateModuleResponse.error:type_name -> Error + 9, // 43: GetModuleGraphResponse.module_graph:type_name -> ModuleGraph + 10, // 44: GetModuleGraphResponse.error:type_name -> Error + 10, // 45: InstallPluginResponse.error:type_name -> Error + 10, // 46: UninstallPluginResponse.error:type_name -> Error + 10, // 47: CallPluginResponse.error:type_name -> Error + 48, // [48:48] is the sub-list for method output_type + 48, // [48:48] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name +} + +func init() { file_proto_v1_api_proto_init() } +func file_proto_v1_api_proto_init() { + if File_proto_v1_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Function); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Import); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Export); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Module); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModuleGraph); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Error); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Sort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateModuleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateModuleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModuleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModuleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListModulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListModulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchModulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchModulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteModulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteModulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuditModulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuditModulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiffRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiffResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateModuleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateModuleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModuleGraphRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetModuleGraphResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstallPluginRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InstallPluginResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninstallPluginRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninstallPluginResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CallPluginRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_v1_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CallPluginResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_proto_v1_api_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[22].OneofWrappers = []interface{}{ + (*ValidateModuleRequest_Module)(nil), + (*ValidateModuleRequest_ModuleId)(nil), + } + file_proto_v1_api_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_proto_v1_api_proto_msgTypes[31].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_proto_v1_api_proto_rawDesc, + NumEnums: 5, + NumMessages: 38, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_v1_api_proto_goTypes, + DependencyIndexes: file_proto_v1_api_proto_depIdxs, + EnumInfos: file_proto_v1_api_proto_enumTypes, + MessageInfos: file_proto_v1_api_proto_msgTypes, + }.Build() + File_proto_v1_api_proto = out.File + file_proto_v1_api_proto_rawDesc = nil + file_proto_v1_api_proto_goTypes = nil + file_proto_v1_api_proto_depIdxs = nil +} diff --git a/proto/v1/src/api.rs b/proto/v1/src/api.rs index a8a1ec3..0d1a9e1 100644 --- a/proto/v1/src/api.rs +++ b/proto/v1/src/api.rs @@ -6005,544 +6005,545 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12\x0c\n\x08Language\x10\x03\x12\x10\n\x0cImportsCount\x10\x04\x12\x10\ \n\x0cExportsCount\x10\x05\x12\n\n\x06Sha256\x10\x06\x12\x0e\n\nComplexi\ ty\x10\x07*\"\n\x0cAuditOutcome\x12\x08\n\x04PASS\x10\0\x12\x08\n\x04FAI\ - L\x10\x01J\xb1n\n\x07\x12\x05\0\0\xd6\x02\x01\n\x08\n\x01\x0c\x12\x03\0\ - \0\x12\n\t\n\x02\x03\0\x12\x03\x02\0)\nr\n\x02\x05\0\x12\x04\x06\0\x0e\ - \x01\x1af\x20Used\x20to\x20type\x20the\x20arguments\x20and\x20return\x20\ - types\x20from\x20wasm\x20elements\x20such\x20as\x20import\n\x20and\x20ex\ - port\x20functions.\n\n\n\n\x03\x05\0\x01\x12\x03\x06\x05\x0c\n\x0b\n\x04\ - \x05\0\x02\0\x12\x03\x07\x02\n\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\ - \x02\x05\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x07\x08\t\n\x0b\n\x04\x05\0\ - \x02\x01\x12\x03\x08\x02\n\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\x02\ - \x05\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x08\x08\t\n\x0b\n\x04\x05\0\ - \x02\x02\x12\x03\t\x02\n\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\t\x02\x05\ - \n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\t\x08\t\n\x0b\n\x04\x05\0\x02\x03\ - \x12\x03\n\x02\n\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\n\x02\x05\n\x0c\n\ - \x05\x05\0\x02\x03\x02\x12\x03\n\x08\t\n\x0b\n\x04\x05\0\x02\x04\x12\x03\ - \x0b\x02\x0b\n\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\x0b\x02\x06\n\x0c\n\ - \x05\x05\0\x02\x04\x02\x12\x03\x0b\t\n\n\x0b\n\x04\x05\0\x02\x05\x12\x03\ - \x0c\x02\x0e\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\x0c\x02\t\n\x0c\n\x05\ - \x05\0\x02\x05\x02\x12\x03\x0c\x0c\r\n\x0b\n\x04\x05\0\x02\x06\x12\x03\r\ - \x02\x10\n\x0c\n\x05\x05\0\x02\x06\x01\x12\x03\r\x02\x0b\n\x0c\n\x05\x05\ - \0\x02\x06\x02\x12\x03\r\x0e\x0f\nL\n\x02\x04\0\x12\x04\x11\0\x15\x01\ - \x1a@\x20Contained\x20by\x20an\x20import\x20or\x20export\x20element\x20w\ - ithin\x20a\x20wasm\x20binary.\n\n\n\n\x03\x04\0\x01\x12\x03\x11\x08\x10\ - \n\x0b\n\x04\x04\0\x02\0\x12\x03\x12\x02\x1e\n\x0c\n\x05\x04\0\x02\0\x04\ - \x12\x03\x12\x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x12\x0b\x12\n\x0c\ - \n\x05\x04\0\x02\0\x01\x12\x03\x12\x13\x19\n\x0c\n\x05\x04\0\x02\0\x03\ - \x12\x03\x12\x1c\x1d\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x13\x02\x1f\n\x0c\ - \n\x05\x04\0\x02\x01\x04\x12\x03\x13\x02\n\n\x0c\n\x05\x04\0\x02\x01\x06\ - \x12\x03\x13\x0b\x12\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x13\x13\x1a\n\ - \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x13\x1d\x1e\n\x0b\n\x04\x04\0\x02\ - \x02\x12\x03\x14\x02\x12\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x14\x02\ - \x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x14\t\r\n\x0c\n\x05\x04\0\x02\ - \x02\x03\x12\x03\x14\x10\x11\n\x8d\x01\n\x02\x04\x01\x12\x04\x19\0\x1c\ - \x01\x1a\x80\x01\x20A\x20function\x20and\x20module\x20namespace\x20that\ - \x20is\x20defined\x20outside\x20of\x20the\x20current\n\x20module,\x20and\ - \x20referenced\x20&\x20called\x20by\x20the\x20current\x20module.\n\n\n\n\ - \x03\x04\x01\x01\x12\x03\x19\x08\x0e\n\x0b\n\x04\x04\x01\x02\0\x12\x03\ - \x1a\x02\x19\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x1a\x02\x08\n\x0c\n\ - \x05\x04\x01\x02\0\x01\x12\x03\x1a\t\x14\n\x0c\n\x05\x04\x01\x02\0\x03\ - \x12\x03\x1a\x17\x18\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x1b\x02\x14\n\ - \x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1b\x02\n\n\x0c\n\x05\x04\x01\x02\ - \x01\x01\x12\x03\x1b\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1b\ - \x12\x13\nu\n\x02\x04\x02\x12\x03\x20\0%\x1aj\x20A\x20function\x20that\ - \x20is\x20defined\x20inside\x20the\x20current\x20module,\x20made\x20avai\ - lable\x20to\n\x20outside\x20modules\x20/\x20environments.\n\n\n\n\x03\ - \x04\x02\x01\x12\x03\x20\x08\x0e\n\x0b\n\x04\x04\x02\x02\0\x12\x03\x20\ - \x11#\n\x0c\n\x05\x04\x02\x02\0\x06\x12\x03\x20\x11\x19\n\x0c\n\x05\x04\ - \x02\x02\0\x01\x12\x03\x20\x1a\x1e\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03\ - \x20!\"\nQ\n\x02\x05\x01\x12\x04#\0.\x01\x1aE\x20The\x20language\x20(or\ - \x20most\x20similar\x20match)\x20used\x20to\x20produce\x20a\x20wasm\x20m\ - odule.\n\n\n\n\x03\x05\x01\x01\x12\x03#\x05\x13\n\x0b\n\x04\x05\x01\x02\ - \0\x12\x03$\x02\x0e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x03$\x02\t\n\x0c\n\ - \x05\x05\x01\x02\0\x02\x12\x03$\x0c\r\n\x0b\n\x04\x05\x01\x02\x01\x12\ - \x03%\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03%\x02\x06\n\x0c\n\ - \x05\x05\x01\x02\x01\x02\x12\x03%\t\n\n\x0b\n\x04\x05\x01\x02\x02\x12\ - \x03&\x02\t\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03&\x02\x04\n\x0c\n\x05\ - \x05\x01\x02\x02\x02\x12\x03&\x07\x08\n\x0b\n\x04\x05\x01\x02\x03\x12\ - \x03'\x02\x08\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03'\x02\x03\n\x0c\n\ - \x05\x05\x01\x02\x03\x02\x12\x03'\x06\x07\n\x0b\n\x04\x05\x01\x02\x04\ - \x12\x03(\x02\n\n\x0c\n\x05\x05\x01\x02\x04\x01\x12\x03(\x02\x05\n\x0c\n\ - \x05\x05\x01\x02\x04\x02\x12\x03(\x08\t\n\x0b\n\x04\x05\x01\x02\x05\x12\ - \x03)\x02\x15\n\x0c\n\x05\x05\x01\x02\x05\x01\x12\x03)\x02\x10\n\x0c\n\ - \x05\x05\x01\x02\x05\x02\x12\x03)\x13\x14\n\x0b\n\x04\x05\x01\x02\x06\ - \x12\x03*\x02\x0c\n\x0c\n\x05\x05\x01\x02\x06\x01\x12\x03*\x02\x07\n\x0c\ - \n\x05\x05\x01\x02\x06\x02\x12\x03*\n\x0b\n\x0b\n\x04\x05\x01\x02\x07\ - \x12\x03+\x02\x11\n\x0c\n\x05\x05\x01\x02\x07\x01\x12\x03+\x02\x0c\n\x0c\ - \n\x05\x05\x01\x02\x07\x02\x12\x03+\x0f\x10\n\x0b\n\x04\x05\x01\x02\x08\ - \x12\x03,\x02\x0e\n\x0c\n\x05\x05\x01\x02\x08\x01\x12\x03,\x02\t\n\x0c\n\ - \x05\x05\x01\x02\x08\x02\x12\x03,\x0c\r\n\x0b\n\x04\x05\x01\x02\t\x12\ - \x03-\x02\n\n\x0c\n\x05\x05\x01\x02\t\x01\x12\x03-\x02\x05\n\x0c\n\x05\ - \x05\x01\x02\t\x02\x12\x03-\x08\t\nk\n\x02\x04\x03\x12\x042\0P\x01\x1a_\ - \x20Details\x20about\x20a\x20wasm\x20module,\x20either\x20extracted\x20d\ - irectly\x20from\x20the\x20binary,\x20or\n\x20inferred\x20somehow.\n\n\n\ - \n\x03\x04\x03\x01\x12\x032\x08\x0e\n=\n\x04\x04\x03\x02\0\x12\x034\x02\ - \x0f\x1a0\x20ID\x20for\x20this\x20module,\x20generated\x20by\x20the\x20d\ - atabase.\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x034\x02\x07\n\x0c\n\x05\ - \x04\x03\x02\0\x01\x12\x034\x08\n\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x034\ - \r\x0e\n3\n\x04\x04\x03\x02\x01\x12\x036\x02\x12\x1a&\x20sha256\x20hash\ - \x20of\x20the\x20modules\x20raw\x20bytes\n\n\x0c\n\x05\x04\x03\x02\x01\ - \x05\x12\x036\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x036\t\r\n\x0c\ - \n\x05\x04\x03\x02\x01\x03\x12\x036\x10\x11\n\x81\x01\n\x04\x04\x03\x02\ - \x02\x12\x039\x02\x1e\x1at\x20function\x20imports\x20called\x20by\x20the\ - \x20module\x20(see:\n\x20\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x039\x02\n\ - \n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x039\x0b\x11\n\x0c\n\x05\x04\x03\ - \x02\x02\x01\x12\x039\x12\x19\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x039\ - \x1c\x1d\n\x83\x01\n\x04\x04\x03\x02\x03\x12\x03<\x02\x1e\x1av\x20functi\ - on\x20exports\x20provided\x20by\x20the\x20module\x20(see:\n\x20\n\n\x0c\n\ - \x05\x04\x03\x02\x03\x04\x12\x03<\x02\n\n\x0c\n\x05\x04\x03\x02\x03\x06\ - \x12\x03<\x0b\x11\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x03<\x12\x19\n\x0c\ - \n\x05\x04\x03\x02\x03\x03\x12\x03<\x1c\x1d\n*\n\x04\x04\x03\x02\x04\x12\ - \x03>\x02\x12\x1a\x1d\x20size\x20in\x20bytes\x20of\x20the\x20module\n\n\ - \x0c\n\x05\x04\x03\x02\x04\x05\x12\x03>\x02\x08\n\x0c\n\x05\x04\x03\x02\ - \x04\x01\x12\x03>\t\r\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x03>\x10\x11\n\ - ,\n\x04\x04\x03\x02\x05\x12\x03@\x02\x16\x1a\x1f\x20path\x20or\x20locato\ - r\x20to\x20the\x20module\n\n\x0c\n\x05\x04\x03\x02\x05\x05\x12\x03@\x02\ - \x08\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x03@\t\x11\n\x0c\n\x05\x04\x03\ - \x02\x05\x03\x12\x03@\x14\x15\n?\n\x04\x04\x03\x02\x06\x12\x03B\x02%\x1a\ - 2\x20programming\x20language\x20used\x20to\x20produce\x20this\x20module\ - \n\n\x0c\n\x05\x04\x03\x02\x06\x06\x12\x03B\x02\x10\n\x0c\n\x05\x04\x03\ - \x02\x06\x01\x12\x03B\x11\x20\n\x0c\n\x05\x04\x03\x02\x06\x03\x12\x03B#$\ - \nI\n\x04\x04\x03\x02\x07\x12\x03D\x02#\x1a<\x20arbitrary\x20metadata\ - \x20provided\x20by\x20the\x20operator\x20of\x20this\x20module\n\n\x0c\n\ - \x05\x04\x03\x02\x07\x06\x12\x03D\x02\x15\n\x0c\n\x05\x04\x03\x02\x07\ - \x01\x12\x03D\x16\x1e\n\x0c\n\x05\x04\x03\x02\x07\x03\x12\x03D!\"\n?\n\ - \x04\x04\x03\x02\x08\x12\x03F\x02-\x1a2\x20timestamp\x20when\x20this\x20\ - module\x20was\x20loaded\x20and\x20stored\n\n\x0c\n\x05\x04\x03\x02\x08\ - \x06\x12\x03F\x02\x1b\n\x0c\n\x05\x04\x03\x02\x08\x01\x12\x03F\x1c'\n\ - \x0c\n\x05\x04\x03\x02\x08\x03\x12\x03F*,\nZ\n\x04\x04\x03\x02\t\x12\x03\ - H\x02\x1f\x1aM\x20the\x20interned\x20strings\x20stored\x20in\x20the\x20w\ - asm\x20binary\x20(panic/abort\x20messages,\x20etc.)\n\n\x0c\n\x05\x04\ - \x03\x02\t\x04\x12\x03H\x02\n\n\x0c\n\x05\x04\x03\x02\t\x05\x12\x03H\x0b\ - \x11\n\x0c\n\x05\x04\x03\x02\t\x01\x12\x03H\x12\x19\n\x0c\n\x05\x04\x03\ - \x02\t\x03\x12\x03H\x1c\x1e\nu\n\x04\x04\x03\x02\n\x12\x03K\x02\"\x1ah\ - \x20the\x20cyclomatic\x20complexity\n\x20()\x20of\x20the\x20instructions\n\n\x0c\n\x05\x04\ - \x03\x02\n\x04\x12\x03K\x02\n\n\x0c\n\x05\x04\x03\x02\n\x05\x12\x03K\x0b\ - \x11\n\x0c\n\x05\x04\x03\x02\n\x01\x12\x03K\x12\x1c\n\x0c\n\x05\x04\x03\ - \x02\n\x03\x12\x03K\x1f!\n2\n\x04\x04\x03\x02\x0b\x12\x03M\x02\x1c\x1a%\ + L\x10\x01B\x0fZ\r./modsurferpbJ\xc6n\n\x07\x12\x05\0\0\xd8\x02\x01\n\x08\ + \n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x08\x12\x03\x02\0$\n\t\n\x02\x08\ + \x0b\x12\x03\x02\0$\n\t\n\x02\x03\0\x12\x03\x04\0)\nr\n\x02\x05\0\x12\ + \x04\x08\0\x10\x01\x1af\x20Used\x20to\x20type\x20the\x20arguments\x20and\ + \x20return\x20types\x20from\x20wasm\x20elements\x20such\x20as\x20import\ + \n\x20and\x20export\x20functions.\n\n\n\n\x03\x05\0\x01\x12\x03\x08\x05\ + \x0c\n\x0b\n\x04\x05\0\x02\0\x12\x03\t\x02\n\n\x0c\n\x05\x05\0\x02\0\x01\ + \x12\x03\t\x02\x05\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\t\x08\t\n\x0b\n\ + \x04\x05\0\x02\x01\x12\x03\n\x02\n\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\ + \n\x02\x05\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\n\x08\t\n\x0b\n\x04\x05\ + \0\x02\x02\x12\x03\x0b\x02\n\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\x0b\ + \x02\x05\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x0b\x08\t\n\x0b\n\x04\x05\ + \0\x02\x03\x12\x03\x0c\x02\n\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\x0c\ + \x02\x05\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\x0c\x08\t\n\x0b\n\x04\x05\ + \0\x02\x04\x12\x03\r\x02\x0b\n\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\r\x02\ + \x06\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\r\t\n\n\x0b\n\x04\x05\0\x02\ + \x05\x12\x03\x0e\x02\x0e\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\x0e\x02\t\ + \n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x0e\x0c\r\n\x0b\n\x04\x05\0\x02\ + \x06\x12\x03\x0f\x02\x10\n\x0c\n\x05\x05\0\x02\x06\x01\x12\x03\x0f\x02\ + \x0b\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\x0f\x0e\x0f\nL\n\x02\x04\0\ + \x12\x04\x13\0\x17\x01\x1a@\x20Contained\x20by\x20an\x20import\x20or\x20\ + export\x20element\x20within\x20a\x20wasm\x20binary.\n\n\n\n\x03\x04\0\ + \x01\x12\x03\x13\x08\x10\n\x0b\n\x04\x04\0\x02\0\x12\x03\x14\x02\x1e\n\ + \x0c\n\x05\x04\0\x02\0\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\0\x02\0\x06\ + \x12\x03\x14\x0b\x12\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x14\x13\x19\n\ + \x0c\n\x05\x04\0\x02\0\x03\x12\x03\x14\x1c\x1d\n\x0b\n\x04\x04\0\x02\x01\ + \x12\x03\x15\x02\x1f\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x15\x02\n\n\ + \x0c\n\x05\x04\0\x02\x01\x06\x12\x03\x15\x0b\x12\n\x0c\n\x05\x04\0\x02\ + \x01\x01\x12\x03\x15\x13\x1a\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x15\ + \x1d\x1e\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x16\x02\x12\n\x0c\n\x05\x04\0\ + \x02\x02\x05\x12\x03\x16\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\ + \x16\t\r\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x16\x10\x11\n\x8d\x01\n\ + \x02\x04\x01\x12\x04\x1b\0\x1e\x01\x1a\x80\x01\x20A\x20function\x20and\ + \x20module\x20namespace\x20that\x20is\x20defined\x20outside\x20of\x20the\ + \x20current\n\x20module,\x20and\x20referenced\x20&\x20called\x20by\x20th\ + e\x20current\x20module.\n\n\n\n\x03\x04\x01\x01\x12\x03\x1b\x08\x0e\n\ + \x0b\n\x04\x04\x01\x02\0\x12\x03\x1c\x02\x19\n\x0c\n\x05\x04\x01\x02\0\ + \x05\x12\x03\x1c\x02\x08\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x1c\t\x14\ + \n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x1c\x17\x18\n\x0b\n\x04\x04\x01\ + \x02\x01\x12\x03\x1d\x02\x14\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1d\ + \x02\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1d\x0b\x0f\n\x0c\n\x05\ + \x04\x01\x02\x01\x03\x12\x03\x1d\x12\x13\nu\n\x02\x04\x02\x12\x03\"\0%\ + \x1aj\x20A\x20function\x20that\x20is\x20defined\x20inside\x20the\x20curr\ + ent\x20module,\x20made\x20available\x20to\n\x20outside\x20modules\x20/\ + \x20environments.\n\n\n\n\x03\x04\x02\x01\x12\x03\"\x08\x0e\n\x0b\n\x04\ + \x04\x02\x02\0\x12\x03\"\x11#\n\x0c\n\x05\x04\x02\x02\0\x06\x12\x03\"\ + \x11\x19\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\"\x1a\x1e\n\x0c\n\x05\x04\ + \x02\x02\0\x03\x12\x03\"!\"\nQ\n\x02\x05\x01\x12\x04%\00\x01\x1aE\x20The\ + \x20language\x20(or\x20most\x20similar\x20match)\x20used\x20to\x20produc\ + e\x20a\x20wasm\x20module.\n\n\n\n\x03\x05\x01\x01\x12\x03%\x05\x13\n\x0b\ + \n\x04\x05\x01\x02\0\x12\x03&\x02\x0e\n\x0c\n\x05\x05\x01\x02\0\x01\x12\ + \x03&\x02\t\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03&\x0c\r\n\x0b\n\x04\x05\ + \x01\x02\x01\x12\x03'\x02\x0b\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03'\ + \x02\x06\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03'\t\n\n\x0b\n\x04\x05\ + \x01\x02\x02\x12\x03(\x02\t\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03(\x02\ + \x04\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03(\x07\x08\n\x0b\n\x04\x05\ + \x01\x02\x03\x12\x03)\x02\x08\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03)\ + \x02\x03\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03)\x06\x07\n\x0b\n\x04\ + \x05\x01\x02\x04\x12\x03*\x02\n\n\x0c\n\x05\x05\x01\x02\x04\x01\x12\x03*\ + \x02\x05\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x03*\x08\t\n\x0b\n\x04\x05\ + \x01\x02\x05\x12\x03+\x02\x15\n\x0c\n\x05\x05\x01\x02\x05\x01\x12\x03+\ + \x02\x10\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x03+\x13\x14\n\x0b\n\x04\ + \x05\x01\x02\x06\x12\x03,\x02\x0c\n\x0c\n\x05\x05\x01\x02\x06\x01\x12\ + \x03,\x02\x07\n\x0c\n\x05\x05\x01\x02\x06\x02\x12\x03,\n\x0b\n\x0b\n\x04\ + \x05\x01\x02\x07\x12\x03-\x02\x11\n\x0c\n\x05\x05\x01\x02\x07\x01\x12\ + \x03-\x02\x0c\n\x0c\n\x05\x05\x01\x02\x07\x02\x12\x03-\x0f\x10\n\x0b\n\ + \x04\x05\x01\x02\x08\x12\x03.\x02\x0e\n\x0c\n\x05\x05\x01\x02\x08\x01\ + \x12\x03.\x02\t\n\x0c\n\x05\x05\x01\x02\x08\x02\x12\x03.\x0c\r\n\x0b\n\ + \x04\x05\x01\x02\t\x12\x03/\x02\n\n\x0c\n\x05\x05\x01\x02\t\x01\x12\x03/\ + \x02\x05\n\x0c\n\x05\x05\x01\x02\t\x02\x12\x03/\x08\t\nk\n\x02\x04\x03\ + \x12\x044\0R\x01\x1a_\x20Details\x20about\x20a\x20wasm\x20module,\x20eit\ + her\x20extracted\x20directly\x20from\x20the\x20binary,\x20or\n\x20inferr\ + ed\x20somehow.\n\n\n\n\x03\x04\x03\x01\x12\x034\x08\x0e\n=\n\x04\x04\x03\ + \x02\0\x12\x036\x02\x0f\x1a0\x20ID\x20for\x20this\x20module,\x20generate\ + d\x20by\x20the\x20database.\n\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x036\x02\ + \x07\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x036\x08\n\n\x0c\n\x05\x04\x03\ + \x02\0\x03\x12\x036\r\x0e\n3\n\x04\x04\x03\x02\x01\x12\x038\x02\x12\x1a&\ + \x20sha256\x20hash\x20of\x20the\x20modules\x20raw\x20bytes\n\n\x0c\n\x05\ + \x04\x03\x02\x01\x05\x12\x038\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\ + \x12\x038\t\r\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x038\x10\x11\n\x81\x01\ + \n\x04\x04\x03\x02\x02\x12\x03;\x02\x1e\x1at\x20function\x20imports\x20c\ + alled\x20by\x20the\x20module\x20(see:\n\x20\n\n\x0c\n\x05\x04\x03\x02\x02\ + \x04\x12\x03;\x02\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03;\x0b\x11\n\ + \x0c\n\x05\x04\x03\x02\x02\x01\x12\x03;\x12\x19\n\x0c\n\x05\x04\x03\x02\ + \x02\x03\x12\x03;\x1c\x1d\n\x83\x01\n\x04\x04\x03\x02\x03\x12\x03>\x02\ + \x1e\x1av\x20function\x20exports\x20provided\x20by\x20the\x20module\x20(\ + see:\n\x20\n\n\x0c\n\x05\x04\x03\x02\x03\x04\x12\x03>\x02\n\n\x0c\n\x05\x04\ + \x03\x02\x03\x06\x12\x03>\x0b\x11\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\ + \x03>\x12\x19\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03>\x1c\x1d\n*\n\x04\ + \x04\x03\x02\x04\x12\x03@\x02\x12\x1a\x1d\x20size\x20in\x20bytes\x20of\ + \x20the\x20module\n\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x03@\x02\x08\n\ + \x0c\n\x05\x04\x03\x02\x04\x01\x12\x03@\t\r\n\x0c\n\x05\x04\x03\x02\x04\ + \x03\x12\x03@\x10\x11\n,\n\x04\x04\x03\x02\x05\x12\x03B\x02\x16\x1a\x1f\ + \x20path\x20or\x20locator\x20to\x20the\x20module\n\n\x0c\n\x05\x04\x03\ + \x02\x05\x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x03B\t\ + \x11\n\x0c\n\x05\x04\x03\x02\x05\x03\x12\x03B\x14\x15\n?\n\x04\x04\x03\ + \x02\x06\x12\x03D\x02%\x1a2\x20programming\x20language\x20used\x20to\x20\ + produce\x20this\x20module\n\n\x0c\n\x05\x04\x03\x02\x06\x06\x12\x03D\x02\ + \x10\n\x0c\n\x05\x04\x03\x02\x06\x01\x12\x03D\x11\x20\n\x0c\n\x05\x04\ + \x03\x02\x06\x03\x12\x03D#$\nI\n\x04\x04\x03\x02\x07\x12\x03F\x02#\x1a<\ + \x20arbitrary\x20metadata\x20provided\x20by\x20the\x20operator\x20of\x20\ + this\x20module\n\n\x0c\n\x05\x04\x03\x02\x07\x06\x12\x03F\x02\x15\n\x0c\ + \n\x05\x04\x03\x02\x07\x01\x12\x03F\x16\x1e\n\x0c\n\x05\x04\x03\x02\x07\ + \x03\x12\x03F!\"\n?\n\x04\x04\x03\x02\x08\x12\x03H\x02-\x1a2\x20timestam\ + p\x20when\x20this\x20module\x20was\x20loaded\x20and\x20stored\n\n\x0c\n\ + \x05\x04\x03\x02\x08\x06\x12\x03H\x02\x1b\n\x0c\n\x05\x04\x03\x02\x08\ + \x01\x12\x03H\x1c'\n\x0c\n\x05\x04\x03\x02\x08\x03\x12\x03H*,\nZ\n\x04\ + \x04\x03\x02\t\x12\x03J\x02\x1f\x1aM\x20the\x20interned\x20strings\x20st\ + ored\x20in\x20the\x20wasm\x20binary\x20(panic/abort\x20messages,\x20etc.\ + )\n\n\x0c\n\x05\x04\x03\x02\t\x04\x12\x03J\x02\n\n\x0c\n\x05\x04\x03\x02\ + \t\x05\x12\x03J\x0b\x11\n\x0c\n\x05\x04\x03\x02\t\x01\x12\x03J\x12\x19\n\ + \x0c\n\x05\x04\x03\x02\t\x03\x12\x03J\x1c\x1e\nu\n\x04\x04\x03\x02\n\x12\ + \x03M\x02\"\x1ah\x20the\x20cyclomatic\x20complexity\n\x20()\x20of\x20the\x20instructions\n\ + \n\x0c\n\x05\x04\x03\x02\n\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x03\x02\n\ + \x05\x12\x03M\x0b\x11\n\x0c\n\x05\x04\x03\x02\n\x01\x12\x03M\x12\x1c\n\ + \x0c\n\x05\x04\x03\x02\n\x03\x12\x03M\x1f!\n2\n\x04\x04\x03\x02\x0b\x12\ + \x03O\x02\x1c\x1a%\x20the\x20serialized\x20graph\x20in\x20json\x20format\ + \n\n\x0c\n\x05\x04\x03\x02\x0b\x04\x12\x03O\x02\n\n\x0c\n\x05\x04\x03\ + \x02\x0b\x05\x12\x03O\x0b\x10\n\x0c\n\x05\x04\x03\x02\x0b\x01\x12\x03O\ + \x11\x16\n\x0c\n\x05\x04\x03\x02\x0b\x03\x12\x03O\x19\x1b\n\x1e\n\x04\ + \x04\x03\x02\x0c\x12\x03Q\x02+\x1a\x11\x20function\x20hashes\n\n\x0c\n\ + \x05\x04\x03\x02\x0c\x06\x12\x03Q\x02\x15\n\x0c\n\x05\x04\x03\x02\x0c\ + \x01\x12\x03Q\x16%\n\x0c\n\x05\x04\x03\x02\x0c\x03\x12\x03Q(*\n/\n\x02\ + \x04\x04\x12\x04U\0Z\x01\x1a#\x20Details\x20about\x20a\x20wasm\x20module\ + \x20graph\n\n\n\n\x03\x04\x04\x01\x12\x03U\x08\x13\n=\n\x04\x04\x04\x02\ + \0\x12\x03W\x02\x0f\x1a0\x20ID\x20for\x20this\x20module,\x20generated\ + \x20by\x20the\x20database.\n\n\x0c\n\x05\x04\x04\x02\0\x05\x12\x03W\x02\ + \x07\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03W\x08\n\n\x0c\n\x05\x04\x04\ + \x02\0\x03\x12\x03W\r\x0e\n2\n\x04\x04\x04\x02\x01\x12\x03Y\x02\x17\x1a%\ \x20the\x20serialized\x20graph\x20in\x20json\x20format\n\n\x0c\n\x05\x04\ - \x03\x02\x0b\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x03\x02\x0b\x05\x12\x03M\ - \x0b\x10\n\x0c\n\x05\x04\x03\x02\x0b\x01\x12\x03M\x11\x16\n\x0c\n\x05\ - \x04\x03\x02\x0b\x03\x12\x03M\x19\x1b\n\x1e\n\x04\x04\x03\x02\x0c\x12\ - \x03O\x02+\x1a\x11\x20function\x20hashes\n\n\x0c\n\x05\x04\x03\x02\x0c\ - \x06\x12\x03O\x02\x15\n\x0c\n\x05\x04\x03\x02\x0c\x01\x12\x03O\x16%\n\ - \x0c\n\x05\x04\x03\x02\x0c\x03\x12\x03O(*\n/\n\x02\x04\x04\x12\x04S\0X\ - \x01\x1a#\x20Details\x20about\x20a\x20wasm\x20module\x20graph\n\n\n\n\ - \x03\x04\x04\x01\x12\x03S\x08\x13\n=\n\x04\x04\x04\x02\0\x12\x03U\x02\ - \x0f\x1a0\x20ID\x20for\x20this\x20module,\x20generated\x20by\x20the\x20d\ - atabase.\n\n\x0c\n\x05\x04\x04\x02\0\x05\x12\x03U\x02\x07\n\x0c\n\x05\ - \x04\x04\x02\0\x01\x12\x03U\x08\n\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03U\ - \r\x0e\n2\n\x04\x04\x04\x02\x01\x12\x03W\x02\x17\x1a%\x20the\x20serializ\ - ed\x20graph\x20in\x20json\x20format\n\n\x0c\n\x05\x04\x04\x02\x01\x05\ - \x12\x03W\x02\x07\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03W\x08\x12\n\x0c\ - \n\x05\x04\x04\x02\x01\x03\x12\x03W\x15\x16\n?\n\x02\x04\x05\x12\x04[\0^\ - \x01\x1a3\x20An\x20error\x20message\x20indicating\x20a\x20problem\x20in\ - \x20the\x20API.\n\n\n\n\x03\x04\x05\x01\x12\x03[\x08\r\n\x0b\n\x04\x04\ - \x05\x02\0\x12\x03\\\x02\x11\n\x0c\n\x05\x04\x05\x02\0\x05\x12\x03\\\x02\ - \x07\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03\\\x08\x0c\n\x0c\n\x05\x04\x05\ - \x02\0\x03\x12\x03\\\x0f\x10\n\x0b\n\x04\x04\x05\x02\x01\x12\x03]\x02\ - \x15\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03]\x02\x08\n\x0c\n\x05\x04\ - \x05\x02\x01\x01\x12\x03]\t\x10\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03]\ - \x13\x14\n]\n\x02\x04\x06\x12\x04b\0e\x01\x1aQ\x20Control/limit\x20the\ - \x20way\x20results\x20are\x20paginated\x20when\x20working\x20with\x20lar\ - ge\n\x20responses.\n\n\n\n\x03\x04\x06\x01\x12\x03b\x08\x12\n\x0b\n\x04\ - \x04\x06\x02\0\x12\x03c\x02\x13\n\x0c\n\x05\x04\x06\x02\0\x05\x12\x03c\ - \x02\x08\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03c\t\x0e\n\x0c\n\x05\x04\ - \x06\x02\0\x03\x12\x03c\x11\x12\n\x0b\n\x04\x04\x06\x02\x01\x12\x03d\x02\ - \x14\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03d\x02\x08\n\x0c\n\x05\x04\ - \x06\x02\x01\x01\x12\x03d\t\x0f\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03d\ - \x12\x13\n8\n\x02\x04\x07\x12\x04h\0k\x01\x1a,\x20Determine\x20how\x20to\ - \x20sort\x20results\x20from\x20the\x20API\n\n\n\n\x03\x04\x07\x01\x12\ - \x03h\x08\x0c\n\x0b\n\x04\x04\x07\x02\0\x12\x03i\x02\x1a\n\x0c\n\x05\x04\ - \x07\x02\0\x06\x12\x03i\x02\x0b\n\x0c\n\x05\x04\x07\x02\0\x01\x12\x03i\ - \x0c\x15\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x03i\x18\x19\n\x0b\n\x04\x04\ - \x07\x02\x01\x12\x03j\x02\x12\n\x0c\n\x05\x04\x07\x02\x01\x06\x12\x03j\ - \x02\x07\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03j\x08\r\n\x0c\n\x05\x04\ - \x07\x02\x01\x03\x12\x03j\x10\x11\nL\n\x02\x05\x02\x12\x04n\0q\x01\x1a@\ - \x20The\x20direction,\x20descending\x20or\x20ascending,\x20of\x20the\x20\ - sort\x20operation.\n\n\n\n\x03\x05\x02\x01\x12\x03n\x05\x0e\n\x0b\n\x04\ - \x05\x02\x02\0\x12\x03o\x02\x0b\n\x0c\n\x05\x05\x02\x02\0\x01\x12\x03o\ - \x02\x06\n\x0c\n\x05\x05\x02\x02\0\x02\x12\x03o\t\n\n\x0b\n\x04\x05\x02\ - \x02\x01\x12\x03p\x02\n\n\x0c\n\x05\x05\x02\x02\x01\x01\x12\x03p\x02\x05\ - \n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03p\x08\t\nW\n\x02\x05\x03\x12\x04\ - t\0}\x01\x1aK\x20The\x20field\x20within\x20the\x20Module\x20schema\x20th\ - at\x20is\x20used\x20as\x20the\x20sorting\x20dimension.\n\n\n\n\x03\x05\ - \x03\x01\x12\x03t\x05\n\n\x0b\n\x04\x05\x03\x02\0\x12\x03u\x02\x10\n\x0c\ - \n\x05\x05\x03\x02\0\x01\x12\x03u\x02\x0b\n\x0c\n\x05\x05\x03\x02\0\x02\ - \x12\x03u\x0e\x0f\n\x0b\n\x04\x05\x03\x02\x01\x12\x03v\x02\x0b\n\x0c\n\ - \x05\x05\x03\x02\x01\x01\x12\x03v\x02\x06\n\x0c\n\x05\x05\x03\x02\x01\ - \x02\x12\x03v\t\n\n\x0b\n\x04\x05\x03\x02\x02\x12\x03w\x02\x0b\n\x0c\n\ - \x05\x05\x03\x02\x02\x01\x12\x03w\x02\x06\n\x0c\n\x05\x05\x03\x02\x02\ - \x02\x12\x03w\t\n\n\x0b\n\x04\x05\x03\x02\x03\x12\x03x\x02\x0f\n\x0c\n\ - \x05\x05\x03\x02\x03\x01\x12\x03x\x02\n\n\x0c\n\x05\x05\x03\x02\x03\x02\ - \x12\x03x\r\x0e\n\x0b\n\x04\x05\x03\x02\x04\x12\x03y\x02\x13\n\x0c\n\x05\ - \x05\x03\x02\x04\x01\x12\x03y\x02\x0e\n\x0c\n\x05\x05\x03\x02\x04\x02\ - \x12\x03y\x11\x12\n\x0b\n\x04\x05\x03\x02\x05\x12\x03z\x02\x13\n\x0c\n\ - \x05\x05\x03\x02\x05\x01\x12\x03z\x02\x0e\n\x0c\n\x05\x05\x03\x02\x05\ - \x02\x12\x03z\x11\x12\n\x0b\n\x04\x05\x03\x02\x06\x12\x03{\x02\r\n\x0c\n\ - \x05\x05\x03\x02\x06\x01\x12\x03{\x02\x08\n\x0c\n\x05\x05\x03\x02\x06\ - \x02\x12\x03{\x0b\x0c\n\x0b\n\x04\x05\x03\x02\x07\x12\x03|\x02\x11\n\x0c\ - \n\x05\x05\x03\x02\x07\x01\x12\x03|\x02\x0c\n\x0c\n\x05\x05\x03\x02\x07\ - \x02\x12\x03|\x0f\x10\nn\n\x02\x04\x08\x12\x06\x81\x01\0\x86\x01\x01\x1a\ - `\x20`PUT\x20/api/v1/module:`\n\x20Insert\x20a\x20module,\x20extract\x20\ - data\x20from\x20binary.\x20Return\x20the\x20module\x20ID\x20&\x20hash.\n\ - \n\x0b\n\x03\x04\x08\x01\x12\x04\x81\x01\x08\x1b\n\x0c\n\x04\x04\x08\x02\ - \0\x12\x04\x82\x01\x02\x11\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\x82\x01\ - \x02\x07\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\x82\x01\x08\x0c\n\r\n\x05\ - \x04\x08\x02\0\x03\x12\x04\x82\x01\x0f\x10\n\x0c\n\x04\x04\x08\x02\x01\ - \x12\x04\x83\x01\x02#\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\x83\x01\x02\ - \x15\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x83\x01\x16\x1e\n\r\n\x05\x04\ - \x08\x02\x01\x03\x12\x04\x83\x01!\"\nT\n\x04\x04\x08\x02\x02\x12\x04\x85\ - \x01\x02\x1f\x1aF\x20a\x20valid\x20URL\x20with\x20a\x20scheme\x20prefix\ - \x20e.g.\x20`s3://`,\x20`file://`,\x20`https://`\n\n\r\n\x05\x04\x08\x02\ - \x02\x04\x12\x04\x85\x01\x02\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\x85\ - \x01\x0b\x11\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\x85\x01\x12\x1a\n\r\n\ - \x05\x04\x08\x02\x02\x03\x12\x04\x85\x01\x1d\x1e\nL\n\x02\x04\t\x12\x06\ - \x89\x01\0\x8d\x01\x01\x1a>\x20The\x20message\x20returned\x20in\x20respo\ - nse\x20to\x20a\x20`CreateModuleRequest`.\n\n\x0b\n\x03\x04\t\x01\x12\x04\ - \x89\x01\x08\x1c\n\x0c\n\x04\x04\t\x02\0\x12\x04\x8a\x01\x02\x16\n\r\n\ - \x05\x04\t\x02\0\x05\x12\x04\x8a\x01\x02\x07\n\r\n\x05\x04\t\x02\0\x01\ - \x12\x04\x8a\x01\x08\x11\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x8a\x01\x14\ - \x15\n\x0c\n\x04\x04\t\x02\x01\x12\x04\x8b\x01\x02\x12\n\r\n\x05\x04\t\ - \x02\x01\x05\x12\x04\x8b\x01\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\ - \x8b\x01\t\r\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x8b\x01\x10\x11\n\x0c\n\ - \x04\x04\t\x02\x02\x12\x04\x8c\x01\x02\x1b\n\r\n\x05\x04\t\x02\x02\x04\ - \x12\x04\x8c\x01\x02\n\n\r\n\x05\x04\t\x02\x02\x06\x12\x04\x8c\x01\x0b\ - \x10\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x8c\x01\x11\x16\n\r\n\x05\x04\t\ - \x02\x02\x03\x12\x04\x8c\x01\x19\x1a\n=\n\x02\x04\n\x12\x04\x91\x01\01\ - \x1a1\x20`POST\x20/api/v1/module:`\n\x20Return\x20a\x20single\x20module.\ - \n\n\x0b\n\x03\x04\n\x01\x12\x04\x91\x01\x08\x18\n\x0c\n\x04\x04\n\x02\0\ - \x12\x04\x91\x01\x1b/\n\r\n\x05\x04\n\x02\0\x05\x12\x04\x91\x01\x1b\x20\ - \n\r\n\x05\x04\n\x02\0\x01\x12\x04\x91\x01!*\n\r\n\x05\x04\n\x02\0\x03\ - \x12\x04\x91\x01-.\nI\n\x02\x04\x0b\x12\x06\x94\x01\0\x97\x01\x01\x1a;\ - \x20The\x20message\x20returned\x20in\x20response\x20to\x20a\x20`GetModul\ - eRequest`.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x94\x01\x08\x19\n\x0c\n\x04\ - \x04\x0b\x02\0\x12\x04\x95\x01\x02\x14\n\r\n\x05\x04\x0b\x02\0\x06\x12\ - \x04\x95\x01\x02\x08\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\x95\x01\t\x0f\n\ - \r\n\x05\x04\x0b\x02\0\x03\x12\x04\x95\x01\x12\x13\n\x0c\n\x04\x04\x0b\ - \x02\x01\x12\x04\x96\x01\x02\x1b\n\r\n\x05\x04\x0b\x02\x01\x04\x12\x04\ - \x96\x01\x02\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\x96\x01\x0b\x10\n\r\ - \n\x05\x04\x0b\x02\x01\x01\x12\x04\x96\x01\x11\x16\n\r\n\x05\x04\x0b\x02\ - \x01\x03\x12\x04\x96\x01\x19\x1a\nN\n\x02\x04\x0c\x12\x06\x9b\x01\0\x9e\ - \x01\x01\x1a@\x20`POST\x20/api/v1/modules:`\n\x20Return\x20paginated\x20\ - list\x20of\x20all\x20modules.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\x9b\x01\ - \x08\x1a\n\x0c\n\x04\x04\x0c\x02\0\x12\x04\x9c\x01\x02\x1c\n\r\n\x05\x04\ - \x0c\x02\0\x06\x12\x04\x9c\x01\x02\x0c\n\r\n\x05\x04\x0c\x02\0\x01\x12\ - \x04\x9c\x01\r\x17\n\r\n\x05\x04\x0c\x02\0\x03\x12\x04\x9c\x01\x1a\x1b\n\ - \x0c\n\x04\x04\x0c\x02\x01\x12\x04\x9d\x01\x02\x10\n\r\n\x05\x04\x0c\x02\ - \x01\x06\x12\x04\x9d\x01\x02\x06\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\ - \x9d\x01\x07\x0b\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\x9d\x01\x0e\x0f\n\ - K\n\x02\x04\r\x12\x06\xa1\x01\0\xa9\x01\x01\x1a=\x20The\x20message\x20re\ - turned\x20in\x20response\x20to\x20a\x20`ListModulesRequest`.\n\n\x0b\n\ - \x03\x04\r\x01\x12\x04\xa1\x01\x08\x1b\n\x0c\n\x04\x04\r\x02\0\x12\x04\ - \xa2\x01\x02\x1e\n\r\n\x05\x04\r\x02\0\x04\x12\x04\xa2\x01\x02\n\n\r\n\ - \x05\x04\r\x02\0\x06\x12\x04\xa2\x01\x0b\x11\n\r\n\x05\x04\r\x02\0\x01\ - \x12\x04\xa2\x01\x12\x19\n\r\n\x05\x04\r\x02\0\x03\x12\x04\xa2\x01\x1c\ - \x1d\n\x0c\n\x04\x04\r\x02\x01\x12\x04\xa3\x01\x02\x1c\n\r\n\x05\x04\r\ - \x02\x01\x06\x12\x04\xa3\x01\x02\x0c\n\r\n\x05\x04\r\x02\x01\x01\x12\x04\ - \xa3\x01\r\x17\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\xa3\x01\x1a\x1b\ng\n\ - \x04\x04\r\x02\x02\x12\x04\xa6\x01\x02\x13\x1aY\x20the\x20full\x20count\ - \x20of\x20results\x20in\x20the\x20database\x20(not\x20the\x20count\x20of\ - \x20this\x20message's\n\x20`modules`).\n\n\r\n\x05\x04\r\x02\x02\x05\x12\ - \x04\xa6\x01\x02\x08\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\xa6\x01\t\x0e\n\ - \r\n\x05\x04\r\x02\x02\x03\x12\x04\xa6\x01\x11\x12\n\x0c\n\x04\x04\r\x02\ - \x03\x12\x04\xa7\x01\x02\x10\n\r\n\x05\x04\r\x02\x03\x06\x12\x04\xa7\x01\ - \x02\x06\n\r\n\x05\x04\r\x02\x03\x01\x12\x04\xa7\x01\x07\x0b\n\r\n\x05\ - \x04\r\x02\x03\x03\x12\x04\xa7\x01\x0e\x0f\n\x0c\n\x04\x04\r\x02\x04\x12\ - \x04\xa8\x01\x02\x1b\n\r\n\x05\x04\r\x02\x04\x04\x12\x04\xa8\x01\x02\n\n\ - \r\n\x05\x04\r\x02\x04\x06\x12\x04\xa8\x01\x0b\x10\n\r\n\x05\x04\r\x02\ - \x04\x01\x12\x04\xa8\x01\x11\x16\n\r\n\x05\x04\r\x02\x04\x03\x12\x04\xa8\ - \x01\x19\x1a\n\xe8\x01\n\x02\x04\x0e\x12\x06\xaf\x01\0\xd2\x01\x01\x1a\ - \xd9\x01\x20`POST\x20/api/v1/search:`\n\x20Search\x20for\x20modules\x20b\ - ased\x20on\x20filter\x20params\x20provided\x20(which\x20should\x20be\x20\ - any\n\x20dimension\x20of\x20the\x20module\x20schema,\x20or\x20string\x20\ - search\x20in\x20any\x20metadata\x20value).\n\x20Return\x20a\x20paginated\ - \x20list\x20of\x20matching\x20modules.\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\ - \xaf\x01\x08\x1c\n>\n\x04\x04\x0e\x02\0\x12\x04\xb1\x01\x02\x18\x1a0\x20\ - ID\x20for\x20this\x20module,\x20generated\x20by\x20the\x20database.\n\n\ - \r\n\x05\x04\x0e\x02\0\x04\x12\x04\xb1\x01\x02\n\n\r\n\x05\x04\x0e\x02\0\ - \x05\x12\x04\xb1\x01\x0b\x10\n\r\n\x05\x04\x0e\x02\0\x01\x12\x04\xb1\x01\ - \x11\x13\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xb1\x01\x16\x17\n7\n\x04\ - \x04\x0e\x02\x01\x12\x04\xb3\x01\x02\x1b\x1a)\x20original\x20name\x20of\ - \x20the\x20binary\x20module\x20file\n\n\r\n\x05\x04\x0e\x02\x01\x04\x12\ - \x04\xb3\x01\x02\n\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xb3\x01\x0b\x11\ - \n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xb3\x01\x12\x16\n\r\n\x05\x04\x0e\ - \x02\x01\x03\x12\x04\xb3\x01\x19\x1a\n\x82\x01\n\x04\x04\x0e\x02\x02\x12\ - \x04\xb6\x01\x02\x1e\x1at\x20function\x20imports\x20called\x20by\x20the\ - \x20module\x20(see:\n\x20)\n\n\r\n\x05\x04\x0e\x02\x02\x04\x12\x04\xb6\x01\ - \x02\n\n\r\n\x05\x04\x0e\x02\x02\x06\x12\x04\xb6\x01\x0b\x11\n\r\n\x05\ - \x04\x0e\x02\x02\x01\x12\x04\xb6\x01\x12\x19\n\r\n\x05\x04\x0e\x02\x02\ - \x03\x12\x04\xb6\x01\x1c\x1d\n\x84\x01\n\x04\x04\x0e\x02\x03\x12\x04\xb9\ - \x01\x02\x1e\x1av\x20function\x20exports\x20provided\x20by\x20the\x20mod\ - ule\x20(see:\n\x20)\n\n\r\n\x05\x04\x0e\x02\x03\x04\x12\x04\xb9\x01\x02\n\n\ - \r\n\x05\x04\x0e\x02\x03\x06\x12\x04\xb9\x01\x0b\x11\n\r\n\x05\x04\x0e\ - \x02\x03\x01\x12\x04\xb9\x01\x12\x19\n\r\n\x05\x04\x0e\x02\x03\x03\x12\ - \x04\xb9\x01\x1c\x1d\n3\n\x04\x04\x0e\x02\x04\x12\x04\xbb\x01\x02\x1f\ - \x1a%\x20minimum\x20size\x20in\x20bytes\x20of\x20the\x20module\n\n\r\n\ - \x05\x04\x0e\x02\x04\x04\x12\x04\xbb\x01\x02\n\n\r\n\x05\x04\x0e\x02\x04\ - \x05\x12\x04\xbb\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x04\x01\x12\x04\xbb\ - \x01\x12\x1a\n\r\n\x05\x04\x0e\x02\x04\x03\x12\x04\xbb\x01\x1d\x1e\n3\n\ - \x04\x04\x0e\x02\x05\x12\x04\xbd\x01\x02\x1f\x1a%\x20maximum\x20size\x20\ - in\x20bytes\x20of\x20the\x20module\n\n\r\n\x05\x04\x0e\x02\x05\x04\x12\ - \x04\xbd\x01\x02\n\n\r\n\x05\x04\x0e\x02\x05\x05\x12\x04\xbd\x01\x0b\x11\ - \n\r\n\x05\x04\x0e\x02\x05\x01\x12\x04\xbd\x01\x12\x1a\n\r\n\x05\x04\x0e\ - \x02\x05\x03\x12\x04\xbd\x01\x1d\x1e\ng\n\x04\x04\x0e\x02\x06\x12\x04\ - \xc0\x01\x02\x1f\x1aY\x20optional\x20path\x20or\x20locator\x20to\x20the\ - \x20module\x20(TODO:\x20maybe\x20this\x20is\x20better\x20stored\n\x20as\ - \x20metadata)\n\n\r\n\x05\x04\x0e\x02\x06\x04\x12\x04\xc0\x01\x02\n\n\r\ - \n\x05\x04\x0e\x02\x06\x05\x12\x04\xc0\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\ - \x06\x01\x12\x04\xc0\x01\x12\x1a\n\r\n\x05\x04\x0e\x02\x06\x03\x12\x04\ - \xc0\x01\x1d\x1e\n@\n\x04\x04\x0e\x02\x07\x12\x04\xc2\x01\x02.\x1a2\x20p\ - rogramming\x20language\x20used\x20to\x20produce\x20this\x20module\n\n\r\ - \n\x05\x04\x0e\x02\x07\x04\x12\x04\xc2\x01\x02\n\n\r\n\x05\x04\x0e\x02\ - \x07\x06\x12\x04\xc2\x01\x0b\x19\n\r\n\x05\x04\x0e\x02\x07\x01\x12\x04\ - \xc2\x01\x1a)\n\r\n\x05\x04\x0e\x02\x07\x03\x12\x04\xc2\x01,-\nJ\n\x04\ - \x04\x0e\x02\x08\x12\x04\xc4\x01\x02$\x1a<\x20arbitrary\x20metadata\x20p\ - rovided\x20by\x20the\x20operator\x20of\x20this\x20module\n\n\r\n\x05\x04\ - \x0e\x02\x08\x06\x12\x04\xc4\x01\x02\x15\n\r\n\x05\x04\x0e\x02\x08\x01\ - \x12\x04\xc4\x01\x16\x1e\n\r\n\x05\x04\x0e\x02\x08\x03\x12\x04\xc4\x01!#\ - \n@\n\x04\x04\x0e\x02\t\x12\x04\xc6\x01\x02:\x1a2\x20timestamp\x20when\ - \x20this\x20module\x20was\x20loaded\x20and\x20stored\n\n\r\n\x05\x04\x0e\ - \x02\t\x04\x12\x04\xc6\x01\x02\n\n\r\n\x05\x04\x0e\x02\t\x06\x12\x04\xc6\ - \x01\x0b$\n\r\n\x05\x04\x0e\x02\t\x01\x12\x04\xc6\x01%4\n\r\n\x05\x04\ - \x0e\x02\t\x03\x12\x04\xc6\x0179\n@\n\x04\x04\x0e\x02\n\x12\x04\xc8\x01\ - \x029\x1a2\x20timestamp\x20when\x20this\x20module\x20was\x20loaded\x20an\ - d\x20stored\n\n\r\n\x05\x04\x0e\x02\n\x04\x12\x04\xc8\x01\x02\n\n\r\n\ - \x05\x04\x0e\x02\n\x06\x12\x04\xc8\x01\x0b$\n\r\n\x05\x04\x0e\x02\n\x01\ - \x12\x04\xc8\x01%3\n\r\n\x05\x04\x0e\x02\n\x03\x12\x04\xc8\x0168\n[\n\ - \x04\x04\x0e\x02\x0b\x12\x04\xca\x01\x02\x1f\x1aM\x20the\x20interned\x20\ - strings\x20stored\x20in\x20the\x20wasm\x20binary\x20(panic/abort\x20mess\ - ages,\x20etc.)\n\n\r\n\x05\x04\x0e\x02\x0b\x04\x12\x04\xca\x01\x02\n\n\r\ - \n\x05\x04\x0e\x02\x0b\x05\x12\x04\xca\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\ - \x0b\x01\x12\x04\xca\x01\x12\x19\n\r\n\x05\x04\x0e\x02\x0b\x03\x12\x04\ - \xca\x01\x1c\x1e\nB\n\x04\x04\x0e\x02\x0c\x12\x04\xcc\x01\x02%\x1a4\x20m\ - atch\x20on\x20any\x20function\x20name\x20in\x20an\x20import\x20or\x20exp\ - ort.\n\n\r\n\x05\x04\x0e\x02\x0c\x04\x12\x04\xcc\x01\x02\n\n\r\n\x05\x04\ - \x0e\x02\x0c\x05\x12\x04\xcc\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x0c\x01\ - \x12\x04\xcc\x01\x12\x1f\n\r\n\x05\x04\x0e\x02\x0c\x03\x12\x04\xcc\x01\"\ - $\nO\n\x04\x04\x0e\x02\r\x12\x04\xce\x01\x02#\x1aA\x20match\x20on\x20the\ - \x20module\x20name\x20e.g.\x20`env`\x20or\x20`wasi_snapshot_preview1`\n\ - \n\r\n\x05\x04\x0e\x02\r\x04\x12\x04\xce\x01\x02\n\n\r\n\x05\x04\x0e\x02\ - \r\x05\x12\x04\xce\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\r\x01\x12\x04\xce\ - \x01\x12\x1d\n\r\n\x05\x04\x0e\x02\r\x03\x12\x04\xce\x01\x20\"\n\x0c\n\ - \x04\x04\x0e\x02\x0e\x12\x04\xd0\x01\x02\x1d\n\r\n\x05\x04\x0e\x02\x0e\ - \x06\x12\x04\xd0\x01\x02\x0c\n\r\n\x05\x04\x0e\x02\x0e\x01\x12\x04\xd0\ - \x01\r\x17\n\r\n\x05\x04\x0e\x02\x0e\x03\x12\x04\xd0\x01\x1a\x1c\n\x0c\n\ - \x04\x04\x0e\x02\x0f\x12\x04\xd1\x01\x02\x11\n\r\n\x05\x04\x0e\x02\x0f\ - \x06\x12\x04\xd1\x01\x02\x06\n\r\n\x05\x04\x0e\x02\x0f\x01\x12\x04\xd1\ - \x01\x07\x0b\n\r\n\x05\x04\x0e\x02\x0f\x03\x12\x04\xd1\x01\x0e\x10\nM\n\ - \x02\x04\x0f\x12\x06\xd5\x01\0\xdd\x01\x01\x1a?\x20The\x20message\x20ret\ - urned\x20in\x20response\x20to\x20a\x20`SearchModulesRequest`.\n\n\x0b\n\ - \x03\x04\x0f\x01\x12\x04\xd5\x01\x08\x1d\n\x0c\n\x04\x04\x0f\x02\0\x12\ - \x04\xd6\x01\x02\x1e\n\r\n\x05\x04\x0f\x02\0\x04\x12\x04\xd6\x01\x02\n\n\ - \r\n\x05\x04\x0f\x02\0\x06\x12\x04\xd6\x01\x0b\x11\n\r\n\x05\x04\x0f\x02\ - \0\x01\x12\x04\xd6\x01\x12\x19\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\xd6\ - \x01\x1c\x1d\n\x0c\n\x04\x04\x0f\x02\x01\x12\x04\xd7\x01\x02\x1c\n\r\n\ - \x05\x04\x0f\x02\x01\x06\x12\x04\xd7\x01\x02\x0c\n\r\n\x05\x04\x0f\x02\ - \x01\x01\x12\x04\xd7\x01\r\x17\n\r\n\x05\x04\x0f\x02\x01\x03\x12\x04\xd7\ - \x01\x1a\x1b\ng\n\x04\x04\x0f\x02\x02\x12\x04\xda\x01\x02\x13\x1aY\x20th\ - e\x20full\x20count\x20of\x20results\x20in\x20the\x20database\x20(not\x20\ - the\x20count\x20of\x20this\x20message's\n\x20`modules`).\n\n\r\n\x05\x04\ - \x0f\x02\x02\x05\x12\x04\xda\x01\x02\x08\n\r\n\x05\x04\x0f\x02\x02\x01\ - \x12\x04\xda\x01\t\x0e\n\r\n\x05\x04\x0f\x02\x02\x03\x12\x04\xda\x01\x11\ - \x12\n\x0c\n\x04\x04\x0f\x02\x03\x12\x04\xdb\x01\x02\x10\n\r\n\x05\x04\ - \x0f\x02\x03\x06\x12\x04\xdb\x01\x02\x06\n\r\n\x05\x04\x0f\x02\x03\x01\ - \x12\x04\xdb\x01\x07\x0b\n\r\n\x05\x04\x0f\x02\x03\x03\x12\x04\xdb\x01\ - \x0e\x0f\n\x0c\n\x04\x04\x0f\x02\x04\x12\x04\xdc\x01\x02\x1b\n\r\n\x05\ - \x04\x0f\x02\x04\x04\x12\x04\xdc\x01\x02\n\n\r\n\x05\x04\x0f\x02\x04\x06\ - \x12\x04\xdc\x01\x0b\x10\n\r\n\x05\x04\x0f\x02\x04\x01\x12\x04\xdc\x01\ - \x11\x16\n\r\n\x05\x04\x0f\x02\x04\x03\x12\x04\xdc\x01\x19\x1a\nt\n\x02\ - \x04\x10\x12\x04\xe1\x01\0?\x1ah\x20`DELETE\x20/api/v1/module:`\n\x20Rem\ - ove\x20a\x20module\x20from\x20the\x20database\x20by\x20its\x20ID.\x20Ret\ - urn\x20the\x20module\x20IDs\x20&\x20hashes.\n\n\x0b\n\x03\x04\x10\x01\ - \x12\x04\xe1\x01\x08\x1c\n\x0c\n\x04\x04\x10\x02\0\x12\x04\xe1\x01\x1f=\ - \n\r\n\x05\x04\x10\x02\0\x04\x12\x04\xe1\x01\x1f'\n\r\n\x05\x04\x10\x02\ - \0\x05\x12\x04\xe1\x01(-\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xe1\x01.8\n\ - \r\n\x05\x04\x10\x02\0\x03\x12\x04\xe1\x01;<\nM\n\x02\x04\x11\x12\x06\ - \xe4\x01\0\xe7\x01\x01\x1a?\x20The\x20message\x20returned\x20in\x20respo\ - nse\x20to\x20a\x20`DeleteModulesRequest`.\n\n\x0b\n\x03\x04\x11\x01\x12\ - \x04\xe4\x01\x08\x1d\n\x0c\n\x04\x04\x11\x02\0\x12\x04\xe5\x01\x02(\n\r\ - \n\x05\x04\x11\x02\0\x06\x12\x04\xe5\x01\x02\x14\n\r\n\x05\x04\x11\x02\0\ - \x01\x12\x04\xe5\x01\x15#\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xe5\x01&'\ - \n\x0c\n\x04\x04\x11\x02\x01\x12\x04\xe6\x01\x02\x1b\n\r\n\x05\x04\x11\ - \x02\x01\x04\x12\x04\xe6\x01\x02\n\n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\ - \xe6\x01\x0b\x10\n\r\n\x05\x04\x11\x02\x01\x01\x12\x04\xe6\x01\x11\x16\n\ - \r\n\x05\x04\x11\x02\x01\x03\x12\x04\xe6\x01\x19\x1a\n\xfc\x01\n\x02\x05\ - \x04\x12\x06\xec\x01\0\xef\x01\x01\x1a\xed\x01\x20Represents\x20the\x20e\ - xpected\x20outcome\x20of\x20an\x20AuditModulesRequest.\x20If\x20PASS\x20\ - is\x20provided,\x20then\n\x20the\x20audit\x20returns\x20modules\x20which\ - \x20conform\x20to\x20the\x20checkfile.\x20If\x20FAIL\x20is\x20provided,\ - \x20then\n\x20the\x20audit\x20returns\x20modules\x20which\x20do\x20not\ - \x20conform\x20to\x20the\x20checkfile.\n\n\x0b\n\x03\x05\x04\x01\x12\x04\ - \xec\x01\x05\x11\n\x0c\n\x04\x05\x04\x02\0\x12\x04\xed\x01\x02\x0b\n\r\n\ - \x05\x05\x04\x02\0\x01\x12\x04\xed\x01\x02\x06\n\r\n\x05\x05\x04\x02\0\ - \x02\x12\x04\xed\x01\t\n\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xee\x01\x02\ - \x0b\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xee\x01\x02\x06\n\r\n\x05\x05\ - \x04\x02\x01\x02\x12\x04\xee\x01\t\n\n\x82\x01\n\x02\x04\x12\x12\x06\xf3\ - \x01\0\xf8\x01\x01\x1at\x20`POST\x20/api/v1/audit:`\n\x20Return\x20a\x20\ - list\x20of\x20modules\x20which\x20match\x20the\x20outcome\x20requirement\ - s\x20using\x20the\x20provided\x20checkfile.\n\n\x0b\n\x03\x04\x12\x01\ - \x12\x04\xf3\x01\x08\x1b\n8\n\x04\x04\x12\x02\0\x12\x04\xf5\x01\x02\x16\ - \x1a*\x20the\x20YAML\x20checkfile\x20(e.g.\x20mod.yaml)\x20bytes\n\n\r\n\ - \x05\x04\x12\x02\0\x05\x12\x04\xf5\x01\x02\x07\n\r\n\x05\x04\x12\x02\0\ - \x01\x12\x04\xf5\x01\x08\x11\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\xf5\x01\ - \x14\x15\n\x0c\n\x04\x04\x12\x02\x01\x12\x04\xf6\x01\x02\x1b\n\r\n\x05\ - \x04\x12\x02\x01\x06\x12\x04\xf6\x01\x02\x0e\n\r\n\x05\x04\x12\x02\x01\ - \x01\x12\x04\xf6\x01\x0f\x16\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xf6\ - \x01\x19\x1a\n\x0c\n\x04\x04\x12\x02\x02\x12\x04\xf7\x01\x02\x1c\n\r\n\ - \x05\x04\x12\x02\x02\x06\x12\x04\xf7\x01\x02\x0c\n\r\n\x05\x04\x12\x02\ - \x02\x01\x12\x04\xf7\x01\r\x17\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\xf7\ - \x01\x1a\x1b\nL\n\x02\x04\x13\x12\x06\xfb\x01\0\x84\x02\x01\x1a>\x20The\ - \x20message\x20returned\x20in\x20response\x20to\x20a\x20`AuditModulesReq\ - uest`.\n\n\x0b\n\x03\x04\x13\x01\x12\x04\xfb\x01\x08\x1c\n\xad\x01\n\x04\ - \x04\x13\x02\0\x12\x04\xfe\x01\x02.\x1a\x9e\x01\x20each\x20record\x20con\ - tains\x20the\x20ID\x20of\x20the\x20invalid\x20Module\x20which\x20failed\ - \x20the\x20audit,\x20as\x20well\x20as\x20the\x20failure\x20\n\x20report\ - \x20produced\x20by\x20the\x20validation\x20check\x20(encoded\x20in\x20JS\ - ON)\n\n\r\n\x05\x04\x13\x02\0\x06\x12\x04\xfe\x01\x02\x13\n\r\n\x05\x04\ - \x13\x02\0\x01\x12\x04\xfe\x01\x14)\n\r\n\x05\x04\x13\x02\0\x03\x12\x04\ - \xfe\x01,-\n\x0c\n\x04\x04\x13\x02\x01\x12\x04\xff\x01\x02\x1c\n\r\n\x05\ - \x04\x13\x02\x01\x06\x12\x04\xff\x01\x02\x0c\n\r\n\x05\x04\x13\x02\x01\ - \x01\x12\x04\xff\x01\r\x17\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\xff\x01\ - \x1a\x1b\ng\n\x04\x04\x13\x02\x02\x12\x04\x82\x02\x02\x13\x1aY\x20the\ - \x20full\x20count\x20of\x20results\x20in\x20the\x20database\x20(not\x20t\ - he\x20count\x20of\x20this\x20message's\n\x20`modules`).\n\n\r\n\x05\x04\ - \x13\x02\x02\x05\x12\x04\x82\x02\x02\x08\n\r\n\x05\x04\x13\x02\x02\x01\ - \x12\x04\x82\x02\t\x0e\n\r\n\x05\x04\x13\x02\x02\x03\x12\x04\x82\x02\x11\ - \x12\n\x0c\n\x04\x04\x13\x02\x03\x12\x04\x83\x02\x02\x1b\n\r\n\x05\x04\ - \x13\x02\x03\x04\x12\x04\x83\x02\x02\n\n\r\n\x05\x04\x13\x02\x03\x06\x12\ - \x04\x83\x02\x0b\x10\n\r\n\x05\x04\x13\x02\x03\x01\x12\x04\x83\x02\x11\ - \x16\n\r\n\x05\x04\x13\x02\x03\x03\x12\x04\x83\x02\x19\x1a\nD\n\x02\x04\ - \x14\x12\x06\x88\x02\0\x8d\x02\x01\x1a6\x20`POST\x20/api/v1/diff:`\n\x20\ - Return\x20the\x20diff\x20of\x20two\x20modules\n\n\x0b\n\x03\x04\x14\x01\ - \x12\x04\x88\x02\x08\x13\n\x0c\n\x04\x04\x14\x02\0\x12\x04\x89\x02\x02\ - \x14\n\r\n\x05\x04\x14\x02\0\x05\x12\x04\x89\x02\x02\x07\n\r\n\x05\x04\ - \x14\x02\0\x01\x12\x04\x89\x02\x08\x0f\n\r\n\x05\x04\x14\x02\0\x03\x12\ - \x04\x89\x02\x12\x13\n\x0c\n\x04\x04\x14\x02\x01\x12\x04\x8a\x02\x02\x14\ - \n\r\n\x05\x04\x14\x02\x01\x05\x12\x04\x8a\x02\x02\x07\n\r\n\x05\x04\x14\ - \x02\x01\x01\x12\x04\x8a\x02\x08\x0f\n\r\n\x05\x04\x14\x02\x01\x03\x12\ - \x04\x8a\x02\x12\x13\n\x0c\n\x04\x04\x14\x02\x02\x12\x04\x8b\x02\x02\x1a\ - \n\r\n\x05\x04\x14\x02\x02\x05\x12\x04\x8b\x02\x02\x06\n\r\n\x05\x04\x14\ - \x02\x02\x01\x12\x04\x8b\x02\x07\x15\n\r\n\x05\x04\x14\x02\x02\x03\x12\ - \x04\x8b\x02\x18\x19\n\x0c\n\x04\x04\x14\x02\x03\x12\x04\x8c\x02\x02\x18\ - \n\r\n\x05\x04\x14\x02\x03\x05\x12\x04\x8c\x02\x02\x06\n\r\n\x05\x04\x14\ - \x02\x03\x01\x12\x04\x8c\x02\x07\x13\n\r\n\x05\x04\x14\x02\x03\x03\x12\ - \x04\x8c\x02\x16\x17\n\x98\x01\n\x02\x04\x15\x12\x06\x91\x02\0\x94\x02\ - \x01\x1a\x89\x01\x20The\x20message\x20returned\x20in\x20response\x20to\ - \x20`DiffRequest`,\x20contains\x20a\x20text\x20representation\x20of\x20t\ - he\x20difference\n\x20between\x20the\x20two\x20specified\x20modules.\n\n\ - \x0b\n\x03\x04\x15\x01\x12\x04\x91\x02\x08\x14\n\x0c\n\x04\x04\x15\x02\0\ - \x12\x04\x92\x02\x02\x12\n\r\n\x05\x04\x15\x02\0\x05\x12\x04\x92\x02\x02\ - \x08\n\r\n\x05\x04\x15\x02\0\x01\x12\x04\x92\x02\t\r\n\r\n\x05\x04\x15\ - \x02\0\x03\x12\x04\x92\x02\x10\x11\n\x0c\n\x04\x04\x15\x02\x01\x12\x04\ - \x93\x02\x02\x1b\n\r\n\x05\x04\x15\x02\x01\x04\x12\x04\x93\x02\x02\n\n\r\ - \n\x05\x04\x15\x02\x01\x06\x12\x04\x93\x02\x0b\x10\n\r\n\x05\x04\x15\x02\ - \x01\x01\x12\x04\x93\x02\x11\x16\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\ - \x93\x02\x19\x1a\n\x8a\x01\n\x02\x04\x16\x12\x06\x98\x02\0\xa1\x02\x01\ - \x1a|\x20`POST\x20/api/v1/validate:`\n\x20Return\x20the\x20failure\x20re\ - port\x20(if\x20applicable)\x20of\x20a\x20wasm\x20module\x20validation\ - \x20against\x20a\x20given\x20checkfile.\n\n\x0b\n\x03\x04\x16\x01\x12\ - \x04\x98\x02\x08\x1d\n8\n\x04\x04\x16\x02\0\x12\x04\x9a\x02\x02\x16\x1a*\ - \x20the\x20YAML\x20checkfile\x20(e.g.\x20mod.yaml)\x20bytes\n\n\r\n\x05\ - \x04\x16\x02\0\x05\x12\x04\x9a\x02\x02\x07\n\r\n\x05\x04\x16\x02\0\x01\ - \x12\x04\x9a\x02\x08\x11\n\r\n\x05\x04\x16\x02\0\x03\x12\x04\x9a\x02\x14\ - \x15\n\xb8\x01\n\x04\x04\x16\x08\0\x12\x06\x9d\x02\x02\xa0\x02\x03\x1a\ - \xa7\x01\x20module_input\x20is\x20either\x20an\x20existing\x20`module_id\ - `\x20that\x20is\x20known\x20to\x20the\x20database,\x20or\x20the\x20bytes\ - \x20of\n\x20a\x20raw\x20wasm\x20module.\x20It\x20is\x20used\x20to\x20val\ - idate\x20against\x20the\x20given\x20checkfile.\n\n\r\n\x05\x04\x16\x08\0\ - \x01\x12\x04\x9d\x02\x08\x14\n\x0c\n\x04\x04\x16\x02\x01\x12\x04\x9e\x02\ - \x04\x15\n\r\n\x05\x04\x16\x02\x01\x05\x12\x04\x9e\x02\x04\t\n\r\n\x05\ - \x04\x16\x02\x01\x01\x12\x04\x9e\x02\n\x10\n\r\n\x05\x04\x16\x02\x01\x03\ - \x12\x04\x9e\x02\x13\x14\n\x0c\n\x04\x04\x16\x02\x02\x12\x04\x9f\x02\x04\ - \x18\n\r\n\x05\x04\x16\x02\x02\x05\x12\x04\x9f\x02\x04\t\n\r\n\x05\x04\ - \x16\x02\x02\x01\x12\x04\x9f\x02\n\x13\n\r\n\x05\x04\x16\x02\x02\x03\x12\ - \x04\x9f\x02\x16\x17\nV\n\x02\x04\x17\x12\x06\xa4\x02\0\xa7\x02\x01\x1aH\ - \x20The\x20failure\x20report\x20produced\x20by\x20the\x20validation\x20c\ - heck\x20(encoded\x20in\x20JSON).\n\n\x0b\n\x03\x04\x17\x01\x12\x04\xa4\ - \x02\x08\x1e\n\x0c\n\x04\x04\x17\x02\0\x12\x04\xa5\x02\x02\"\n\r\n\x05\ - \x04\x17\x02\0\x05\x12\x04\xa5\x02\x02\x07\n\r\n\x05\x04\x17\x02\0\x01\ - \x12\x04\xa5\x02\x08\x1d\n\r\n\x05\x04\x17\x02\0\x03\x12\x04\xa5\x02\x20\ - !\n\x0c\n\x04\x04\x17\x02\x01\x12\x04\xa6\x02\x02\x1b\n\r\n\x05\x04\x17\ - \x02\x01\x04\x12\x04\xa6\x02\x02\n\n\r\n\x05\x04\x17\x02\x01\x06\x12\x04\ - \xa6\x02\x0b\x10\n\r\n\x05\x04\x17\x02\x01\x01\x12\x04\xa6\x02\x11\x16\n\ - \r\n\x05\x04\x17\x02\x01\x03\x12\x04\xa6\x02\x19\x1a\nI\n\x02\x04\x18\ - \x12\x04\xab\x02\06\x1a=\x20`POST\x20/api/v1/module_graph:`\n\x20Return\ - \x20a\x20single\x20module_graph.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xab\ - \x02\x08\x1d\n\x0c\n\x04\x04\x18\x02\0\x12\x04\xab\x02\x204\n\r\n\x05\ - \x04\x18\x02\0\x05\x12\x04\xab\x02\x20%\n\r\n\x05\x04\x18\x02\0\x01\x12\ - \x04\xab\x02&/\n\r\n\x05\x04\x18\x02\0\x03\x12\x04\xab\x0223\nN\n\x02\ - \x04\x19\x12\x06\xae\x02\0\xb1\x02\x01\x1a@\x20The\x20message\x20returne\ - d\x20in\x20response\x20to\x20a\x20`GetModuleGraphRequest`.\n\n\x0b\n\x03\ - \x04\x19\x01\x12\x04\xae\x02\x08\x1e\n\x0c\n\x04\x04\x19\x02\0\x12\x04\ - \xaf\x02\x02\x1f\n\r\n\x05\x04\x19\x02\0\x06\x12\x04\xaf\x02\x02\r\n\r\n\ - \x05\x04\x19\x02\0\x01\x12\x04\xaf\x02\x0e\x1a\n\r\n\x05\x04\x19\x02\0\ - \x03\x12\x04\xaf\x02\x1d\x1e\n\x0c\n\x04\x04\x19\x02\x01\x12\x04\xb0\x02\ - \x02\x1b\n\r\n\x05\x04\x19\x02\x01\x04\x12\x04\xb0\x02\x02\n\n\r\n\x05\ - \x04\x19\x02\x01\x06\x12\x04\xb0\x02\x0b\x10\n\r\n\x05\x04\x19\x02\x01\ - \x01\x12\x04\xb0\x02\x11\x16\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xb0\ - \x02\x19\x1a\n#\n\x02\x04\x1a\x12\x06\xb4\x02\0\xba\x02\x01\x1a\x15\x20P\ - UT\x20/api/v1/plugin:\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xb4\x02\x08\x1c\ - \n\x0c\n\x04\x04\x1a\x02\0\x12\x04\xb5\x02\x02\x18\n\r\n\x05\x04\x1a\x02\ - \0\x05\x12\x04\xb5\x02\x02\x08\n\r\n\x05\x04\x1a\x02\0\x01\x12\x04\xb5\ - \x02\t\x13\n\r\n\x05\x04\x1a\x02\0\x03\x12\x04\xb5\x02\x16\x17\n\x0c\n\ - \x04\x04\x1a\x02\x01\x12\x04\xb6\x02\x02\x1b\n\r\n\x05\x04\x1a\x02\x01\ - \x04\x12\x04\xb6\x02\x02\n\n\r\n\x05\x04\x1a\x02\x01\x05\x12\x04\xb6\x02\ - \x0b\x11\n\r\n\x05\x04\x1a\x02\x01\x01\x12\x04\xb6\x02\x12\x16\n\r\n\x05\ - \x04\x1a\x02\x01\x03\x12\x04\xb6\x02\x19\x1a\n\x0c\n\x04\x04\x1a\x02\x02\ - \x12\x04\xb7\x02\x02\x16\n\r\n\x05\x04\x1a\x02\x02\x05\x12\x04\xb7\x02\ - \x02\x08\n\r\n\x05\x04\x1a\x02\x02\x01\x12\x04\xb7\x02\t\x11\n\r\n\x05\ - \x04\x1a\x02\x02\x03\x12\x04\xb7\x02\x14\x15\n!\n\x04\x04\x1a\x02\x03\ - \x12\x04\xb8\x02\x02\x11\"\x13\x20bytes\x20config\x20=\x205;\n\n\r\n\x05\ - \x04\x1a\x02\x03\x05\x12\x04\xb8\x02\x02\x07\n\r\n\x05\x04\x1a\x02\x03\ - \x01\x12\x04\xb8\x02\x08\x0c\n\r\n\x05\x04\x1a\x02\x03\x03\x12\x04\xb8\ - \x02\x0f\x10\n\x0c\n\x02\x04\x1b\x12\x06\xbc\x02\0\xbf\x02\x01\n\x0b\n\ - \x03\x04\x1b\x01\x12\x04\xbc\x02\x08\x1d\n\x0c\n\x04\x04\x1b\x02\0\x12\ - \x04\xbd\x02\x02\x12\n\r\n\x05\x04\x1b\x02\0\x05\x12\x04\xbd\x02\x02\x08\ - \n\r\n\x05\x04\x1b\x02\0\x01\x12\x04\xbd\x02\t\r\n\r\n\x05\x04\x1b\x02\0\ - \x03\x12\x04\xbd\x02\x10\x11\n\x0c\n\x04\x04\x1b\x02\x01\x12\x04\xbe\x02\ - \x02\x1b\n\r\n\x05\x04\x1b\x02\x01\x04\x12\x04\xbe\x02\x02\n\n\r\n\x05\ - \x04\x1b\x02\x01\x06\x12\x04\xbe\x02\x0b\x10\n\r\n\x05\x04\x1b\x02\x01\ - \x01\x12\x04\xbe\x02\x11\x16\n\r\n\x05\x04\x1b\x02\x01\x03\x12\x04\xbe\ - \x02\x19\x1a\n&\n\x02\x04\x1c\x12\x06\xc2\x02\0\xc4\x02\x01\x1a\x18\x20D\ - ELETE\x20/api/v1/plugin:\n\n\x0b\n\x03\x04\x1c\x01\x12\x04\xc2\x02\x08\ - \x1e\n\x0c\n\x04\x04\x1c\x02\0\x12\x04\xc3\x02\x02\x18\n\r\n\x05\x04\x1c\ - \x02\0\x05\x12\x04\xc3\x02\x02\x08\n\r\n\x05\x04\x1c\x02\0\x01\x12\x04\ - \xc3\x02\t\x13\n\r\n\x05\x04\x1c\x02\0\x03\x12\x04\xc3\x02\x16\x17\n\x0c\ - \n\x02\x04\x1d\x12\x06\xc6\x02\0\xc8\x02\x01\n\x0b\n\x03\x04\x1d\x01\x12\ - \x04\xc6\x02\x08\x1f\n\x0c\n\x04\x04\x1d\x02\0\x12\x04\xc7\x02\x02\x1b\n\ - \r\n\x05\x04\x1d\x02\0\x04\x12\x04\xc7\x02\x02\n\n\r\n\x05\x04\x1d\x02\0\ - \x06\x12\x04\xc7\x02\x0b\x10\n\r\n\x05\x04\x1d\x02\0\x01\x12\x04\xc7\x02\ - \x11\x16\n\r\n\x05\x04\x1d\x02\0\x03\x12\x04\xc7\x02\x19\x1a\n$\n\x02\ - \x04\x1e\x12\x06\xcb\x02\0\xd1\x02\x01\x1a\x16\x20POST\x20/api/v1/plugin\ - :\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\xcb\x02\x08\x19\n\x0c\n\x04\x04\x1e\ - \x02\0\x12\x04\xcc\x02\x02\x18\n\r\n\x05\x04\x1e\x02\0\x05\x12\x04\xcc\ - \x02\x02\x08\n\r\n\x05\x04\x1e\x02\0\x01\x12\x04\xcc\x02\t\x13\n\r\n\x05\ - \x04\x1e\x02\0\x03\x12\x04\xcc\x02\x16\x17\n\x0c\n\x04\x04\x1e\x02\x01\ - \x12\x04\xcd\x02\x02\x1b\n\r\n\x05\x04\x1e\x02\x01\x05\x12\x04\xcd\x02\ - \x02\x08\n\r\n\x05\x04\x1e\x02\x01\x01\x12\x04\xcd\x02\t\x16\n\r\n\x05\ - \x04\x1e\x02\x01\x03\x12\x04\xcd\x02\x19\x1a\n\x0c\n\x04\x04\x1e\x02\x02\ - \x12\x04\xce\x02\x02\x12\n\r\n\x05\x04\x1e\x02\x02\x05\x12\x04\xce\x02\ - \x02\x07\n\r\n\x05\x04\x1e\x02\x02\x01\x12\x04\xce\x02\x08\r\n\r\n\x05\ - \x04\x1e\x02\x02\x03\x12\x04\xce\x02\x10\x11\n!\n\x04\x04\x1e\x02\x03\ - \x12\x04\xcf\x02\x02\x1b\"\x13\x20bytes\x20config\x20=\x205;\n\n\r\n\x05\ - \x04\x1e\x02\x03\x04\x12\x04\xcf\x02\x02\n\n\r\n\x05\x04\x1e\x02\x03\x05\ - \x12\x04\xcf\x02\x0b\x11\n\r\n\x05\x04\x1e\x02\x03\x01\x12\x04\xcf\x02\ - \x12\x16\n\r\n\x05\x04\x1e\x02\x03\x03\x12\x04\xcf\x02\x19\x1a\n\x0c\n\ - \x02\x04\x1f\x12\x06\xd3\x02\0\xd6\x02\x01\n\x0b\n\x03\x04\x1f\x01\x12\ - \x04\xd3\x02\x08\x1a\n\x0c\n\x04\x04\x1f\x02\0\x12\x04\xd4\x02\x02\x13\n\ - \r\n\x05\x04\x1f\x02\0\x05\x12\x04\xd4\x02\x02\x07\n\r\n\x05\x04\x1f\x02\ - \0\x01\x12\x04\xd4\x02\x08\x0e\n\r\n\x05\x04\x1f\x02\0\x03\x12\x04\xd4\ - \x02\x11\x12\n\x0c\n\x04\x04\x1f\x02\x01\x12\x04\xd5\x02\x02\x1b\n\r\n\ - \x05\x04\x1f\x02\x01\x04\x12\x04\xd5\x02\x02\n\n\r\n\x05\x04\x1f\x02\x01\ - \x06\x12\x04\xd5\x02\x0b\x10\n\r\n\x05\x04\x1f\x02\x01\x01\x12\x04\xd5\ - \x02\x11\x16\n\r\n\x05\x04\x1f\x02\x01\x03\x12\x04\xd5\x02\x19\x1ab\x06p\ - roto3\ + \x04\x02\x01\x05\x12\x03Y\x02\x07\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\ + \x03Y\x08\x12\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03Y\x15\x16\n?\n\x02\ + \x04\x05\x12\x04]\0`\x01\x1a3\x20An\x20error\x20message\x20indicating\ + \x20a\x20problem\x20in\x20the\x20API.\n\n\n\n\x03\x04\x05\x01\x12\x03]\ + \x08\r\n\x0b\n\x04\x04\x05\x02\0\x12\x03^\x02\x11\n\x0c\n\x05\x04\x05\ + \x02\0\x05\x12\x03^\x02\x07\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03^\x08\ + \x0c\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03^\x0f\x10\n\x0b\n\x04\x04\x05\ + \x02\x01\x12\x03_\x02\x15\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03_\x02\ + \x08\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03_\t\x10\n\x0c\n\x05\x04\x05\ + \x02\x01\x03\x12\x03_\x13\x14\n]\n\x02\x04\x06\x12\x04d\0g\x01\x1aQ\x20C\ + ontrol/limit\x20the\x20way\x20results\x20are\x20paginated\x20when\x20wor\ + king\x20with\x20large\n\x20responses.\n\n\n\n\x03\x04\x06\x01\x12\x03d\ + \x08\x12\n\x0b\n\x04\x04\x06\x02\0\x12\x03e\x02\x13\n\x0c\n\x05\x04\x06\ + \x02\0\x05\x12\x03e\x02\x08\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03e\t\x0e\ + \n\x0c\n\x05\x04\x06\x02\0\x03\x12\x03e\x11\x12\n\x0b\n\x04\x04\x06\x02\ + \x01\x12\x03f\x02\x14\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03f\x02\x08\n\ + \x0c\n\x05\x04\x06\x02\x01\x01\x12\x03f\t\x0f\n\x0c\n\x05\x04\x06\x02\ + \x01\x03\x12\x03f\x12\x13\n8\n\x02\x04\x07\x12\x04j\0m\x01\x1a,\x20Deter\ + mine\x20how\x20to\x20sort\x20results\x20from\x20the\x20API\n\n\n\n\x03\ + \x04\x07\x01\x12\x03j\x08\x0c\n\x0b\n\x04\x04\x07\x02\0\x12\x03k\x02\x1a\ + \n\x0c\n\x05\x04\x07\x02\0\x06\x12\x03k\x02\x0b\n\x0c\n\x05\x04\x07\x02\ + \0\x01\x12\x03k\x0c\x15\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x03k\x18\x19\n\ + \x0b\n\x04\x04\x07\x02\x01\x12\x03l\x02\x12\n\x0c\n\x05\x04\x07\x02\x01\ + \x06\x12\x03l\x02\x07\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03l\x08\r\n\ + \x0c\n\x05\x04\x07\x02\x01\x03\x12\x03l\x10\x11\nL\n\x02\x05\x02\x12\x04\ + p\0s\x01\x1a@\x20The\x20direction,\x20descending\x20or\x20ascending,\x20\ + of\x20the\x20sort\x20operation.\n\n\n\n\x03\x05\x02\x01\x12\x03p\x05\x0e\ + \n\x0b\n\x04\x05\x02\x02\0\x12\x03q\x02\x0b\n\x0c\n\x05\x05\x02\x02\0\ + \x01\x12\x03q\x02\x06\n\x0c\n\x05\x05\x02\x02\0\x02\x12\x03q\t\n\n\x0b\n\ + \x04\x05\x02\x02\x01\x12\x03r\x02\n\n\x0c\n\x05\x05\x02\x02\x01\x01\x12\ + \x03r\x02\x05\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03r\x08\t\nW\n\x02\ + \x05\x03\x12\x04v\0\x7f\x01\x1aK\x20The\x20field\x20within\x20the\x20Mod\ + ule\x20schema\x20that\x20is\x20used\x20as\x20the\x20sorting\x20dimension\ + .\n\n\n\n\x03\x05\x03\x01\x12\x03v\x05\n\n\x0b\n\x04\x05\x03\x02\0\x12\ + \x03w\x02\x10\n\x0c\n\x05\x05\x03\x02\0\x01\x12\x03w\x02\x0b\n\x0c\n\x05\ + \x05\x03\x02\0\x02\x12\x03w\x0e\x0f\n\x0b\n\x04\x05\x03\x02\x01\x12\x03x\ + \x02\x0b\n\x0c\n\x05\x05\x03\x02\x01\x01\x12\x03x\x02\x06\n\x0c\n\x05\ + \x05\x03\x02\x01\x02\x12\x03x\t\n\n\x0b\n\x04\x05\x03\x02\x02\x12\x03y\ + \x02\x0b\n\x0c\n\x05\x05\x03\x02\x02\x01\x12\x03y\x02\x06\n\x0c\n\x05\ + \x05\x03\x02\x02\x02\x12\x03y\t\n\n\x0b\n\x04\x05\x03\x02\x03\x12\x03z\ + \x02\x0f\n\x0c\n\x05\x05\x03\x02\x03\x01\x12\x03z\x02\n\n\x0c\n\x05\x05\ + \x03\x02\x03\x02\x12\x03z\r\x0e\n\x0b\n\x04\x05\x03\x02\x04\x12\x03{\x02\ + \x13\n\x0c\n\x05\x05\x03\x02\x04\x01\x12\x03{\x02\x0e\n\x0c\n\x05\x05\ + \x03\x02\x04\x02\x12\x03{\x11\x12\n\x0b\n\x04\x05\x03\x02\x05\x12\x03|\ + \x02\x13\n\x0c\n\x05\x05\x03\x02\x05\x01\x12\x03|\x02\x0e\n\x0c\n\x05\ + \x05\x03\x02\x05\x02\x12\x03|\x11\x12\n\x0b\n\x04\x05\x03\x02\x06\x12\ + \x03}\x02\r\n\x0c\n\x05\x05\x03\x02\x06\x01\x12\x03}\x02\x08\n\x0c\n\x05\ + \x05\x03\x02\x06\x02\x12\x03}\x0b\x0c\n\x0b\n\x04\x05\x03\x02\x07\x12\ + \x03~\x02\x11\n\x0c\n\x05\x05\x03\x02\x07\x01\x12\x03~\x02\x0c\n\x0c\n\ + \x05\x05\x03\x02\x07\x02\x12\x03~\x0f\x10\nn\n\x02\x04\x08\x12\x06\x83\ + \x01\0\x88\x01\x01\x1a`\x20`PUT\x20/api/v1/module:`\n\x20Insert\x20a\x20\ + module,\x20extract\x20data\x20from\x20binary.\x20Return\x20the\x20module\ + \x20ID\x20&\x20hash.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x83\x01\x08\x1b\n\ + \x0c\n\x04\x04\x08\x02\0\x12\x04\x84\x01\x02\x11\n\r\n\x05\x04\x08\x02\0\ + \x05\x12\x04\x84\x01\x02\x07\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\x84\x01\ + \x08\x0c\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\x84\x01\x0f\x10\n\x0c\n\x04\ + \x04\x08\x02\x01\x12\x04\x85\x01\x02#\n\r\n\x05\x04\x08\x02\x01\x06\x12\ + \x04\x85\x01\x02\x15\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x85\x01\x16\ + \x1e\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x85\x01!\"\nT\n\x04\x04\x08\ + \x02\x02\x12\x04\x87\x01\x02\x1f\x1aF\x20a\x20valid\x20URL\x20with\x20a\ + \x20scheme\x20prefix\x20e.g.\x20`s3://`,\x20`file://`,\x20`https://`\n\n\ + \r\n\x05\x04\x08\x02\x02\x04\x12\x04\x87\x01\x02\n\n\r\n\x05\x04\x08\x02\ + \x02\x05\x12\x04\x87\x01\x0b\x11\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\ + \x87\x01\x12\x1a\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x87\x01\x1d\x1e\n\ + L\n\x02\x04\t\x12\x06\x8b\x01\0\x8f\x01\x01\x1a>\x20The\x20message\x20re\ + turned\x20in\x20response\x20to\x20a\x20`CreateModuleRequest`.\n\n\x0b\n\ + \x03\x04\t\x01\x12\x04\x8b\x01\x08\x1c\n\x0c\n\x04\x04\t\x02\0\x12\x04\ + \x8c\x01\x02\x16\n\r\n\x05\x04\t\x02\0\x05\x12\x04\x8c\x01\x02\x07\n\r\n\ + \x05\x04\t\x02\0\x01\x12\x04\x8c\x01\x08\x11\n\r\n\x05\x04\t\x02\0\x03\ + \x12\x04\x8c\x01\x14\x15\n\x0c\n\x04\x04\t\x02\x01\x12\x04\x8d\x01\x02\ + \x12\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x8d\x01\x02\x08\n\r\n\x05\x04\t\ + \x02\x01\x01\x12\x04\x8d\x01\t\r\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x8d\ + \x01\x10\x11\n\x0c\n\x04\x04\t\x02\x02\x12\x04\x8e\x01\x02\x1b\n\r\n\x05\ + \x04\t\x02\x02\x04\x12\x04\x8e\x01\x02\n\n\r\n\x05\x04\t\x02\x02\x06\x12\ + \x04\x8e\x01\x0b\x10\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x8e\x01\x11\x16\ + \n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x8e\x01\x19\x1a\n=\n\x02\x04\n\x12\ + \x04\x93\x01\01\x1a1\x20`POST\x20/api/v1/module:`\n\x20Return\x20a\x20si\ + ngle\x20module.\n\n\x0b\n\x03\x04\n\x01\x12\x04\x93\x01\x08\x18\n\x0c\n\ + \x04\x04\n\x02\0\x12\x04\x93\x01\x1b/\n\r\n\x05\x04\n\x02\0\x05\x12\x04\ + \x93\x01\x1b\x20\n\r\n\x05\x04\n\x02\0\x01\x12\x04\x93\x01!*\n\r\n\x05\ + \x04\n\x02\0\x03\x12\x04\x93\x01-.\nI\n\x02\x04\x0b\x12\x06\x96\x01\0\ + \x99\x01\x01\x1a;\x20The\x20message\x20returned\x20in\x20response\x20to\ + \x20a\x20`GetModuleRequest`.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\x96\x01\ + \x08\x19\n\x0c\n\x04\x04\x0b\x02\0\x12\x04\x97\x01\x02\x14\n\r\n\x05\x04\ + \x0b\x02\0\x06\x12\x04\x97\x01\x02\x08\n\r\n\x05\x04\x0b\x02\0\x01\x12\ + \x04\x97\x01\t\x0f\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\x97\x01\x12\x13\n\ + \x0c\n\x04\x04\x0b\x02\x01\x12\x04\x98\x01\x02\x1b\n\r\n\x05\x04\x0b\x02\ + \x01\x04\x12\x04\x98\x01\x02\n\n\r\n\x05\x04\x0b\x02\x01\x06\x12\x04\x98\ + \x01\x0b\x10\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\x98\x01\x11\x16\n\r\n\ + \x05\x04\x0b\x02\x01\x03\x12\x04\x98\x01\x19\x1a\nN\n\x02\x04\x0c\x12\ + \x06\x9d\x01\0\xa0\x01\x01\x1a@\x20`POST\x20/api/v1/modules:`\n\x20Retur\ + n\x20paginated\x20list\x20of\x20all\x20modules.\n\n\x0b\n\x03\x04\x0c\ + \x01\x12\x04\x9d\x01\x08\x1a\n\x0c\n\x04\x04\x0c\x02\0\x12\x04\x9e\x01\ + \x02\x1c\n\r\n\x05\x04\x0c\x02\0\x06\x12\x04\x9e\x01\x02\x0c\n\r\n\x05\ + \x04\x0c\x02\0\x01\x12\x04\x9e\x01\r\x17\n\r\n\x05\x04\x0c\x02\0\x03\x12\ + \x04\x9e\x01\x1a\x1b\n\x0c\n\x04\x04\x0c\x02\x01\x12\x04\x9f\x01\x02\x10\ + \n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\x9f\x01\x02\x06\n\r\n\x05\x04\x0c\ + \x02\x01\x01\x12\x04\x9f\x01\x07\x0b\n\r\n\x05\x04\x0c\x02\x01\x03\x12\ + \x04\x9f\x01\x0e\x0f\nK\n\x02\x04\r\x12\x06\xa3\x01\0\xab\x01\x01\x1a=\ + \x20The\x20message\x20returned\x20in\x20response\x20to\x20a\x20`ListModu\ + lesRequest`.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xa3\x01\x08\x1b\n\x0c\n\x04\ + \x04\r\x02\0\x12\x04\xa4\x01\x02\x1e\n\r\n\x05\x04\r\x02\0\x04\x12\x04\ + \xa4\x01\x02\n\n\r\n\x05\x04\r\x02\0\x06\x12\x04\xa4\x01\x0b\x11\n\r\n\ + \x05\x04\r\x02\0\x01\x12\x04\xa4\x01\x12\x19\n\r\n\x05\x04\r\x02\0\x03\ + \x12\x04\xa4\x01\x1c\x1d\n\x0c\n\x04\x04\r\x02\x01\x12\x04\xa5\x01\x02\ + \x1c\n\r\n\x05\x04\r\x02\x01\x06\x12\x04\xa5\x01\x02\x0c\n\r\n\x05\x04\r\ + \x02\x01\x01\x12\x04\xa5\x01\r\x17\n\r\n\x05\x04\r\x02\x01\x03\x12\x04\ + \xa5\x01\x1a\x1b\ng\n\x04\x04\r\x02\x02\x12\x04\xa8\x01\x02\x13\x1aY\x20\ + the\x20full\x20count\x20of\x20results\x20in\x20the\x20database\x20(not\ + \x20the\x20count\x20of\x20this\x20message's\n\x20`modules`).\n\n\r\n\x05\ + \x04\r\x02\x02\x05\x12\x04\xa8\x01\x02\x08\n\r\n\x05\x04\r\x02\x02\x01\ + \x12\x04\xa8\x01\t\x0e\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xa8\x01\x11\ + \x12\n\x0c\n\x04\x04\r\x02\x03\x12\x04\xa9\x01\x02\x10\n\r\n\x05\x04\r\ + \x02\x03\x06\x12\x04\xa9\x01\x02\x06\n\r\n\x05\x04\r\x02\x03\x01\x12\x04\ + \xa9\x01\x07\x0b\n\r\n\x05\x04\r\x02\x03\x03\x12\x04\xa9\x01\x0e\x0f\n\ + \x0c\n\x04\x04\r\x02\x04\x12\x04\xaa\x01\x02\x1b\n\r\n\x05\x04\r\x02\x04\ + \x04\x12\x04\xaa\x01\x02\n\n\r\n\x05\x04\r\x02\x04\x06\x12\x04\xaa\x01\ + \x0b\x10\n\r\n\x05\x04\r\x02\x04\x01\x12\x04\xaa\x01\x11\x16\n\r\n\x05\ + \x04\r\x02\x04\x03\x12\x04\xaa\x01\x19\x1a\n\xe8\x01\n\x02\x04\x0e\x12\ + \x06\xb1\x01\0\xd4\x01\x01\x1a\xd9\x01\x20`POST\x20/api/v1/search:`\n\ + \x20Search\x20for\x20modules\x20based\x20on\x20filter\x20params\x20provi\ + ded\x20(which\x20should\x20be\x20any\n\x20dimension\x20of\x20the\x20modu\ + le\x20schema,\x20or\x20string\x20search\x20in\x20any\x20metadata\x20valu\ + e).\n\x20Return\x20a\x20paginated\x20list\x20of\x20matching\x20modules.\ + \n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xb1\x01\x08\x1c\n>\n\x04\x04\x0e\x02\ + \0\x12\x04\xb3\x01\x02\x18\x1a0\x20ID\x20for\x20this\x20module,\x20gener\ + ated\x20by\x20the\x20database.\n\n\r\n\x05\x04\x0e\x02\0\x04\x12\x04\xb3\ + \x01\x02\n\n\r\n\x05\x04\x0e\x02\0\x05\x12\x04\xb3\x01\x0b\x10\n\r\n\x05\ + \x04\x0e\x02\0\x01\x12\x04\xb3\x01\x11\x13\n\r\n\x05\x04\x0e\x02\0\x03\ + \x12\x04\xb3\x01\x16\x17\n7\n\x04\x04\x0e\x02\x01\x12\x04\xb5\x01\x02\ + \x1b\x1a)\x20original\x20name\x20of\x20the\x20binary\x20module\x20file\n\ + \n\r\n\x05\x04\x0e\x02\x01\x04\x12\x04\xb5\x01\x02\n\n\r\n\x05\x04\x0e\ + \x02\x01\x05\x12\x04\xb5\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x01\x01\x12\ + \x04\xb5\x01\x12\x16\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xb5\x01\x19\ + \x1a\n\x82\x01\n\x04\x04\x0e\x02\x02\x12\x04\xb8\x01\x02\x1e\x1at\x20fun\ + ction\x20imports\x20called\x20by\x20the\x20module\x20(see:\n\x20)\n\n\r\n\ + \x05\x04\x0e\x02\x02\x04\x12\x04\xb8\x01\x02\n\n\r\n\x05\x04\x0e\x02\x02\ + \x06\x12\x04\xb8\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x02\x01\x12\x04\xb8\ + \x01\x12\x19\n\r\n\x05\x04\x0e\x02\x02\x03\x12\x04\xb8\x01\x1c\x1d\n\x84\ + \x01\n\x04\x04\x0e\x02\x03\x12\x04\xbb\x01\x02\x1e\x1av\x20function\x20e\ + xports\x20provided\x20by\x20the\x20module\x20(see:\n\x20)\n\n\r\n\x05\x04\ + \x0e\x02\x03\x04\x12\x04\xbb\x01\x02\n\n\r\n\x05\x04\x0e\x02\x03\x06\x12\ + \x04\xbb\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x03\x01\x12\x04\xbb\x01\x12\ + \x19\n\r\n\x05\x04\x0e\x02\x03\x03\x12\x04\xbb\x01\x1c\x1d\n3\n\x04\x04\ + \x0e\x02\x04\x12\x04\xbd\x01\x02\x1f\x1a%\x20minimum\x20size\x20in\x20by\ + tes\x20of\x20the\x20module\n\n\r\n\x05\x04\x0e\x02\x04\x04\x12\x04\xbd\ + \x01\x02\n\n\r\n\x05\x04\x0e\x02\x04\x05\x12\x04\xbd\x01\x0b\x11\n\r\n\ + \x05\x04\x0e\x02\x04\x01\x12\x04\xbd\x01\x12\x1a\n\r\n\x05\x04\x0e\x02\ + \x04\x03\x12\x04\xbd\x01\x1d\x1e\n3\n\x04\x04\x0e\x02\x05\x12\x04\xbf\ + \x01\x02\x1f\x1a%\x20maximum\x20size\x20in\x20bytes\x20of\x20the\x20modu\ + le\n\n\r\n\x05\x04\x0e\x02\x05\x04\x12\x04\xbf\x01\x02\n\n\r\n\x05\x04\ + \x0e\x02\x05\x05\x12\x04\xbf\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x05\x01\ + \x12\x04\xbf\x01\x12\x1a\n\r\n\x05\x04\x0e\x02\x05\x03\x12\x04\xbf\x01\ + \x1d\x1e\ng\n\x04\x04\x0e\x02\x06\x12\x04\xc2\x01\x02\x1f\x1aY\x20option\ + al\x20path\x20or\x20locator\x20to\x20the\x20module\x20(TODO:\x20maybe\ + \x20this\x20is\x20better\x20stored\n\x20as\x20metadata)\n\n\r\n\x05\x04\ + \x0e\x02\x06\x04\x12\x04\xc2\x01\x02\n\n\r\n\x05\x04\x0e\x02\x06\x05\x12\ + \x04\xc2\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x06\x01\x12\x04\xc2\x01\x12\ + \x1a\n\r\n\x05\x04\x0e\x02\x06\x03\x12\x04\xc2\x01\x1d\x1e\n@\n\x04\x04\ + \x0e\x02\x07\x12\x04\xc4\x01\x02.\x1a2\x20programming\x20language\x20use\ + d\x20to\x20produce\x20this\x20module\n\n\r\n\x05\x04\x0e\x02\x07\x04\x12\ + \x04\xc4\x01\x02\n\n\r\n\x05\x04\x0e\x02\x07\x06\x12\x04\xc4\x01\x0b\x19\ + \n\r\n\x05\x04\x0e\x02\x07\x01\x12\x04\xc4\x01\x1a)\n\r\n\x05\x04\x0e\ + \x02\x07\x03\x12\x04\xc4\x01,-\nJ\n\x04\x04\x0e\x02\x08\x12\x04\xc6\x01\ + \x02$\x1a<\x20arbitrary\x20metadata\x20provided\x20by\x20the\x20operator\ + \x20of\x20this\x20module\n\n\r\n\x05\x04\x0e\x02\x08\x06\x12\x04\xc6\x01\ + \x02\x15\n\r\n\x05\x04\x0e\x02\x08\x01\x12\x04\xc6\x01\x16\x1e\n\r\n\x05\ + \x04\x0e\x02\x08\x03\x12\x04\xc6\x01!#\n@\n\x04\x04\x0e\x02\t\x12\x04\ + \xc8\x01\x02:\x1a2\x20timestamp\x20when\x20this\x20module\x20was\x20load\ + ed\x20and\x20stored\n\n\r\n\x05\x04\x0e\x02\t\x04\x12\x04\xc8\x01\x02\n\ + \n\r\n\x05\x04\x0e\x02\t\x06\x12\x04\xc8\x01\x0b$\n\r\n\x05\x04\x0e\x02\ + \t\x01\x12\x04\xc8\x01%4\n\r\n\x05\x04\x0e\x02\t\x03\x12\x04\xc8\x0179\n\ + @\n\x04\x04\x0e\x02\n\x12\x04\xca\x01\x029\x1a2\x20timestamp\x20when\x20\ + this\x20module\x20was\x20loaded\x20and\x20stored\n\n\r\n\x05\x04\x0e\x02\ + \n\x04\x12\x04\xca\x01\x02\n\n\r\n\x05\x04\x0e\x02\n\x06\x12\x04\xca\x01\ + \x0b$\n\r\n\x05\x04\x0e\x02\n\x01\x12\x04\xca\x01%3\n\r\n\x05\x04\x0e\ + \x02\n\x03\x12\x04\xca\x0168\n[\n\x04\x04\x0e\x02\x0b\x12\x04\xcc\x01\ + \x02\x1f\x1aM\x20the\x20interned\x20strings\x20stored\x20in\x20the\x20wa\ + sm\x20binary\x20(panic/abort\x20messages,\x20etc.)\n\n\r\n\x05\x04\x0e\ + \x02\x0b\x04\x12\x04\xcc\x01\x02\n\n\r\n\x05\x04\x0e\x02\x0b\x05\x12\x04\ + \xcc\x01\x0b\x11\n\r\n\x05\x04\x0e\x02\x0b\x01\x12\x04\xcc\x01\x12\x19\n\ + \r\n\x05\x04\x0e\x02\x0b\x03\x12\x04\xcc\x01\x1c\x1e\nB\n\x04\x04\x0e\ + \x02\x0c\x12\x04\xce\x01\x02%\x1a4\x20match\x20on\x20any\x20function\x20\ + name\x20in\x20an\x20import\x20or\x20export.\n\n\r\n\x05\x04\x0e\x02\x0c\ + \x04\x12\x04\xce\x01\x02\n\n\r\n\x05\x04\x0e\x02\x0c\x05\x12\x04\xce\x01\ + \x0b\x11\n\r\n\x05\x04\x0e\x02\x0c\x01\x12\x04\xce\x01\x12\x1f\n\r\n\x05\ + \x04\x0e\x02\x0c\x03\x12\x04\xce\x01\"$\nO\n\x04\x04\x0e\x02\r\x12\x04\ + \xd0\x01\x02#\x1aA\x20match\x20on\x20the\x20module\x20name\x20e.g.\x20`e\ + nv`\x20or\x20`wasi_snapshot_preview1`\n\n\r\n\x05\x04\x0e\x02\r\x04\x12\ + \x04\xd0\x01\x02\n\n\r\n\x05\x04\x0e\x02\r\x05\x12\x04\xd0\x01\x0b\x11\n\ + \r\n\x05\x04\x0e\x02\r\x01\x12\x04\xd0\x01\x12\x1d\n\r\n\x05\x04\x0e\x02\ + \r\x03\x12\x04\xd0\x01\x20\"\n\x0c\n\x04\x04\x0e\x02\x0e\x12\x04\xd2\x01\ + \x02\x1d\n\r\n\x05\x04\x0e\x02\x0e\x06\x12\x04\xd2\x01\x02\x0c\n\r\n\x05\ + \x04\x0e\x02\x0e\x01\x12\x04\xd2\x01\r\x17\n\r\n\x05\x04\x0e\x02\x0e\x03\ + \x12\x04\xd2\x01\x1a\x1c\n\x0c\n\x04\x04\x0e\x02\x0f\x12\x04\xd3\x01\x02\ + \x11\n\r\n\x05\x04\x0e\x02\x0f\x06\x12\x04\xd3\x01\x02\x06\n\r\n\x05\x04\ + \x0e\x02\x0f\x01\x12\x04\xd3\x01\x07\x0b\n\r\n\x05\x04\x0e\x02\x0f\x03\ + \x12\x04\xd3\x01\x0e\x10\nM\n\x02\x04\x0f\x12\x06\xd7\x01\0\xdf\x01\x01\ + \x1a?\x20The\x20message\x20returned\x20in\x20response\x20to\x20a\x20`Sea\ + rchModulesRequest`.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xd7\x01\x08\x1d\n\ + \x0c\n\x04\x04\x0f\x02\0\x12\x04\xd8\x01\x02\x1e\n\r\n\x05\x04\x0f\x02\0\ + \x04\x12\x04\xd8\x01\x02\n\n\r\n\x05\x04\x0f\x02\0\x06\x12\x04\xd8\x01\ + \x0b\x11\n\r\n\x05\x04\x0f\x02\0\x01\x12\x04\xd8\x01\x12\x19\n\r\n\x05\ + \x04\x0f\x02\0\x03\x12\x04\xd8\x01\x1c\x1d\n\x0c\n\x04\x04\x0f\x02\x01\ + \x12\x04\xd9\x01\x02\x1c\n\r\n\x05\x04\x0f\x02\x01\x06\x12\x04\xd9\x01\ + \x02\x0c\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xd9\x01\r\x17\n\r\n\x05\ + \x04\x0f\x02\x01\x03\x12\x04\xd9\x01\x1a\x1b\ng\n\x04\x04\x0f\x02\x02\ + \x12\x04\xdc\x01\x02\x13\x1aY\x20the\x20full\x20count\x20of\x20results\ + \x20in\x20the\x20database\x20(not\x20the\x20count\x20of\x20this\x20messa\ + ge's\n\x20`modules`).\n\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xdc\x01\ + \x02\x08\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xdc\x01\t\x0e\n\r\n\x05\ + \x04\x0f\x02\x02\x03\x12\x04\xdc\x01\x11\x12\n\x0c\n\x04\x04\x0f\x02\x03\ + \x12\x04\xdd\x01\x02\x10\n\r\n\x05\x04\x0f\x02\x03\x06\x12\x04\xdd\x01\ + \x02\x06\n\r\n\x05\x04\x0f\x02\x03\x01\x12\x04\xdd\x01\x07\x0b\n\r\n\x05\ + \x04\x0f\x02\x03\x03\x12\x04\xdd\x01\x0e\x0f\n\x0c\n\x04\x04\x0f\x02\x04\ + \x12\x04\xde\x01\x02\x1b\n\r\n\x05\x04\x0f\x02\x04\x04\x12\x04\xde\x01\ + \x02\n\n\r\n\x05\x04\x0f\x02\x04\x06\x12\x04\xde\x01\x0b\x10\n\r\n\x05\ + \x04\x0f\x02\x04\x01\x12\x04\xde\x01\x11\x16\n\r\n\x05\x04\x0f\x02\x04\ + \x03\x12\x04\xde\x01\x19\x1a\nt\n\x02\x04\x10\x12\x04\xe3\x01\0?\x1ah\ + \x20`DELETE\x20/api/v1/module:`\n\x20Remove\x20a\x20module\x20from\x20th\ + e\x20database\x20by\x20its\x20ID.\x20Return\x20the\x20module\x20IDs\x20&\ + \x20hashes.\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xe3\x01\x08\x1c\n\x0c\n\ + \x04\x04\x10\x02\0\x12\x04\xe3\x01\x1f=\n\r\n\x05\x04\x10\x02\0\x04\x12\ + \x04\xe3\x01\x1f'\n\r\n\x05\x04\x10\x02\0\x05\x12\x04\xe3\x01(-\n\r\n\ + \x05\x04\x10\x02\0\x01\x12\x04\xe3\x01.8\n\r\n\x05\x04\x10\x02\0\x03\x12\ + \x04\xe3\x01;<\nM\n\x02\x04\x11\x12\x06\xe6\x01\0\xe9\x01\x01\x1a?\x20Th\ + e\x20message\x20returned\x20in\x20response\x20to\x20a\x20`DeleteModulesR\ + equest`.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xe6\x01\x08\x1d\n\x0c\n\x04\ + \x04\x11\x02\0\x12\x04\xe7\x01\x02(\n\r\n\x05\x04\x11\x02\0\x06\x12\x04\ + \xe7\x01\x02\x14\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xe7\x01\x15#\n\r\n\ + \x05\x04\x11\x02\0\x03\x12\x04\xe7\x01&'\n\x0c\n\x04\x04\x11\x02\x01\x12\ + \x04\xe8\x01\x02\x1b\n\r\n\x05\x04\x11\x02\x01\x04\x12\x04\xe8\x01\x02\n\ + \n\r\n\x05\x04\x11\x02\x01\x06\x12\x04\xe8\x01\x0b\x10\n\r\n\x05\x04\x11\ + \x02\x01\x01\x12\x04\xe8\x01\x11\x16\n\r\n\x05\x04\x11\x02\x01\x03\x12\ + \x04\xe8\x01\x19\x1a\n\xfc\x01\n\x02\x05\x04\x12\x06\xee\x01\0\xf1\x01\ + \x01\x1a\xed\x01\x20Represents\x20the\x20expected\x20outcome\x20of\x20an\ + \x20AuditModulesRequest.\x20If\x20PASS\x20is\x20provided,\x20then\n\x20t\ + he\x20audit\x20returns\x20modules\x20which\x20conform\x20to\x20the\x20ch\ + eckfile.\x20If\x20FAIL\x20is\x20provided,\x20then\n\x20the\x20audit\x20r\ + eturns\x20modules\x20which\x20do\x20not\x20conform\x20to\x20the\x20check\ + file.\n\n\x0b\n\x03\x05\x04\x01\x12\x04\xee\x01\x05\x11\n\x0c\n\x04\x05\ + \x04\x02\0\x12\x04\xef\x01\x02\x0b\n\r\n\x05\x05\x04\x02\0\x01\x12\x04\ + \xef\x01\x02\x06\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xef\x01\t\n\n\x0c\n\ + \x04\x05\x04\x02\x01\x12\x04\xf0\x01\x02\x0b\n\r\n\x05\x05\x04\x02\x01\ + \x01\x12\x04\xf0\x01\x02\x06\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\xf0\ + \x01\t\n\n\x82\x01\n\x02\x04\x12\x12\x06\xf5\x01\0\xfa\x01\x01\x1at\x20`\ + POST\x20/api/v1/audit:`\n\x20Return\x20a\x20list\x20of\x20modules\x20whi\ + ch\x20match\x20the\x20outcome\x20requirements\x20using\x20the\x20provide\ + d\x20checkfile.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xf5\x01\x08\x1b\n8\n\ + \x04\x04\x12\x02\0\x12\x04\xf7\x01\x02\x16\x1a*\x20the\x20YAML\x20checkf\ + ile\x20(e.g.\x20mod.yaml)\x20bytes\n\n\r\n\x05\x04\x12\x02\0\x05\x12\x04\ + \xf7\x01\x02\x07\n\r\n\x05\x04\x12\x02\0\x01\x12\x04\xf7\x01\x08\x11\n\r\ + \n\x05\x04\x12\x02\0\x03\x12\x04\xf7\x01\x14\x15\n\x0c\n\x04\x04\x12\x02\ + \x01\x12\x04\xf8\x01\x02\x1b\n\r\n\x05\x04\x12\x02\x01\x06\x12\x04\xf8\ + \x01\x02\x0e\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xf8\x01\x0f\x16\n\r\n\ + \x05\x04\x12\x02\x01\x03\x12\x04\xf8\x01\x19\x1a\n\x0c\n\x04\x04\x12\x02\ + \x02\x12\x04\xf9\x01\x02\x1c\n\r\n\x05\x04\x12\x02\x02\x06\x12\x04\xf9\ + \x01\x02\x0c\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\xf9\x01\r\x17\n\r\n\ + \x05\x04\x12\x02\x02\x03\x12\x04\xf9\x01\x1a\x1b\nL\n\x02\x04\x13\x12\ + \x06\xfd\x01\0\x86\x02\x01\x1a>\x20The\x20message\x20returned\x20in\x20r\ + esponse\x20to\x20a\x20`AuditModulesRequest`.\n\n\x0b\n\x03\x04\x13\x01\ + \x12\x04\xfd\x01\x08\x1c\n\xad\x01\n\x04\x04\x13\x02\0\x12\x04\x80\x02\ + \x02.\x1a\x9e\x01\x20each\x20record\x20contains\x20the\x20ID\x20of\x20th\ + e\x20invalid\x20Module\x20which\x20failed\x20the\x20audit,\x20as\x20well\ + \x20as\x20the\x20failure\x20\n\x20report\x20produced\x20by\x20the\x20val\ + idation\x20check\x20(encoded\x20in\x20JSON)\n\n\r\n\x05\x04\x13\x02\0\ + \x06\x12\x04\x80\x02\x02\x13\n\r\n\x05\x04\x13\x02\0\x01\x12\x04\x80\x02\ + \x14)\n\r\n\x05\x04\x13\x02\0\x03\x12\x04\x80\x02,-\n\x0c\n\x04\x04\x13\ + \x02\x01\x12\x04\x81\x02\x02\x1c\n\r\n\x05\x04\x13\x02\x01\x06\x12\x04\ + \x81\x02\x02\x0c\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x81\x02\r\x17\n\r\ + \n\x05\x04\x13\x02\x01\x03\x12\x04\x81\x02\x1a\x1b\ng\n\x04\x04\x13\x02\ + \x02\x12\x04\x84\x02\x02\x13\x1aY\x20the\x20full\x20count\x20of\x20resul\ + ts\x20in\x20the\x20database\x20(not\x20the\x20count\x20of\x20this\x20mes\ + sage's\n\x20`modules`).\n\n\r\n\x05\x04\x13\x02\x02\x05\x12\x04\x84\x02\ + \x02\x08\n\r\n\x05\x04\x13\x02\x02\x01\x12\x04\x84\x02\t\x0e\n\r\n\x05\ + \x04\x13\x02\x02\x03\x12\x04\x84\x02\x11\x12\n\x0c\n\x04\x04\x13\x02\x03\ + \x12\x04\x85\x02\x02\x1b\n\r\n\x05\x04\x13\x02\x03\x04\x12\x04\x85\x02\ + \x02\n\n\r\n\x05\x04\x13\x02\x03\x06\x12\x04\x85\x02\x0b\x10\n\r\n\x05\ + \x04\x13\x02\x03\x01\x12\x04\x85\x02\x11\x16\n\r\n\x05\x04\x13\x02\x03\ + \x03\x12\x04\x85\x02\x19\x1a\nD\n\x02\x04\x14\x12\x06\x8a\x02\0\x8f\x02\ + \x01\x1a6\x20`POST\x20/api/v1/diff:`\n\x20Return\x20the\x20diff\x20of\ + \x20two\x20modules\n\n\x0b\n\x03\x04\x14\x01\x12\x04\x8a\x02\x08\x13\n\ + \x0c\n\x04\x04\x14\x02\0\x12\x04\x8b\x02\x02\x14\n\r\n\x05\x04\x14\x02\0\ + \x05\x12\x04\x8b\x02\x02\x07\n\r\n\x05\x04\x14\x02\0\x01\x12\x04\x8b\x02\ + \x08\x0f\n\r\n\x05\x04\x14\x02\0\x03\x12\x04\x8b\x02\x12\x13\n\x0c\n\x04\ + \x04\x14\x02\x01\x12\x04\x8c\x02\x02\x14\n\r\n\x05\x04\x14\x02\x01\x05\ + \x12\x04\x8c\x02\x02\x07\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\x8c\x02\ + \x08\x0f\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\x8c\x02\x12\x13\n\x0c\n\ + \x04\x04\x14\x02\x02\x12\x04\x8d\x02\x02\x1a\n\r\n\x05\x04\x14\x02\x02\ + \x05\x12\x04\x8d\x02\x02\x06\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\x8d\ + \x02\x07\x15\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\x8d\x02\x18\x19\n\x0c\ + \n\x04\x04\x14\x02\x03\x12\x04\x8e\x02\x02\x18\n\r\n\x05\x04\x14\x02\x03\ + \x05\x12\x04\x8e\x02\x02\x06\n\r\n\x05\x04\x14\x02\x03\x01\x12\x04\x8e\ + \x02\x07\x13\n\r\n\x05\x04\x14\x02\x03\x03\x12\x04\x8e\x02\x16\x17\n\x98\ + \x01\n\x02\x04\x15\x12\x06\x93\x02\0\x96\x02\x01\x1a\x89\x01\x20The\x20m\ + essage\x20returned\x20in\x20response\x20to\x20`DiffRequest`,\x20contains\ + \x20a\x20text\x20representation\x20of\x20the\x20difference\n\x20between\ + \x20the\x20two\x20specified\x20modules.\n\n\x0b\n\x03\x04\x15\x01\x12\ + \x04\x93\x02\x08\x14\n\x0c\n\x04\x04\x15\x02\0\x12\x04\x94\x02\x02\x12\n\ + \r\n\x05\x04\x15\x02\0\x05\x12\x04\x94\x02\x02\x08\n\r\n\x05\x04\x15\x02\ + \0\x01\x12\x04\x94\x02\t\r\n\r\n\x05\x04\x15\x02\0\x03\x12\x04\x94\x02\ + \x10\x11\n\x0c\n\x04\x04\x15\x02\x01\x12\x04\x95\x02\x02\x1b\n\r\n\x05\ + \x04\x15\x02\x01\x04\x12\x04\x95\x02\x02\n\n\r\n\x05\x04\x15\x02\x01\x06\ + \x12\x04\x95\x02\x0b\x10\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\x95\x02\ + \x11\x16\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\x95\x02\x19\x1a\n\x8a\x01\ + \n\x02\x04\x16\x12\x06\x9a\x02\0\xa3\x02\x01\x1a|\x20`POST\x20/api/v1/va\ + lidate:`\n\x20Return\x20the\x20failure\x20report\x20(if\x20applicable)\ + \x20of\x20a\x20wasm\x20module\x20validation\x20against\x20a\x20given\x20\ + checkfile.\n\n\x0b\n\x03\x04\x16\x01\x12\x04\x9a\x02\x08\x1d\n8\n\x04\ + \x04\x16\x02\0\x12\x04\x9c\x02\x02\x16\x1a*\x20the\x20YAML\x20checkfile\ + \x20(e.g.\x20mod.yaml)\x20bytes\n\n\r\n\x05\x04\x16\x02\0\x05\x12\x04\ + \x9c\x02\x02\x07\n\r\n\x05\x04\x16\x02\0\x01\x12\x04\x9c\x02\x08\x11\n\r\ + \n\x05\x04\x16\x02\0\x03\x12\x04\x9c\x02\x14\x15\n\xb8\x01\n\x04\x04\x16\ + \x08\0\x12\x06\x9f\x02\x02\xa2\x02\x03\x1a\xa7\x01\x20module_input\x20is\ + \x20either\x20an\x20existing\x20`module_id`\x20that\x20is\x20known\x20to\ + \x20the\x20database,\x20or\x20the\x20bytes\x20of\n\x20a\x20raw\x20wasm\ + \x20module.\x20It\x20is\x20used\x20to\x20validate\x20against\x20the\x20g\ + iven\x20checkfile.\n\n\r\n\x05\x04\x16\x08\0\x01\x12\x04\x9f\x02\x08\x14\ + \n\x0c\n\x04\x04\x16\x02\x01\x12\x04\xa0\x02\x04\x15\n\r\n\x05\x04\x16\ + \x02\x01\x05\x12\x04\xa0\x02\x04\t\n\r\n\x05\x04\x16\x02\x01\x01\x12\x04\ + \xa0\x02\n\x10\n\r\n\x05\x04\x16\x02\x01\x03\x12\x04\xa0\x02\x13\x14\n\ + \x0c\n\x04\x04\x16\x02\x02\x12\x04\xa1\x02\x04\x18\n\r\n\x05\x04\x16\x02\ + \x02\x05\x12\x04\xa1\x02\x04\t\n\r\n\x05\x04\x16\x02\x02\x01\x12\x04\xa1\ + \x02\n\x13\n\r\n\x05\x04\x16\x02\x02\x03\x12\x04\xa1\x02\x16\x17\nV\n\ + \x02\x04\x17\x12\x06\xa6\x02\0\xa9\x02\x01\x1aH\x20The\x20failure\x20rep\ + ort\x20produced\x20by\x20the\x20validation\x20check\x20(encoded\x20in\ + \x20JSON).\n\n\x0b\n\x03\x04\x17\x01\x12\x04\xa6\x02\x08\x1e\n\x0c\n\x04\ + \x04\x17\x02\0\x12\x04\xa7\x02\x02\"\n\r\n\x05\x04\x17\x02\0\x05\x12\x04\ + \xa7\x02\x02\x07\n\r\n\x05\x04\x17\x02\0\x01\x12\x04\xa7\x02\x08\x1d\n\r\ + \n\x05\x04\x17\x02\0\x03\x12\x04\xa7\x02\x20!\n\x0c\n\x04\x04\x17\x02\ + \x01\x12\x04\xa8\x02\x02\x1b\n\r\n\x05\x04\x17\x02\x01\x04\x12\x04\xa8\ + \x02\x02\n\n\r\n\x05\x04\x17\x02\x01\x06\x12\x04\xa8\x02\x0b\x10\n\r\n\ + \x05\x04\x17\x02\x01\x01\x12\x04\xa8\x02\x11\x16\n\r\n\x05\x04\x17\x02\ + \x01\x03\x12\x04\xa8\x02\x19\x1a\nI\n\x02\x04\x18\x12\x04\xad\x02\06\x1a\ + =\x20`POST\x20/api/v1/module_graph:`\n\x20Return\x20a\x20single\x20modul\ + e_graph.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xad\x02\x08\x1d\n\x0c\n\x04\ + \x04\x18\x02\0\x12\x04\xad\x02\x204\n\r\n\x05\x04\x18\x02\0\x05\x12\x04\ + \xad\x02\x20%\n\r\n\x05\x04\x18\x02\0\x01\x12\x04\xad\x02&/\n\r\n\x05\ + \x04\x18\x02\0\x03\x12\x04\xad\x0223\nN\n\x02\x04\x19\x12\x06\xb0\x02\0\ + \xb3\x02\x01\x1a@\x20The\x20message\x20returned\x20in\x20response\x20to\ + \x20a\x20`GetModuleGraphRequest`.\n\n\x0b\n\x03\x04\x19\x01\x12\x04\xb0\ + \x02\x08\x1e\n\x0c\n\x04\x04\x19\x02\0\x12\x04\xb1\x02\x02\x1f\n\r\n\x05\ + \x04\x19\x02\0\x06\x12\x04\xb1\x02\x02\r\n\r\n\x05\x04\x19\x02\0\x01\x12\ + \x04\xb1\x02\x0e\x1a\n\r\n\x05\x04\x19\x02\0\x03\x12\x04\xb1\x02\x1d\x1e\ + \n\x0c\n\x04\x04\x19\x02\x01\x12\x04\xb2\x02\x02\x1b\n\r\n\x05\x04\x19\ + \x02\x01\x04\x12\x04\xb2\x02\x02\n\n\r\n\x05\x04\x19\x02\x01\x06\x12\x04\ + \xb2\x02\x0b\x10\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xb2\x02\x11\x16\n\ + \r\n\x05\x04\x19\x02\x01\x03\x12\x04\xb2\x02\x19\x1a\n#\n\x02\x04\x1a\ + \x12\x06\xb6\x02\0\xbc\x02\x01\x1a\x15\x20PUT\x20/api/v1/plugin:\n\n\x0b\ + \n\x03\x04\x1a\x01\x12\x04\xb6\x02\x08\x1c\n\x0c\n\x04\x04\x1a\x02\0\x12\ + \x04\xb7\x02\x02\x18\n\r\n\x05\x04\x1a\x02\0\x05\x12\x04\xb7\x02\x02\x08\ + \n\r\n\x05\x04\x1a\x02\0\x01\x12\x04\xb7\x02\t\x13\n\r\n\x05\x04\x1a\x02\ + \0\x03\x12\x04\xb7\x02\x16\x17\n\x0c\n\x04\x04\x1a\x02\x01\x12\x04\xb8\ + \x02\x02\x1b\n\r\n\x05\x04\x1a\x02\x01\x04\x12\x04\xb8\x02\x02\n\n\r\n\ + \x05\x04\x1a\x02\x01\x05\x12\x04\xb8\x02\x0b\x11\n\r\n\x05\x04\x1a\x02\ + \x01\x01\x12\x04\xb8\x02\x12\x16\n\r\n\x05\x04\x1a\x02\x01\x03\x12\x04\ + \xb8\x02\x19\x1a\n\x0c\n\x04\x04\x1a\x02\x02\x12\x04\xb9\x02\x02\x16\n\r\ + \n\x05\x04\x1a\x02\x02\x05\x12\x04\xb9\x02\x02\x08\n\r\n\x05\x04\x1a\x02\ + \x02\x01\x12\x04\xb9\x02\t\x11\n\r\n\x05\x04\x1a\x02\x02\x03\x12\x04\xb9\ + \x02\x14\x15\n!\n\x04\x04\x1a\x02\x03\x12\x04\xba\x02\x02\x11\"\x13\x20b\ + ytes\x20config\x20=\x205;\n\n\r\n\x05\x04\x1a\x02\x03\x05\x12\x04\xba\ + \x02\x02\x07\n\r\n\x05\x04\x1a\x02\x03\x01\x12\x04\xba\x02\x08\x0c\n\r\n\ + \x05\x04\x1a\x02\x03\x03\x12\x04\xba\x02\x0f\x10\n\x0c\n\x02\x04\x1b\x12\ + \x06\xbe\x02\0\xc1\x02\x01\n\x0b\n\x03\x04\x1b\x01\x12\x04\xbe\x02\x08\ + \x1d\n\x0c\n\x04\x04\x1b\x02\0\x12\x04\xbf\x02\x02\x12\n\r\n\x05\x04\x1b\ + \x02\0\x05\x12\x04\xbf\x02\x02\x08\n\r\n\x05\x04\x1b\x02\0\x01\x12\x04\ + \xbf\x02\t\r\n\r\n\x05\x04\x1b\x02\0\x03\x12\x04\xbf\x02\x10\x11\n\x0c\n\ + \x04\x04\x1b\x02\x01\x12\x04\xc0\x02\x02\x1b\n\r\n\x05\x04\x1b\x02\x01\ + \x04\x12\x04\xc0\x02\x02\n\n\r\n\x05\x04\x1b\x02\x01\x06\x12\x04\xc0\x02\ + \x0b\x10\n\r\n\x05\x04\x1b\x02\x01\x01\x12\x04\xc0\x02\x11\x16\n\r\n\x05\ + \x04\x1b\x02\x01\x03\x12\x04\xc0\x02\x19\x1a\n&\n\x02\x04\x1c\x12\x06\ + \xc4\x02\0\xc6\x02\x01\x1a\x18\x20DELETE\x20/api/v1/plugin:\n\n\x0b\n\ + \x03\x04\x1c\x01\x12\x04\xc4\x02\x08\x1e\n\x0c\n\x04\x04\x1c\x02\0\x12\ + \x04\xc5\x02\x02\x18\n\r\n\x05\x04\x1c\x02\0\x05\x12\x04\xc5\x02\x02\x08\ + \n\r\n\x05\x04\x1c\x02\0\x01\x12\x04\xc5\x02\t\x13\n\r\n\x05\x04\x1c\x02\ + \0\x03\x12\x04\xc5\x02\x16\x17\n\x0c\n\x02\x04\x1d\x12\x06\xc8\x02\0\xca\ + \x02\x01\n\x0b\n\x03\x04\x1d\x01\x12\x04\xc8\x02\x08\x1f\n\x0c\n\x04\x04\ + \x1d\x02\0\x12\x04\xc9\x02\x02\x1b\n\r\n\x05\x04\x1d\x02\0\x04\x12\x04\ + \xc9\x02\x02\n\n\r\n\x05\x04\x1d\x02\0\x06\x12\x04\xc9\x02\x0b\x10\n\r\n\ + \x05\x04\x1d\x02\0\x01\x12\x04\xc9\x02\x11\x16\n\r\n\x05\x04\x1d\x02\0\ + \x03\x12\x04\xc9\x02\x19\x1a\n$\n\x02\x04\x1e\x12\x06\xcd\x02\0\xd3\x02\ + \x01\x1a\x16\x20POST\x20/api/v1/plugin:\n\n\x0b\n\x03\x04\x1e\x01\x12\ + \x04\xcd\x02\x08\x19\n\x0c\n\x04\x04\x1e\x02\0\x12\x04\xce\x02\x02\x18\n\ + \r\n\x05\x04\x1e\x02\0\x05\x12\x04\xce\x02\x02\x08\n\r\n\x05\x04\x1e\x02\ + \0\x01\x12\x04\xce\x02\t\x13\n\r\n\x05\x04\x1e\x02\0\x03\x12\x04\xce\x02\ + \x16\x17\n\x0c\n\x04\x04\x1e\x02\x01\x12\x04\xcf\x02\x02\x1b\n\r\n\x05\ + \x04\x1e\x02\x01\x05\x12\x04\xcf\x02\x02\x08\n\r\n\x05\x04\x1e\x02\x01\ + \x01\x12\x04\xcf\x02\t\x16\n\r\n\x05\x04\x1e\x02\x01\x03\x12\x04\xcf\x02\ + \x19\x1a\n\x0c\n\x04\x04\x1e\x02\x02\x12\x04\xd0\x02\x02\x12\n\r\n\x05\ + \x04\x1e\x02\x02\x05\x12\x04\xd0\x02\x02\x07\n\r\n\x05\x04\x1e\x02\x02\ + \x01\x12\x04\xd0\x02\x08\r\n\r\n\x05\x04\x1e\x02\x02\x03\x12\x04\xd0\x02\ + \x10\x11\n!\n\x04\x04\x1e\x02\x03\x12\x04\xd1\x02\x02\x1b\"\x13\x20bytes\ + \x20config\x20=\x205;\n\n\r\n\x05\x04\x1e\x02\x03\x04\x12\x04\xd1\x02\ + \x02\n\n\r\n\x05\x04\x1e\x02\x03\x05\x12\x04\xd1\x02\x0b\x11\n\r\n\x05\ + \x04\x1e\x02\x03\x01\x12\x04\xd1\x02\x12\x16\n\r\n\x05\x04\x1e\x02\x03\ + \x03\x12\x04\xd1\x02\x19\x1a\n\x0c\n\x02\x04\x1f\x12\x06\xd5\x02\0\xd8\ + \x02\x01\n\x0b\n\x03\x04\x1f\x01\x12\x04\xd5\x02\x08\x1a\n\x0c\n\x04\x04\ + \x1f\x02\0\x12\x04\xd6\x02\x02\x13\n\r\n\x05\x04\x1f\x02\0\x05\x12\x04\ + \xd6\x02\x02\x07\n\r\n\x05\x04\x1f\x02\0\x01\x12\x04\xd6\x02\x08\x0e\n\r\ + \n\x05\x04\x1f\x02\0\x03\x12\x04\xd6\x02\x11\x12\n\x0c\n\x04\x04\x1f\x02\ + \x01\x12\x04\xd7\x02\x02\x1b\n\r\n\x05\x04\x1f\x02\x01\x04\x12\x04\xd7\ + \x02\x02\n\n\r\n\x05\x04\x1f\x02\x01\x06\x12\x04\xd7\x02\x0b\x10\n\r\n\ + \x05\x04\x1f\x02\x01\x01\x12\x04\xd7\x02\x11\x16\n\r\n\x05\x04\x1f\x02\ + \x01\x03\x12\x04\xd7\x02\x19\x1ab\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file