diff --git a/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go b/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go index 263c288458..c08377488c 100644 --- a/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go +++ b/backend/protos/xyz/block/ftl/schema/v1/schema.pb.go @@ -1753,6 +1753,7 @@ type Metadata struct { // Types that are assignable to Value: // // *Metadata_Alias + // *Metadata_Artefact // *Metadata_Calls // *Metadata_Config // *Metadata_CronJob @@ -1812,6 +1813,13 @@ func (x *Metadata) GetAlias() *MetadataAlias { return nil } +func (x *Metadata) GetArtefact() *MetadataArtefact { + if x, ok := x.GetValue().(*Metadata_Artefact); ok { + return x.Artefact + } + return nil +} + func (x *Metadata) GetCalls() *MetadataCalls { if x, ok := x.GetValue().(*Metadata_Calls); ok { return x.Calls @@ -1904,6 +1912,10 @@ type Metadata_Alias struct { Alias *MetadataAlias `protobuf:"bytes,5,opt,name=alias,proto3,oneof"` } +type Metadata_Artefact struct { + Artefact *MetadataArtefact `protobuf:"bytes,14,opt,name=artefact,proto3,oneof"` +} + type Metadata_Calls struct { Calls *MetadataCalls `protobuf:"bytes,1,opt,name=calls,proto3,oneof"` } @@ -1954,6 +1966,8 @@ type Metadata_TypeMap struct { func (*Metadata_Alias) isMetadata_Value() {} +func (*Metadata_Artefact) isMetadata_Value() {} + func (*Metadata_Calls) isMetadata_Value() {} func (*Metadata_Config) isMetadata_Value() {} @@ -2039,6 +2053,75 @@ func (x *MetadataAlias) GetAlias() string { return "" } +type MetadataArtefact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pos *Position `protobuf:"bytes,1,opt,name=pos,proto3,oneof" json:"pos,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Digest string `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` + Executable bool `protobuf:"varint,4,opt,name=executable,proto3" json:"executable,omitempty"` +} + +func (x *MetadataArtefact) Reset() { + *x = MetadataArtefact{} + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MetadataArtefact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetadataArtefact) ProtoMessage() {} + +func (x *MetadataArtefact) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetadataArtefact.ProtoReflect.Descriptor instead. +func (*MetadataArtefact) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{27} +} + +func (x *MetadataArtefact) GetPos() *Position { + if x != nil { + return x.Pos + } + return nil +} + +func (x *MetadataArtefact) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *MetadataArtefact) GetDigest() string { + if x != nil { + return x.Digest + } + return "" +} + +func (x *MetadataArtefact) GetExecutable() bool { + if x != nil { + return x.Executable + } + return false +} + type MetadataCalls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2050,7 +2133,7 @@ type MetadataCalls struct { func (x *MetadataCalls) Reset() { *x = MetadataCalls{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2062,7 +2145,7 @@ func (x *MetadataCalls) String() string { func (*MetadataCalls) ProtoMessage() {} func (x *MetadataCalls) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[27] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2075,7 +2158,7 @@ func (x *MetadataCalls) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataCalls.ProtoReflect.Descriptor instead. func (*MetadataCalls) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{27} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{28} } func (x *MetadataCalls) GetPos() *Position { @@ -2103,7 +2186,7 @@ type MetadataConfig struct { func (x *MetadataConfig) Reset() { *x = MetadataConfig{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2115,7 +2198,7 @@ func (x *MetadataConfig) String() string { func (*MetadataConfig) ProtoMessage() {} func (x *MetadataConfig) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[28] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2128,7 +2211,7 @@ func (x *MetadataConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataConfig.ProtoReflect.Descriptor instead. func (*MetadataConfig) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{28} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{29} } func (x *MetadataConfig) GetPos() *Position { @@ -2156,7 +2239,7 @@ type MetadataCronJob struct { func (x *MetadataCronJob) Reset() { *x = MetadataCronJob{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2168,7 +2251,7 @@ func (x *MetadataCronJob) String() string { func (*MetadataCronJob) ProtoMessage() {} func (x *MetadataCronJob) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[29] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2181,7 +2264,7 @@ func (x *MetadataCronJob) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataCronJob.ProtoReflect.Descriptor instead. func (*MetadataCronJob) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{29} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{30} } func (x *MetadataCronJob) GetPos() *Position { @@ -2209,7 +2292,7 @@ type MetadataDatabases struct { func (x *MetadataDatabases) Reset() { *x = MetadataDatabases{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2221,7 +2304,7 @@ func (x *MetadataDatabases) String() string { func (*MetadataDatabases) ProtoMessage() {} func (x *MetadataDatabases) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[30] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2234,7 +2317,7 @@ func (x *MetadataDatabases) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataDatabases.ProtoReflect.Descriptor instead. func (*MetadataDatabases) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{30} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{31} } func (x *MetadataDatabases) GetPos() *Position { @@ -2263,7 +2346,7 @@ type MetadataEncoding struct { func (x *MetadataEncoding) Reset() { *x = MetadataEncoding{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2275,7 +2358,7 @@ func (x *MetadataEncoding) String() string { func (*MetadataEncoding) ProtoMessage() {} func (x *MetadataEncoding) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[31] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2288,7 +2371,7 @@ func (x *MetadataEncoding) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataEncoding.ProtoReflect.Descriptor instead. func (*MetadataEncoding) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{31} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{32} } func (x *MetadataEncoding) GetPos() *Position { @@ -2325,7 +2408,7 @@ type MetadataIngress struct { func (x *MetadataIngress) Reset() { *x = MetadataIngress{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2337,7 +2420,7 @@ func (x *MetadataIngress) String() string { func (*MetadataIngress) ProtoMessage() {} func (x *MetadataIngress) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[32] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2350,7 +2433,7 @@ func (x *MetadataIngress) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataIngress.ProtoReflect.Descriptor instead. func (*MetadataIngress) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{32} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{33} } func (x *MetadataIngress) GetPos() *Position { @@ -2392,7 +2475,7 @@ type MetadataPublisher struct { func (x *MetadataPublisher) Reset() { *x = MetadataPublisher{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2404,7 +2487,7 @@ func (x *MetadataPublisher) String() string { func (*MetadataPublisher) ProtoMessage() {} func (x *MetadataPublisher) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[33] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2417,7 +2500,7 @@ func (x *MetadataPublisher) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataPublisher.ProtoReflect.Descriptor instead. func (*MetadataPublisher) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{33} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{34} } func (x *MetadataPublisher) GetPos() *Position { @@ -2448,7 +2531,7 @@ type MetadataRetry struct { func (x *MetadataRetry) Reset() { *x = MetadataRetry{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2460,7 +2543,7 @@ func (x *MetadataRetry) String() string { func (*MetadataRetry) ProtoMessage() {} func (x *MetadataRetry) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[34] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2473,7 +2556,7 @@ func (x *MetadataRetry) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataRetry.ProtoReflect.Descriptor instead. func (*MetadataRetry) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{34} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{35} } func (x *MetadataRetry) GetPos() *Position { @@ -2522,7 +2605,7 @@ type MetadataSQLMigration struct { func (x *MetadataSQLMigration) Reset() { *x = MetadataSQLMigration{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2534,7 +2617,7 @@ func (x *MetadataSQLMigration) String() string { func (*MetadataSQLMigration) ProtoMessage() {} func (x *MetadataSQLMigration) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[35] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2547,7 +2630,7 @@ func (x *MetadataSQLMigration) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSQLMigration.ProtoReflect.Descriptor instead. func (*MetadataSQLMigration) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{35} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{36} } func (x *MetadataSQLMigration) GetPos() *Position { @@ -2575,7 +2658,7 @@ type MetadataSecrets struct { func (x *MetadataSecrets) Reset() { *x = MetadataSecrets{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2587,7 +2670,7 @@ func (x *MetadataSecrets) String() string { func (*MetadataSecrets) ProtoMessage() {} func (x *MetadataSecrets) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[36] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2600,7 +2683,7 @@ func (x *MetadataSecrets) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSecrets.ProtoReflect.Descriptor instead. func (*MetadataSecrets) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{36} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{37} } func (x *MetadataSecrets) GetPos() *Position { @@ -2630,7 +2713,7 @@ type MetadataSubscriber struct { func (x *MetadataSubscriber) Reset() { *x = MetadataSubscriber{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2642,7 +2725,7 @@ func (x *MetadataSubscriber) String() string { func (*MetadataSubscriber) ProtoMessage() {} func (x *MetadataSubscriber) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[37] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2655,7 +2738,7 @@ func (x *MetadataSubscriber) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataSubscriber.ProtoReflect.Descriptor instead. func (*MetadataSubscriber) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{37} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{38} } func (x *MetadataSubscriber) GetPos() *Position { @@ -2698,7 +2781,7 @@ type MetadataTypeMap struct { func (x *MetadataTypeMap) Reset() { *x = MetadataTypeMap{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2710,7 +2793,7 @@ func (x *MetadataTypeMap) String() string { func (*MetadataTypeMap) ProtoMessage() {} func (x *MetadataTypeMap) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[38] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2723,7 +2806,7 @@ func (x *MetadataTypeMap) ProtoReflect() protoreflect.Message { // Deprecated: Use MetadataTypeMap.ProtoReflect.Descriptor instead. func (*MetadataTypeMap) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{38} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{39} } func (x *MetadataTypeMap) GetPos() *Position { @@ -2756,13 +2839,14 @@ type Module struct { Comments []string `protobuf:"bytes,2,rep,name=comments,proto3" json:"comments,omitempty"` Builtin bool `protobuf:"varint,3,opt,name=builtin,proto3" json:"builtin,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Metadata []*Metadata `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty"` Decls []*Decl `protobuf:"bytes,5,rep,name=decls,proto3" json:"decls,omitempty"` Runtime *ModuleRuntime `protobuf:"bytes,31634,opt,name=runtime,proto3" json:"runtime,omitempty"` } func (x *Module) Reset() { *x = Module{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2774,7 +2858,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2787,7 +2871,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{39} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{40} } func (x *Module) GetPos() *Position { @@ -2818,6 +2902,13 @@ func (x *Module) GetName() string { return "" } +func (x *Module) GetMetadata() []*Metadata { + if x != nil { + return x.Metadata + } + return nil +} + func (x *Module) GetDecls() []*Decl { if x != nil { return x.Decls @@ -2844,7 +2935,7 @@ type ModuleRuntime struct { func (x *ModuleRuntime) Reset() { *x = ModuleRuntime{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2856,7 +2947,7 @@ func (x *ModuleRuntime) String() string { func (*ModuleRuntime) ProtoMessage() {} func (x *ModuleRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2869,7 +2960,7 @@ func (x *ModuleRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntime.ProtoReflect.Descriptor instead. func (*ModuleRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{40} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{41} } func (x *ModuleRuntime) GetBase() *ModuleRuntimeBase { @@ -2907,7 +2998,7 @@ type ModuleRuntimeBase struct { func (x *ModuleRuntimeBase) Reset() { *x = ModuleRuntimeBase{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2919,7 +3010,7 @@ func (x *ModuleRuntimeBase) String() string { func (*ModuleRuntimeBase) ProtoMessage() {} func (x *ModuleRuntimeBase) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2932,7 +3023,7 @@ func (x *ModuleRuntimeBase) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntimeBase.ProtoReflect.Descriptor instead. func (*ModuleRuntimeBase) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{41} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{42} } func (x *ModuleRuntimeBase) GetCreateTime() *timestamppb.Timestamp { @@ -2981,7 +3072,7 @@ type ModuleRuntimeDeployment struct { func (x *ModuleRuntimeDeployment) Reset() { *x = ModuleRuntimeDeployment{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2993,7 +3084,7 @@ func (x *ModuleRuntimeDeployment) String() string { func (*ModuleRuntimeDeployment) ProtoMessage() {} func (x *ModuleRuntimeDeployment) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3006,7 +3097,7 @@ func (x *ModuleRuntimeDeployment) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntimeDeployment.ProtoReflect.Descriptor instead. func (*ModuleRuntimeDeployment) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{42} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{43} } func (x *ModuleRuntimeDeployment) GetEndpoint() string { @@ -3038,7 +3129,7 @@ type ModuleRuntimeEvent struct { func (x *ModuleRuntimeEvent) Reset() { *x = ModuleRuntimeEvent{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3050,7 +3141,7 @@ func (x *ModuleRuntimeEvent) String() string { func (*ModuleRuntimeEvent) ProtoMessage() {} func (x *ModuleRuntimeEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3063,7 +3154,7 @@ func (x *ModuleRuntimeEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntimeEvent.ProtoReflect.Descriptor instead. func (*ModuleRuntimeEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{43} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{44} } func (m *ModuleRuntimeEvent) GetValue() isModuleRuntimeEvent_Value { @@ -3126,7 +3217,7 @@ type ModuleRuntimeScaling struct { func (x *ModuleRuntimeScaling) Reset() { *x = ModuleRuntimeScaling{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3138,7 +3229,7 @@ func (x *ModuleRuntimeScaling) String() string { func (*ModuleRuntimeScaling) ProtoMessage() {} func (x *ModuleRuntimeScaling) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3151,7 +3242,7 @@ func (x *ModuleRuntimeScaling) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRuntimeScaling.ProtoReflect.Descriptor instead. func (*ModuleRuntimeScaling) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{44} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{45} } func (x *ModuleRuntimeScaling) GetMinReplicas() int32 { @@ -3172,7 +3263,7 @@ type Optional struct { func (x *Optional) Reset() { *x = Optional{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3184,7 +3275,7 @@ func (x *Optional) String() string { func (*Optional) ProtoMessage() {} func (x *Optional) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3197,7 +3288,7 @@ func (x *Optional) ProtoReflect() protoreflect.Message { // Deprecated: Use Optional.ProtoReflect.Descriptor instead. func (*Optional) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{45} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{46} } func (x *Optional) GetPos() *Position { @@ -3226,7 +3317,7 @@ type Position struct { func (x *Position) Reset() { *x = Position{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3238,7 +3329,7 @@ func (x *Position) String() string { func (*Position) ProtoMessage() {} func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3251,7 +3342,7 @@ func (x *Position) ProtoReflect() protoreflect.Message { // Deprecated: Use Position.ProtoReflect.Descriptor instead. func (*Position) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{46} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{47} } func (x *Position) GetFilename() string { @@ -3288,7 +3379,7 @@ type Ref struct { func (x *Ref) Reset() { *x = Ref{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3300,7 +3391,7 @@ func (x *Ref) String() string { func (*Ref) ProtoMessage() {} func (x *Ref) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3313,7 +3404,7 @@ func (x *Ref) ProtoReflect() protoreflect.Message { // Deprecated: Use Ref.ProtoReflect.Descriptor instead. func (*Ref) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{47} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{48} } func (x *Ref) GetPos() *Position { @@ -3355,7 +3446,7 @@ type Schema struct { func (x *Schema) Reset() { *x = Schema{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3367,7 +3458,7 @@ func (x *Schema) String() string { func (*Schema) ProtoMessage() {} func (x *Schema) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3380,7 +3471,7 @@ func (x *Schema) ProtoReflect() protoreflect.Message { // Deprecated: Use Schema.ProtoReflect.Descriptor instead. func (*Schema) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{48} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{49} } func (x *Schema) GetPos() *Position { @@ -3410,7 +3501,7 @@ type Secret struct { func (x *Secret) Reset() { *x = Secret{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3422,7 +3513,7 @@ func (x *Secret) String() string { func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3435,7 +3526,7 @@ func (x *Secret) ProtoReflect() protoreflect.Message { // Deprecated: Use Secret.ProtoReflect.Descriptor instead. func (*Secret) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{49} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{50} } func (x *Secret) GetPos() *Position { @@ -3476,7 +3567,7 @@ type String struct { func (x *String) Reset() { *x = String{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3488,7 +3579,7 @@ func (x *String) String() string { func (*String) ProtoMessage() {} func (x *String) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3501,7 +3592,7 @@ func (x *String) ProtoReflect() protoreflect.Message { // Deprecated: Use String.ProtoReflect.Descriptor instead. func (*String) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{50} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{51} } func (x *String) GetPos() *Position { @@ -3522,7 +3613,7 @@ type StringValue struct { func (x *StringValue) Reset() { *x = StringValue{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3534,7 +3625,7 @@ func (x *StringValue) String() string { func (*StringValue) ProtoMessage() {} func (x *StringValue) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3547,7 +3638,7 @@ func (x *StringValue) ProtoReflect() protoreflect.Message { // Deprecated: Use StringValue.ProtoReflect.Descriptor instead. func (*StringValue) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{51} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{52} } func (x *StringValue) GetPos() *Position { @@ -3574,7 +3665,7 @@ type Time struct { func (x *Time) Reset() { *x = Time{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3586,7 +3677,7 @@ func (x *Time) String() string { func (*Time) ProtoMessage() {} func (x *Time) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3599,7 +3690,7 @@ func (x *Time) ProtoReflect() protoreflect.Message { // Deprecated: Use Time.ProtoReflect.Descriptor instead. func (*Time) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{52} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{53} } func (x *Time) GetPos() *Position { @@ -3624,7 +3715,7 @@ type Topic struct { func (x *Topic) Reset() { *x = Topic{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3636,7 +3727,7 @@ func (x *Topic) String() string { func (*Topic) ProtoMessage() {} func (x *Topic) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3649,7 +3740,7 @@ func (x *Topic) ProtoReflect() protoreflect.Message { // Deprecated: Use Topic.ProtoReflect.Descriptor instead. func (*Topic) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{53} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{54} } func (x *Topic) GetPos() *Position { @@ -3705,7 +3796,7 @@ type TopicRuntime struct { func (x *TopicRuntime) Reset() { *x = TopicRuntime{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3717,7 +3808,7 @@ func (x *TopicRuntime) String() string { func (*TopicRuntime) ProtoMessage() {} func (x *TopicRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3730,7 +3821,7 @@ func (x *TopicRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use TopicRuntime.ProtoReflect.Descriptor instead. func (*TopicRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{54} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{55} } func (x *TopicRuntime) GetKafkaBrokers() []string { @@ -3771,7 +3862,7 @@ type Type struct { func (x *Type) Reset() { *x = Type{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3783,7 +3874,7 @@ func (x *Type) String() string { func (*Type) ProtoMessage() {} func (x *Type) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3796,7 +3887,7 @@ func (x *Type) ProtoReflect() protoreflect.Message { // Deprecated: Use Type.ProtoReflect.Descriptor instead. func (*Type) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{55} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{56} } func (m *Type) GetValue() isType_Value { @@ -3981,7 +4072,7 @@ type TypeAlias struct { func (x *TypeAlias) Reset() { *x = TypeAlias{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3993,7 +4084,7 @@ func (x *TypeAlias) String() string { func (*TypeAlias) ProtoMessage() {} func (x *TypeAlias) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4006,7 +4097,7 @@ func (x *TypeAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeAlias.ProtoReflect.Descriptor instead. func (*TypeAlias) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{56} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{57} } func (x *TypeAlias) GetPos() *Position { @@ -4062,7 +4153,7 @@ type TypeParameter struct { func (x *TypeParameter) Reset() { *x = TypeParameter{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[57] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4074,7 +4165,7 @@ func (x *TypeParameter) String() string { func (*TypeParameter) ProtoMessage() {} func (x *TypeParameter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[57] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4087,7 +4178,7 @@ func (x *TypeParameter) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeParameter.ProtoReflect.Descriptor instead. func (*TypeParameter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{57} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{58} } func (x *TypeParameter) GetPos() *Position { @@ -4115,7 +4206,7 @@ type TypeValue struct { func (x *TypeValue) Reset() { *x = TypeValue{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[58] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4127,7 +4218,7 @@ func (x *TypeValue) String() string { func (*TypeValue) ProtoMessage() {} func (x *TypeValue) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[58] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4140,7 +4231,7 @@ func (x *TypeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeValue.ProtoReflect.Descriptor instead. func (*TypeValue) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{58} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{59} } func (x *TypeValue) GetPos() *Position { @@ -4167,7 +4258,7 @@ type Unit struct { func (x *Unit) Reset() { *x = Unit{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[59] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4179,7 +4270,7 @@ func (x *Unit) String() string { func (*Unit) ProtoMessage() {} func (x *Unit) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[59] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4192,7 +4283,7 @@ func (x *Unit) ProtoReflect() protoreflect.Message { // Deprecated: Use Unit.ProtoReflect.Descriptor instead. func (*Unit) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{59} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{60} } func (x *Unit) GetPos() *Position { @@ -4217,7 +4308,7 @@ type Value struct { func (x *Value) Reset() { *x = Value{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4229,7 +4320,7 @@ func (x *Value) String() string { func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4242,7 +4333,7 @@ func (x *Value) ProtoReflect() protoreflect.Message { // Deprecated: Use Value.ProtoReflect.Descriptor instead. func (*Value) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{60} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{61} } func (m *Value) GetValue() isValue_Value { @@ -4312,7 +4403,7 @@ type Verb struct { func (x *Verb) Reset() { *x = Verb{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4324,7 +4415,7 @@ func (x *Verb) String() string { func (*Verb) ProtoMessage() {} func (x *Verb) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4337,7 +4428,7 @@ func (x *Verb) ProtoReflect() protoreflect.Message { // Deprecated: Use Verb.ProtoReflect.Descriptor instead. func (*Verb) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{61} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{62} } func (x *Verb) GetPos() *Position { @@ -4408,7 +4499,7 @@ type VerbRuntime struct { func (x *VerbRuntime) Reset() { *x = VerbRuntime{} - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[62] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4420,7 +4511,7 @@ func (x *VerbRuntime) String() string { func (*VerbRuntime) ProtoMessage() {} func (x *VerbRuntime) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[62] + mi := &file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4433,7 +4524,7 @@ func (x *VerbRuntime) ProtoReflect() protoreflect.Message { // Deprecated: Use VerbRuntime.ProtoReflect.Descriptor instead. func (*VerbRuntime) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{62} + return file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP(), []int{63} } func (x *VerbRuntime) GetCreateTime() *timestamppb.Timestamp { @@ -4739,503 +4830,522 @@ var file_xyz_block_ftl_schema_v1_schema_proto_rawDesc = []byte{ 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, - 0xb6, 0x07, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x05, + 0xff, 0x07, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3e, 0x0a, 0x05, - 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x61, - 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x45, 0x0a, 0x08, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x63, - 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x73, 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x48, - 0x00, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x07, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x3e, 0x0a, - 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0x54, 0x0a, - 0x0d, 0x73, 0x71, 0x6c, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x69, 0x61, 0x73, 0x48, 0x00, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x08, + 0x61, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x74, + 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3e, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x48, 0x00, - 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x05, + 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x72, 0x6f, 0x6e, + 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, + 0x6e, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, + 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x08, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x42, - 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x03, - 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x44, 0x0a, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, - 0x6f, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x34, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x67, 0x0a, - 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, - 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, + 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x03, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, + 0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x73, 0x71, 0x6c, 0x5f, 0x6d, 0x69, + 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, + 0x73, 0x71, 0x6c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x72, 0x12, 0x45, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, + 0x07, 0x74, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x70, 0x6f, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x41, 0x72, 0x74, 0x65, 0x66, 0x61, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, + 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x88, + 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x67, 0x0a, 0x0f, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, + 0x6f, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x66, 0x52, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, - 0x6f, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, + 0x05, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x82, + 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x70, 0x6f, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x74, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, - 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, - 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x41, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, - 0x11, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x03, - 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x6f, - 0x66, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, - 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, - 0x6f, 0x66, 0x66, 0x12, 0x37, 0x0a, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x61, 0x74, 0x63, 0x68, 0x22, 0x70, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x38, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x41, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, - 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x44, 0x0a, - 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, - 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x74, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x65, - 0x74, 0x74, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8e, 0x01, 0x0a, - 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, - 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8d, 0x02, - 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, - 0x64, 0x65, 0x63, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x52, 0x05, 0x64, 0x65, 0x63, 0x6c, - 0x73, 0x12, 0x42, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8f, 0x02, - 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x3e, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x07, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, - 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0xcf, 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x42, 0x61, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x13, - 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6f, 0x73, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x22, 0x5c, 0x0a, 0x17, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, - 0xd2, 0x02, 0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x61, 0x73, 0x65, 0x48, - 0x00, 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x61, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x19, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x16, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, - 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, - 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, - 0x8d, 0x01, 0x0a, 0x08, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x03, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, + 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x1f, + 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, + 0x37, 0x0a, 0x05, 0x63, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x61, 0x74, 0x63, 0x68, 0x22, 0x70, 0x0a, 0x14, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x51, 0x4c, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x52, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x22, 0xbb, 0x01, 0x0a, 0x03, 0x52, 0x65, 0x66, 0x12, 0x38, 0x0a, 0x03, 0x70, + 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x66, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, - 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, - 0x73, 0x22, 0x85, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x38, 0x0a, 0x03, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x66, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x0b, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x65, 0x74, 0x74, 0x65, 0x72, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x06, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x06, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x65, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x0c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, - 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, - 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x22, 0x9a, 0x05, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x03, - 0x61, 0x6e, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x36, - 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, - 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, + 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, + 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, 0x75, 0x69, + 0x6c, 0x74, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c, 0x6f, - 0x61, 0x74, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x69, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x64, 0x65, 0x63, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x52, 0x05, 0x64, 0x65, 0x63, 0x6c, 0x73, 0x12, 0x42, 0x0a, 0x07, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, - 0x03, 0x6d, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, - 0x3f, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x12, 0x30, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x03, 0x72, - 0x65, 0x66, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x48, - 0x00, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x87, 0x02, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, - 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x07, 0x73, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x01, + 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x61, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x6f, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x61, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x61, 0x72, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x72, + 0x63, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x5c, 0x0a, 0x17, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x5c, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x61, 0x73, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x61, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x19, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x65, 0x0a, 0x16, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x48, 0x00, + 0x52, 0x14, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x39, 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x08, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x08, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x22, 0xbb, + 0x01, 0x0a, 0x03, 0x52, 0x65, 0x66, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x65, 0x0a, 0x0d, 0x54, 0x79, - 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, - 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, - 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, - 0x73, 0x22, 0x82, 0x01, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x85, 0x01, 0x0a, + 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x38, + 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, - 0x22, 0xe2, 0x01, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x22, 0x65, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, + 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x38, 0x0a, 0x03, 0x70, + 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, + 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, + 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, + 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4e, + 0x0a, 0x0c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, + 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x9a, + 0x05, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x79, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, + 0x79, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x48, 0x00, + 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0c, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, - 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x03, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x38, - 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x48, 0x00, 0x52, + 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x3f, 0x0a, 0x08, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, + 0x00, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x03, 0x72, + 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x39, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x48, 0x00, + 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, + 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x09, + 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, - 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3d, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x65, 0x0a, 0x0d, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0x82, 0x01, 0x0a, + 0x09, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, + 0x73, 0x22, 0x48, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, + 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, - 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, - 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xd3, - 0x01, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x62, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x40, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, - 0x00, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0d, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, - 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x2a, 0x3c, 0x0a, 0x09, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0f, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, - 0x10, 0x01, 0x2a, 0x5c, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, - 0x15, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x42, 0x45, 0x47, - 0x49, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x52, 0x4f, 0x4d, - 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x53, 0x54, 0x10, 0x02, - 0x42, 0x4e, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x54, 0x42, 0x44, 0x35, 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, - 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, - 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, + 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x96, 0x03, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x38, 0x0a, 0x03, 0x70, 0x6f, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, + 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x92, 0xf7, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x01, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x6f, 0x73, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x0b, 0x56, 0x65, + 0x72, 0x62, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x6b, + 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x2a, + 0x3c, 0x0a, 0x09, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x16, + 0x41, 0x4c, 0x49, 0x41, 0x53, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x4c, 0x49, 0x41, + 0x53, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x2a, 0x5c, 0x0a, + 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x46, + 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x52, 0x4f, 0x4d, + 0x5f, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x4e, 0x49, 0x4e, + 0x47, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x53, + 0x45, 0x54, 0x5f, 0x4c, 0x41, 0x54, 0x45, 0x53, 0x54, 0x10, 0x02, 0x42, 0x4e, 0x50, 0x01, 0x5a, + 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x42, 0x44, 0x35, + 0x34, 0x35, 0x36, 0x36, 0x39, 0x37, 0x35, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x78, 0x79, 0x7a, 0x2f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, + 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -5251,7 +5361,7 @@ func file_xyz_block_ftl_schema_v1_schema_proto_rawDescGZIP() []byte { } var file_xyz_block_ftl_schema_v1_schema_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_xyz_block_ftl_schema_v1_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_xyz_block_ftl_schema_v1_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_xyz_block_ftl_schema_v1_schema_proto_goTypes = []any{ (AliasKind)(0), // 0: xyz.block.ftl.schema.v1.AliasKind (FromOffset)(0), // 1: xyz.block.ftl.schema.v1.FromOffset @@ -5282,59 +5392,60 @@ var file_xyz_block_ftl_schema_v1_schema_proto_goTypes = []any{ (*Map)(nil), // 26: xyz.block.ftl.schema.v1.Map (*Metadata)(nil), // 27: xyz.block.ftl.schema.v1.Metadata (*MetadataAlias)(nil), // 28: xyz.block.ftl.schema.v1.MetadataAlias - (*MetadataCalls)(nil), // 29: xyz.block.ftl.schema.v1.MetadataCalls - (*MetadataConfig)(nil), // 30: xyz.block.ftl.schema.v1.MetadataConfig - (*MetadataCronJob)(nil), // 31: xyz.block.ftl.schema.v1.MetadataCronJob - (*MetadataDatabases)(nil), // 32: xyz.block.ftl.schema.v1.MetadataDatabases - (*MetadataEncoding)(nil), // 33: xyz.block.ftl.schema.v1.MetadataEncoding - (*MetadataIngress)(nil), // 34: xyz.block.ftl.schema.v1.MetadataIngress - (*MetadataPublisher)(nil), // 35: xyz.block.ftl.schema.v1.MetadataPublisher - (*MetadataRetry)(nil), // 36: xyz.block.ftl.schema.v1.MetadataRetry - (*MetadataSQLMigration)(nil), // 37: xyz.block.ftl.schema.v1.MetadataSQLMigration - (*MetadataSecrets)(nil), // 38: xyz.block.ftl.schema.v1.MetadataSecrets - (*MetadataSubscriber)(nil), // 39: xyz.block.ftl.schema.v1.MetadataSubscriber - (*MetadataTypeMap)(nil), // 40: xyz.block.ftl.schema.v1.MetadataTypeMap - (*Module)(nil), // 41: xyz.block.ftl.schema.v1.Module - (*ModuleRuntime)(nil), // 42: xyz.block.ftl.schema.v1.ModuleRuntime - (*ModuleRuntimeBase)(nil), // 43: xyz.block.ftl.schema.v1.ModuleRuntimeBase - (*ModuleRuntimeDeployment)(nil), // 44: xyz.block.ftl.schema.v1.ModuleRuntimeDeployment - (*ModuleRuntimeEvent)(nil), // 45: xyz.block.ftl.schema.v1.ModuleRuntimeEvent - (*ModuleRuntimeScaling)(nil), // 46: xyz.block.ftl.schema.v1.ModuleRuntimeScaling - (*Optional)(nil), // 47: xyz.block.ftl.schema.v1.Optional - (*Position)(nil), // 48: xyz.block.ftl.schema.v1.Position - (*Ref)(nil), // 49: xyz.block.ftl.schema.v1.Ref - (*Schema)(nil), // 50: xyz.block.ftl.schema.v1.Schema - (*Secret)(nil), // 51: xyz.block.ftl.schema.v1.Secret - (*String)(nil), // 52: xyz.block.ftl.schema.v1.String - (*StringValue)(nil), // 53: xyz.block.ftl.schema.v1.StringValue - (*Time)(nil), // 54: xyz.block.ftl.schema.v1.Time - (*Topic)(nil), // 55: xyz.block.ftl.schema.v1.Topic - (*TopicRuntime)(nil), // 56: xyz.block.ftl.schema.v1.TopicRuntime - (*Type)(nil), // 57: xyz.block.ftl.schema.v1.Type - (*TypeAlias)(nil), // 58: xyz.block.ftl.schema.v1.TypeAlias - (*TypeParameter)(nil), // 59: xyz.block.ftl.schema.v1.TypeParameter - (*TypeValue)(nil), // 60: xyz.block.ftl.schema.v1.TypeValue - (*Unit)(nil), // 61: xyz.block.ftl.schema.v1.Unit - (*Value)(nil), // 62: xyz.block.ftl.schema.v1.Value - (*Verb)(nil), // 63: xyz.block.ftl.schema.v1.Verb - (*VerbRuntime)(nil), // 64: xyz.block.ftl.schema.v1.VerbRuntime - (*timestamppb.Timestamp)(nil), // 65: google.protobuf.Timestamp + (*MetadataArtefact)(nil), // 29: xyz.block.ftl.schema.v1.MetadataArtefact + (*MetadataCalls)(nil), // 30: xyz.block.ftl.schema.v1.MetadataCalls + (*MetadataConfig)(nil), // 31: xyz.block.ftl.schema.v1.MetadataConfig + (*MetadataCronJob)(nil), // 32: xyz.block.ftl.schema.v1.MetadataCronJob + (*MetadataDatabases)(nil), // 33: xyz.block.ftl.schema.v1.MetadataDatabases + (*MetadataEncoding)(nil), // 34: xyz.block.ftl.schema.v1.MetadataEncoding + (*MetadataIngress)(nil), // 35: xyz.block.ftl.schema.v1.MetadataIngress + (*MetadataPublisher)(nil), // 36: xyz.block.ftl.schema.v1.MetadataPublisher + (*MetadataRetry)(nil), // 37: xyz.block.ftl.schema.v1.MetadataRetry + (*MetadataSQLMigration)(nil), // 38: xyz.block.ftl.schema.v1.MetadataSQLMigration + (*MetadataSecrets)(nil), // 39: xyz.block.ftl.schema.v1.MetadataSecrets + (*MetadataSubscriber)(nil), // 40: xyz.block.ftl.schema.v1.MetadataSubscriber + (*MetadataTypeMap)(nil), // 41: xyz.block.ftl.schema.v1.MetadataTypeMap + (*Module)(nil), // 42: xyz.block.ftl.schema.v1.Module + (*ModuleRuntime)(nil), // 43: xyz.block.ftl.schema.v1.ModuleRuntime + (*ModuleRuntimeBase)(nil), // 44: xyz.block.ftl.schema.v1.ModuleRuntimeBase + (*ModuleRuntimeDeployment)(nil), // 45: xyz.block.ftl.schema.v1.ModuleRuntimeDeployment + (*ModuleRuntimeEvent)(nil), // 46: xyz.block.ftl.schema.v1.ModuleRuntimeEvent + (*ModuleRuntimeScaling)(nil), // 47: xyz.block.ftl.schema.v1.ModuleRuntimeScaling + (*Optional)(nil), // 48: xyz.block.ftl.schema.v1.Optional + (*Position)(nil), // 49: xyz.block.ftl.schema.v1.Position + (*Ref)(nil), // 50: xyz.block.ftl.schema.v1.Ref + (*Schema)(nil), // 51: xyz.block.ftl.schema.v1.Schema + (*Secret)(nil), // 52: xyz.block.ftl.schema.v1.Secret + (*String)(nil), // 53: xyz.block.ftl.schema.v1.String + (*StringValue)(nil), // 54: xyz.block.ftl.schema.v1.StringValue + (*Time)(nil), // 55: xyz.block.ftl.schema.v1.Time + (*Topic)(nil), // 56: xyz.block.ftl.schema.v1.Topic + (*TopicRuntime)(nil), // 57: xyz.block.ftl.schema.v1.TopicRuntime + (*Type)(nil), // 58: xyz.block.ftl.schema.v1.Type + (*TypeAlias)(nil), // 59: xyz.block.ftl.schema.v1.TypeAlias + (*TypeParameter)(nil), // 60: xyz.block.ftl.schema.v1.TypeParameter + (*TypeValue)(nil), // 61: xyz.block.ftl.schema.v1.TypeValue + (*Unit)(nil), // 62: xyz.block.ftl.schema.v1.Unit + (*Value)(nil), // 63: xyz.block.ftl.schema.v1.Value + (*Verb)(nil), // 64: xyz.block.ftl.schema.v1.Verb + (*VerbRuntime)(nil), // 65: xyz.block.ftl.schema.v1.VerbRuntime + (*timestamppb.Timestamp)(nil), // 66: google.protobuf.Timestamp } var file_xyz_block_ftl_schema_v1_schema_proto_depIdxs = []int32{ - 48, // 0: xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 1: xyz.block.ftl.schema.v1.Any.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 2: xyz.block.ftl.schema.v1.Array.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 3: xyz.block.ftl.schema.v1.Array.element:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 4: xyz.block.ftl.schema.v1.Bool.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 5: xyz.block.ftl.schema.v1.Bytes.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 6: xyz.block.ftl.schema.v1.Config.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 7: xyz.block.ftl.schema.v1.Config.type:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 8: xyz.block.ftl.schema.v1.DSNDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 9: xyz.block.ftl.schema.v1.Data.pos:type_name -> xyz.block.ftl.schema.v1.Position - 59, // 10: xyz.block.ftl.schema.v1.Data.type_parameters:type_name -> xyz.block.ftl.schema.v1.TypeParameter + 49, // 0: xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 1: xyz.block.ftl.schema.v1.Any.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 2: xyz.block.ftl.schema.v1.Array.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 3: xyz.block.ftl.schema.v1.Array.element:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 4: xyz.block.ftl.schema.v1.Bool.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 5: xyz.block.ftl.schema.v1.Bytes.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 6: xyz.block.ftl.schema.v1.Config.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 7: xyz.block.ftl.schema.v1.Config.type:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 8: xyz.block.ftl.schema.v1.DSNDatabaseConnector.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 9: xyz.block.ftl.schema.v1.Data.pos:type_name -> xyz.block.ftl.schema.v1.Position + 60, // 10: xyz.block.ftl.schema.v1.Data.type_parameters:type_name -> xyz.block.ftl.schema.v1.TypeParameter 19, // 11: xyz.block.ftl.schema.v1.Data.fields:type_name -> xyz.block.ftl.schema.v1.Field 27, // 12: xyz.block.ftl.schema.v1.Data.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata - 48, // 13: xyz.block.ftl.schema.v1.Database.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 13: xyz.block.ftl.schema.v1.Database.pos:type_name -> xyz.block.ftl.schema.v1.Position 12, // 14: xyz.block.ftl.schema.v1.Database.runtime:type_name -> xyz.block.ftl.schema.v1.DatabaseRuntime 27, // 15: xyz.block.ftl.schema.v1.Database.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata 2, // 16: xyz.block.ftl.schema.v1.DatabaseConnector.awsiam_auth_database_connector:type_name -> xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnector @@ -5348,122 +5459,125 @@ var file_xyz_block_ftl_schema_v1_schema_proto_depIdxs = []int32{ 9, // 24: xyz.block.ftl.schema.v1.Decl.data:type_name -> xyz.block.ftl.schema.v1.Data 10, // 25: xyz.block.ftl.schema.v1.Decl.database:type_name -> xyz.block.ftl.schema.v1.Database 17, // 26: xyz.block.ftl.schema.v1.Decl.enum:type_name -> xyz.block.ftl.schema.v1.Enum - 51, // 27: xyz.block.ftl.schema.v1.Decl.secret:type_name -> xyz.block.ftl.schema.v1.Secret - 55, // 28: xyz.block.ftl.schema.v1.Decl.topic:type_name -> xyz.block.ftl.schema.v1.Topic - 58, // 29: xyz.block.ftl.schema.v1.Decl.type_alias:type_name -> xyz.block.ftl.schema.v1.TypeAlias - 63, // 30: xyz.block.ftl.schema.v1.Decl.verb:type_name -> xyz.block.ftl.schema.v1.Verb - 48, // 31: xyz.block.ftl.schema.v1.Enum.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 32: xyz.block.ftl.schema.v1.Enum.type:type_name -> xyz.block.ftl.schema.v1.Type + 52, // 27: xyz.block.ftl.schema.v1.Decl.secret:type_name -> xyz.block.ftl.schema.v1.Secret + 56, // 28: xyz.block.ftl.schema.v1.Decl.topic:type_name -> xyz.block.ftl.schema.v1.Topic + 59, // 29: xyz.block.ftl.schema.v1.Decl.type_alias:type_name -> xyz.block.ftl.schema.v1.TypeAlias + 64, // 30: xyz.block.ftl.schema.v1.Decl.verb:type_name -> xyz.block.ftl.schema.v1.Verb + 49, // 31: xyz.block.ftl.schema.v1.Enum.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 32: xyz.block.ftl.schema.v1.Enum.type:type_name -> xyz.block.ftl.schema.v1.Type 18, // 33: xyz.block.ftl.schema.v1.Enum.variants:type_name -> xyz.block.ftl.schema.v1.EnumVariant - 48, // 34: xyz.block.ftl.schema.v1.EnumVariant.pos:type_name -> xyz.block.ftl.schema.v1.Position - 62, // 35: xyz.block.ftl.schema.v1.EnumVariant.value:type_name -> xyz.block.ftl.schema.v1.Value - 48, // 36: xyz.block.ftl.schema.v1.Field.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 37: xyz.block.ftl.schema.v1.Field.type:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 34: xyz.block.ftl.schema.v1.EnumVariant.pos:type_name -> xyz.block.ftl.schema.v1.Position + 63, // 35: xyz.block.ftl.schema.v1.EnumVariant.value:type_name -> xyz.block.ftl.schema.v1.Value + 49, // 36: xyz.block.ftl.schema.v1.Field.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 37: xyz.block.ftl.schema.v1.Field.type:type_name -> xyz.block.ftl.schema.v1.Type 27, // 38: xyz.block.ftl.schema.v1.Field.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata - 48, // 39: xyz.block.ftl.schema.v1.Float.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 39: xyz.block.ftl.schema.v1.Float.pos:type_name -> xyz.block.ftl.schema.v1.Position 22, // 40: xyz.block.ftl.schema.v1.IngressPathComponent.ingress_path_literal:type_name -> xyz.block.ftl.schema.v1.IngressPathLiteral 23, // 41: xyz.block.ftl.schema.v1.IngressPathComponent.ingress_path_parameter:type_name -> xyz.block.ftl.schema.v1.IngressPathParameter - 48, // 42: xyz.block.ftl.schema.v1.IngressPathLiteral.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 43: xyz.block.ftl.schema.v1.IngressPathParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 44: xyz.block.ftl.schema.v1.Int.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 45: xyz.block.ftl.schema.v1.IntValue.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 46: xyz.block.ftl.schema.v1.Map.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 47: xyz.block.ftl.schema.v1.Map.key:type_name -> xyz.block.ftl.schema.v1.Type - 57, // 48: xyz.block.ftl.schema.v1.Map.value:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 42: xyz.block.ftl.schema.v1.IngressPathLiteral.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 43: xyz.block.ftl.schema.v1.IngressPathParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 44: xyz.block.ftl.schema.v1.Int.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 45: xyz.block.ftl.schema.v1.IntValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 46: xyz.block.ftl.schema.v1.Map.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 47: xyz.block.ftl.schema.v1.Map.key:type_name -> xyz.block.ftl.schema.v1.Type + 58, // 48: xyz.block.ftl.schema.v1.Map.value:type_name -> xyz.block.ftl.schema.v1.Type 28, // 49: xyz.block.ftl.schema.v1.Metadata.alias:type_name -> xyz.block.ftl.schema.v1.MetadataAlias - 29, // 50: xyz.block.ftl.schema.v1.Metadata.calls:type_name -> xyz.block.ftl.schema.v1.MetadataCalls - 30, // 51: xyz.block.ftl.schema.v1.Metadata.config:type_name -> xyz.block.ftl.schema.v1.MetadataConfig - 31, // 52: xyz.block.ftl.schema.v1.Metadata.cron_job:type_name -> xyz.block.ftl.schema.v1.MetadataCronJob - 32, // 53: xyz.block.ftl.schema.v1.Metadata.databases:type_name -> xyz.block.ftl.schema.v1.MetadataDatabases - 33, // 54: xyz.block.ftl.schema.v1.Metadata.encoding:type_name -> xyz.block.ftl.schema.v1.MetadataEncoding - 34, // 55: xyz.block.ftl.schema.v1.Metadata.ingress:type_name -> xyz.block.ftl.schema.v1.MetadataIngress - 35, // 56: xyz.block.ftl.schema.v1.Metadata.publisher:type_name -> xyz.block.ftl.schema.v1.MetadataPublisher - 36, // 57: xyz.block.ftl.schema.v1.Metadata.retry:type_name -> xyz.block.ftl.schema.v1.MetadataRetry - 37, // 58: xyz.block.ftl.schema.v1.Metadata.sql_migration:type_name -> xyz.block.ftl.schema.v1.MetadataSQLMigration - 38, // 59: xyz.block.ftl.schema.v1.Metadata.secrets:type_name -> xyz.block.ftl.schema.v1.MetadataSecrets - 39, // 60: xyz.block.ftl.schema.v1.Metadata.subscriber:type_name -> xyz.block.ftl.schema.v1.MetadataSubscriber - 40, // 61: xyz.block.ftl.schema.v1.Metadata.type_map:type_name -> xyz.block.ftl.schema.v1.MetadataTypeMap - 48, // 62: xyz.block.ftl.schema.v1.MetadataAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position - 0, // 63: xyz.block.ftl.schema.v1.MetadataAlias.kind:type_name -> xyz.block.ftl.schema.v1.AliasKind - 48, // 64: xyz.block.ftl.schema.v1.MetadataCalls.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 65: xyz.block.ftl.schema.v1.MetadataCalls.calls:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 66: xyz.block.ftl.schema.v1.MetadataConfig.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 67: xyz.block.ftl.schema.v1.MetadataConfig.config:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 68: xyz.block.ftl.schema.v1.MetadataCronJob.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 69: xyz.block.ftl.schema.v1.MetadataDatabases.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 70: xyz.block.ftl.schema.v1.MetadataDatabases.calls:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 71: xyz.block.ftl.schema.v1.MetadataEncoding.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 72: xyz.block.ftl.schema.v1.MetadataIngress.pos:type_name -> xyz.block.ftl.schema.v1.Position - 21, // 73: xyz.block.ftl.schema.v1.MetadataIngress.path:type_name -> xyz.block.ftl.schema.v1.IngressPathComponent - 48, // 74: xyz.block.ftl.schema.v1.MetadataPublisher.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 75: xyz.block.ftl.schema.v1.MetadataPublisher.topics:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 76: xyz.block.ftl.schema.v1.MetadataRetry.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 77: xyz.block.ftl.schema.v1.MetadataRetry.catch:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 78: xyz.block.ftl.schema.v1.MetadataSQLMigration.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 79: xyz.block.ftl.schema.v1.MetadataSecrets.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 80: xyz.block.ftl.schema.v1.MetadataSecrets.secrets:type_name -> xyz.block.ftl.schema.v1.Ref - 48, // 81: xyz.block.ftl.schema.v1.MetadataSubscriber.pos:type_name -> xyz.block.ftl.schema.v1.Position - 49, // 82: xyz.block.ftl.schema.v1.MetadataSubscriber.topic:type_name -> xyz.block.ftl.schema.v1.Ref - 1, // 83: xyz.block.ftl.schema.v1.MetadataSubscriber.from_offset:type_name -> xyz.block.ftl.schema.v1.FromOffset - 48, // 84: xyz.block.ftl.schema.v1.MetadataTypeMap.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 85: xyz.block.ftl.schema.v1.Module.pos:type_name -> xyz.block.ftl.schema.v1.Position - 16, // 86: xyz.block.ftl.schema.v1.Module.decls:type_name -> xyz.block.ftl.schema.v1.Decl - 42, // 87: xyz.block.ftl.schema.v1.Module.runtime:type_name -> xyz.block.ftl.schema.v1.ModuleRuntime - 43, // 88: xyz.block.ftl.schema.v1.ModuleRuntime.base:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeBase - 46, // 89: xyz.block.ftl.schema.v1.ModuleRuntime.scaling:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeScaling - 44, // 90: xyz.block.ftl.schema.v1.ModuleRuntime.deployment:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeDeployment - 65, // 91: xyz.block.ftl.schema.v1.ModuleRuntimeBase.create_time:type_name -> google.protobuf.Timestamp - 43, // 92: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_base:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeBase - 44, // 93: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_deployment:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeDeployment - 46, // 94: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_scaling:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeScaling - 48, // 95: xyz.block.ftl.schema.v1.Optional.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 96: xyz.block.ftl.schema.v1.Optional.type:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 97: xyz.block.ftl.schema.v1.Ref.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 98: xyz.block.ftl.schema.v1.Ref.type_parameters:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 99: xyz.block.ftl.schema.v1.Schema.pos:type_name -> xyz.block.ftl.schema.v1.Position - 41, // 100: xyz.block.ftl.schema.v1.Schema.modules:type_name -> xyz.block.ftl.schema.v1.Module - 48, // 101: xyz.block.ftl.schema.v1.Secret.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 102: xyz.block.ftl.schema.v1.Secret.type:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 103: xyz.block.ftl.schema.v1.String.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 104: xyz.block.ftl.schema.v1.StringValue.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 105: xyz.block.ftl.schema.v1.Time.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 106: xyz.block.ftl.schema.v1.Topic.pos:type_name -> xyz.block.ftl.schema.v1.Position - 56, // 107: xyz.block.ftl.schema.v1.Topic.runtime:type_name -> xyz.block.ftl.schema.v1.TopicRuntime - 57, // 108: xyz.block.ftl.schema.v1.Topic.event:type_name -> xyz.block.ftl.schema.v1.Type - 3, // 109: xyz.block.ftl.schema.v1.Type.any:type_name -> xyz.block.ftl.schema.v1.Any - 4, // 110: xyz.block.ftl.schema.v1.Type.array:type_name -> xyz.block.ftl.schema.v1.Array - 5, // 111: xyz.block.ftl.schema.v1.Type.bool:type_name -> xyz.block.ftl.schema.v1.Bool - 6, // 112: xyz.block.ftl.schema.v1.Type.bytes:type_name -> xyz.block.ftl.schema.v1.Bytes - 20, // 113: xyz.block.ftl.schema.v1.Type.float:type_name -> xyz.block.ftl.schema.v1.Float - 24, // 114: xyz.block.ftl.schema.v1.Type.int:type_name -> xyz.block.ftl.schema.v1.Int - 26, // 115: xyz.block.ftl.schema.v1.Type.map:type_name -> xyz.block.ftl.schema.v1.Map - 47, // 116: xyz.block.ftl.schema.v1.Type.optional:type_name -> xyz.block.ftl.schema.v1.Optional - 49, // 117: xyz.block.ftl.schema.v1.Type.ref:type_name -> xyz.block.ftl.schema.v1.Ref - 52, // 118: xyz.block.ftl.schema.v1.Type.string:type_name -> xyz.block.ftl.schema.v1.String - 54, // 119: xyz.block.ftl.schema.v1.Type.time:type_name -> xyz.block.ftl.schema.v1.Time - 61, // 120: xyz.block.ftl.schema.v1.Type.unit:type_name -> xyz.block.ftl.schema.v1.Unit - 48, // 121: xyz.block.ftl.schema.v1.TypeAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 122: xyz.block.ftl.schema.v1.TypeAlias.type:type_name -> xyz.block.ftl.schema.v1.Type - 27, // 123: xyz.block.ftl.schema.v1.TypeAlias.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata - 48, // 124: xyz.block.ftl.schema.v1.TypeParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position - 48, // 125: xyz.block.ftl.schema.v1.TypeValue.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 126: xyz.block.ftl.schema.v1.TypeValue.value:type_name -> xyz.block.ftl.schema.v1.Type - 48, // 127: xyz.block.ftl.schema.v1.Unit.pos:type_name -> xyz.block.ftl.schema.v1.Position - 25, // 128: xyz.block.ftl.schema.v1.Value.int_value:type_name -> xyz.block.ftl.schema.v1.IntValue - 53, // 129: xyz.block.ftl.schema.v1.Value.string_value:type_name -> xyz.block.ftl.schema.v1.StringValue - 60, // 130: xyz.block.ftl.schema.v1.Value.type_value:type_name -> xyz.block.ftl.schema.v1.TypeValue - 48, // 131: xyz.block.ftl.schema.v1.Verb.pos:type_name -> xyz.block.ftl.schema.v1.Position - 57, // 132: xyz.block.ftl.schema.v1.Verb.request:type_name -> xyz.block.ftl.schema.v1.Type - 57, // 133: xyz.block.ftl.schema.v1.Verb.response:type_name -> xyz.block.ftl.schema.v1.Type - 27, // 134: xyz.block.ftl.schema.v1.Verb.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata - 64, // 135: xyz.block.ftl.schema.v1.Verb.runtime:type_name -> xyz.block.ftl.schema.v1.VerbRuntime - 65, // 136: xyz.block.ftl.schema.v1.VerbRuntime.create_time:type_name -> google.protobuf.Timestamp - 65, // 137: xyz.block.ftl.schema.v1.VerbRuntime.start_time:type_name -> google.protobuf.Timestamp - 138, // [138:138] is the sub-list for method output_type - 138, // [138:138] is the sub-list for method input_type - 138, // [138:138] is the sub-list for extension type_name - 138, // [138:138] is the sub-list for extension extendee - 0, // [0:138] is the sub-list for field type_name + 29, // 50: xyz.block.ftl.schema.v1.Metadata.artefact:type_name -> xyz.block.ftl.schema.v1.MetadataArtefact + 30, // 51: xyz.block.ftl.schema.v1.Metadata.calls:type_name -> xyz.block.ftl.schema.v1.MetadataCalls + 31, // 52: xyz.block.ftl.schema.v1.Metadata.config:type_name -> xyz.block.ftl.schema.v1.MetadataConfig + 32, // 53: xyz.block.ftl.schema.v1.Metadata.cron_job:type_name -> xyz.block.ftl.schema.v1.MetadataCronJob + 33, // 54: xyz.block.ftl.schema.v1.Metadata.databases:type_name -> xyz.block.ftl.schema.v1.MetadataDatabases + 34, // 55: xyz.block.ftl.schema.v1.Metadata.encoding:type_name -> xyz.block.ftl.schema.v1.MetadataEncoding + 35, // 56: xyz.block.ftl.schema.v1.Metadata.ingress:type_name -> xyz.block.ftl.schema.v1.MetadataIngress + 36, // 57: xyz.block.ftl.schema.v1.Metadata.publisher:type_name -> xyz.block.ftl.schema.v1.MetadataPublisher + 37, // 58: xyz.block.ftl.schema.v1.Metadata.retry:type_name -> xyz.block.ftl.schema.v1.MetadataRetry + 38, // 59: xyz.block.ftl.schema.v1.Metadata.sql_migration:type_name -> xyz.block.ftl.schema.v1.MetadataSQLMigration + 39, // 60: xyz.block.ftl.schema.v1.Metadata.secrets:type_name -> xyz.block.ftl.schema.v1.MetadataSecrets + 40, // 61: xyz.block.ftl.schema.v1.Metadata.subscriber:type_name -> xyz.block.ftl.schema.v1.MetadataSubscriber + 41, // 62: xyz.block.ftl.schema.v1.Metadata.type_map:type_name -> xyz.block.ftl.schema.v1.MetadataTypeMap + 49, // 63: xyz.block.ftl.schema.v1.MetadataAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position + 0, // 64: xyz.block.ftl.schema.v1.MetadataAlias.kind:type_name -> xyz.block.ftl.schema.v1.AliasKind + 49, // 65: xyz.block.ftl.schema.v1.MetadataArtefact.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 66: xyz.block.ftl.schema.v1.MetadataCalls.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 67: xyz.block.ftl.schema.v1.MetadataCalls.calls:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 68: xyz.block.ftl.schema.v1.MetadataConfig.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 69: xyz.block.ftl.schema.v1.MetadataConfig.config:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 70: xyz.block.ftl.schema.v1.MetadataCronJob.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 71: xyz.block.ftl.schema.v1.MetadataDatabases.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 72: xyz.block.ftl.schema.v1.MetadataDatabases.calls:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 73: xyz.block.ftl.schema.v1.MetadataEncoding.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 74: xyz.block.ftl.schema.v1.MetadataIngress.pos:type_name -> xyz.block.ftl.schema.v1.Position + 21, // 75: xyz.block.ftl.schema.v1.MetadataIngress.path:type_name -> xyz.block.ftl.schema.v1.IngressPathComponent + 49, // 76: xyz.block.ftl.schema.v1.MetadataPublisher.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 77: xyz.block.ftl.schema.v1.MetadataPublisher.topics:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 78: xyz.block.ftl.schema.v1.MetadataRetry.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 79: xyz.block.ftl.schema.v1.MetadataRetry.catch:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 80: xyz.block.ftl.schema.v1.MetadataSQLMigration.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 81: xyz.block.ftl.schema.v1.MetadataSecrets.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 82: xyz.block.ftl.schema.v1.MetadataSecrets.secrets:type_name -> xyz.block.ftl.schema.v1.Ref + 49, // 83: xyz.block.ftl.schema.v1.MetadataSubscriber.pos:type_name -> xyz.block.ftl.schema.v1.Position + 50, // 84: xyz.block.ftl.schema.v1.MetadataSubscriber.topic:type_name -> xyz.block.ftl.schema.v1.Ref + 1, // 85: xyz.block.ftl.schema.v1.MetadataSubscriber.from_offset:type_name -> xyz.block.ftl.schema.v1.FromOffset + 49, // 86: xyz.block.ftl.schema.v1.MetadataTypeMap.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 87: xyz.block.ftl.schema.v1.Module.pos:type_name -> xyz.block.ftl.schema.v1.Position + 27, // 88: xyz.block.ftl.schema.v1.Module.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 16, // 89: xyz.block.ftl.schema.v1.Module.decls:type_name -> xyz.block.ftl.schema.v1.Decl + 43, // 90: xyz.block.ftl.schema.v1.Module.runtime:type_name -> xyz.block.ftl.schema.v1.ModuleRuntime + 44, // 91: xyz.block.ftl.schema.v1.ModuleRuntime.base:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeBase + 47, // 92: xyz.block.ftl.schema.v1.ModuleRuntime.scaling:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeScaling + 45, // 93: xyz.block.ftl.schema.v1.ModuleRuntime.deployment:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeDeployment + 66, // 94: xyz.block.ftl.schema.v1.ModuleRuntimeBase.create_time:type_name -> google.protobuf.Timestamp + 44, // 95: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_base:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeBase + 45, // 96: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_deployment:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeDeployment + 47, // 97: xyz.block.ftl.schema.v1.ModuleRuntimeEvent.module_runtime_scaling:type_name -> xyz.block.ftl.schema.v1.ModuleRuntimeScaling + 49, // 98: xyz.block.ftl.schema.v1.Optional.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 99: xyz.block.ftl.schema.v1.Optional.type:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 100: xyz.block.ftl.schema.v1.Ref.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 101: xyz.block.ftl.schema.v1.Ref.type_parameters:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 102: xyz.block.ftl.schema.v1.Schema.pos:type_name -> xyz.block.ftl.schema.v1.Position + 42, // 103: xyz.block.ftl.schema.v1.Schema.modules:type_name -> xyz.block.ftl.schema.v1.Module + 49, // 104: xyz.block.ftl.schema.v1.Secret.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 105: xyz.block.ftl.schema.v1.Secret.type:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 106: xyz.block.ftl.schema.v1.String.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 107: xyz.block.ftl.schema.v1.StringValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 108: xyz.block.ftl.schema.v1.Time.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 109: xyz.block.ftl.schema.v1.Topic.pos:type_name -> xyz.block.ftl.schema.v1.Position + 57, // 110: xyz.block.ftl.schema.v1.Topic.runtime:type_name -> xyz.block.ftl.schema.v1.TopicRuntime + 58, // 111: xyz.block.ftl.schema.v1.Topic.event:type_name -> xyz.block.ftl.schema.v1.Type + 3, // 112: xyz.block.ftl.schema.v1.Type.any:type_name -> xyz.block.ftl.schema.v1.Any + 4, // 113: xyz.block.ftl.schema.v1.Type.array:type_name -> xyz.block.ftl.schema.v1.Array + 5, // 114: xyz.block.ftl.schema.v1.Type.bool:type_name -> xyz.block.ftl.schema.v1.Bool + 6, // 115: xyz.block.ftl.schema.v1.Type.bytes:type_name -> xyz.block.ftl.schema.v1.Bytes + 20, // 116: xyz.block.ftl.schema.v1.Type.float:type_name -> xyz.block.ftl.schema.v1.Float + 24, // 117: xyz.block.ftl.schema.v1.Type.int:type_name -> xyz.block.ftl.schema.v1.Int + 26, // 118: xyz.block.ftl.schema.v1.Type.map:type_name -> xyz.block.ftl.schema.v1.Map + 48, // 119: xyz.block.ftl.schema.v1.Type.optional:type_name -> xyz.block.ftl.schema.v1.Optional + 50, // 120: xyz.block.ftl.schema.v1.Type.ref:type_name -> xyz.block.ftl.schema.v1.Ref + 53, // 121: xyz.block.ftl.schema.v1.Type.string:type_name -> xyz.block.ftl.schema.v1.String + 55, // 122: xyz.block.ftl.schema.v1.Type.time:type_name -> xyz.block.ftl.schema.v1.Time + 62, // 123: xyz.block.ftl.schema.v1.Type.unit:type_name -> xyz.block.ftl.schema.v1.Unit + 49, // 124: xyz.block.ftl.schema.v1.TypeAlias.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 125: xyz.block.ftl.schema.v1.TypeAlias.type:type_name -> xyz.block.ftl.schema.v1.Type + 27, // 126: xyz.block.ftl.schema.v1.TypeAlias.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 49, // 127: xyz.block.ftl.schema.v1.TypeParameter.pos:type_name -> xyz.block.ftl.schema.v1.Position + 49, // 128: xyz.block.ftl.schema.v1.TypeValue.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 129: xyz.block.ftl.schema.v1.TypeValue.value:type_name -> xyz.block.ftl.schema.v1.Type + 49, // 130: xyz.block.ftl.schema.v1.Unit.pos:type_name -> xyz.block.ftl.schema.v1.Position + 25, // 131: xyz.block.ftl.schema.v1.Value.int_value:type_name -> xyz.block.ftl.schema.v1.IntValue + 54, // 132: xyz.block.ftl.schema.v1.Value.string_value:type_name -> xyz.block.ftl.schema.v1.StringValue + 61, // 133: xyz.block.ftl.schema.v1.Value.type_value:type_name -> xyz.block.ftl.schema.v1.TypeValue + 49, // 134: xyz.block.ftl.schema.v1.Verb.pos:type_name -> xyz.block.ftl.schema.v1.Position + 58, // 135: xyz.block.ftl.schema.v1.Verb.request:type_name -> xyz.block.ftl.schema.v1.Type + 58, // 136: xyz.block.ftl.schema.v1.Verb.response:type_name -> xyz.block.ftl.schema.v1.Type + 27, // 137: xyz.block.ftl.schema.v1.Verb.metadata:type_name -> xyz.block.ftl.schema.v1.Metadata + 65, // 138: xyz.block.ftl.schema.v1.Verb.runtime:type_name -> xyz.block.ftl.schema.v1.VerbRuntime + 66, // 139: xyz.block.ftl.schema.v1.VerbRuntime.create_time:type_name -> google.protobuf.Timestamp + 66, // 140: xyz.block.ftl.schema.v1.VerbRuntime.start_time:type_name -> google.protobuf.Timestamp + 141, // [141:141] is the sub-list for method output_type + 141, // [141:141] is the sub-list for method input_type + 141, // [141:141] is the sub-list for extension type_name + 141, // [141:141] is the sub-list for extension extendee + 0, // [0:141] is the sub-list for field type_name } func init() { file_xyz_block_ftl_schema_v1_schema_proto_init() } @@ -5513,6 +5627,7 @@ func file_xyz_block_ftl_schema_v1_schema_proto_init() { file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[24].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[25].OneofWrappers = []any{ (*Metadata_Alias)(nil), + (*Metadata_Artefact)(nil), (*Metadata_Calls)(nil), (*Metadata_Config)(nil), (*Metadata_CronJob)(nil), @@ -5542,20 +5657,21 @@ func file_xyz_block_ftl_schema_v1_schema_proto_init() { file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[39].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[40].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[41].OneofWrappers = []any{} - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[43].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[42].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[44].OneofWrappers = []any{ (*ModuleRuntimeEvent_ModuleRuntimeBase)(nil), (*ModuleRuntimeEvent_ModuleRuntimeDeployment)(nil), (*ModuleRuntimeEvent_ModuleRuntimeScaling)(nil), } - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[45].OneofWrappers = []any{} - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[47].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[46].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[48].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[49].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[50].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[51].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[52].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[53].OneofWrappers = []any{} - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[55].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[54].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56].OneofWrappers = []any{ (*Type_Any)(nil), (*Type_Array)(nil), (*Type_Bool)(nil), @@ -5569,24 +5685,24 @@ func file_xyz_block_ftl_schema_v1_schema_proto_init() { (*Type_Time)(nil), (*Type_Unit)(nil), } - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[56].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[57].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[58].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[59].OneofWrappers = []any{} - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60].OneofWrappers = []any{ + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[60].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61].OneofWrappers = []any{ (*Value_IntValue)(nil), (*Value_StringValue)(nil), (*Value_TypeValue)(nil), } - file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[61].OneofWrappers = []any{} file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[62].OneofWrappers = []any{} + file_xyz_block_ftl_schema_v1_schema_proto_msgTypes[63].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_xyz_block_ftl_schema_v1_schema_proto_rawDesc, NumEnums: 2, - NumMessages: 63, + NumMessages: 64, NumExtensions: 0, NumServices: 0, }, diff --git a/backend/protos/xyz/block/ftl/schema/v1/schema.proto b/backend/protos/xyz/block/ftl/schema/v1/schema.proto index 0e24b07d63..37e298aa38 100644 --- a/backend/protos/xyz/block/ftl/schema/v1/schema.proto +++ b/backend/protos/xyz/block/ftl/schema/v1/schema.proto @@ -176,6 +176,7 @@ message Map { message Metadata { oneof value { MetadataAlias alias = 5; + MetadataArtefact artefact = 14; MetadataCalls calls = 1; MetadataConfig config = 10; MetadataCronJob cron_job = 3; @@ -197,6 +198,13 @@ message MetadataAlias { string alias = 3; } +message MetadataArtefact { + optional Position pos = 1; + string path = 2; + string digest = 3; + bool executable = 4; +} + message MetadataCalls { optional Position pos = 1; repeated Ref calls = 2; @@ -271,6 +279,7 @@ message Module { repeated string comments = 2; bool builtin = 3; string name = 4; + repeated Metadata metadata = 6; repeated Decl decls = 5; ModuleRuntime runtime = 31634; } diff --git a/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts b/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts index 689f7c4633..dcad5f2b84 100644 --- a/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts @@ -1301,6 +1301,12 @@ export class Metadata extends Message { */ value: MetadataAlias; case: "alias"; + } | { + /** + * @generated from field: xyz.block.ftl.schema.v1.MetadataArtefact artefact = 14; + */ + value: MetadataArtefact; + case: "artefact"; } | { /** * @generated from field: xyz.block.ftl.schema.v1.MetadataCalls calls = 1; @@ -1384,6 +1390,7 @@ export class Metadata extends Message { static readonly typeName = "xyz.block.ftl.schema.v1.Metadata"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 5, name: "alias", kind: "message", T: MetadataAlias, oneof: "value" }, + { no: 14, name: "artefact", kind: "message", T: MetadataArtefact, oneof: "value" }, { no: 1, name: "calls", kind: "message", T: MetadataCalls, oneof: "value" }, { no: 10, name: "config", kind: "message", T: MetadataConfig, oneof: "value" }, { no: 3, name: "cron_job", kind: "message", T: MetadataCronJob, oneof: "value" }, @@ -1464,6 +1471,61 @@ export class MetadataAlias extends Message { } } +/** + * @generated from message xyz.block.ftl.schema.v1.MetadataArtefact + */ +export class MetadataArtefact extends Message { + /** + * @generated from field: optional xyz.block.ftl.schema.v1.Position pos = 1; + */ + pos?: Position; + + /** + * @generated from field: string path = 2; + */ + path = ""; + + /** + * @generated from field: string digest = 3; + */ + digest = ""; + + /** + * @generated from field: bool executable = 4; + */ + executable = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.schema.v1.MetadataArtefact"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "pos", kind: "message", T: Position, opt: true }, + { no: 2, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "digest", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "executable", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): MetadataArtefact { + return new MetadataArtefact().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): MetadataArtefact { + return new MetadataArtefact().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): MetadataArtefact { + return new MetadataArtefact().fromJsonString(jsonString, options); + } + + static equals(a: MetadataArtefact | PlainMessage | undefined, b: MetadataArtefact | PlainMessage | undefined): boolean { + return proto3.util.equals(MetadataArtefact, a, b); + } +} + /** * @generated from message xyz.block.ftl.schema.v1.MetadataCalls */ @@ -2058,6 +2120,11 @@ export class Module extends Message { */ name = ""; + /** + * @generated from field: repeated xyz.block.ftl.schema.v1.Metadata metadata = 6; + */ + metadata: Metadata[] = []; + /** * @generated from field: repeated xyz.block.ftl.schema.v1.Decl decls = 5; */ @@ -2080,6 +2147,7 @@ export class Module extends Message { { no: 2, name: "comments", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 3, name: "builtin", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, { no: 4, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 6, name: "metadata", kind: "message", T: Metadata, repeated: true }, { no: 5, name: "decls", kind: "message", T: Decl, repeated: true }, { no: 31634, name: "runtime", kind: "message", T: ModuleRuntime }, ]); diff --git a/internal/schema/data.go b/internal/schema/data.go index 69540b5811..800481ce22 100644 --- a/internal/schema/data.go +++ b/internal/schema/data.go @@ -127,7 +127,7 @@ func (d *Data) Monomorphise(ref *Ref) (*Data, error) { *EnumVariant, Value, *IntValue, *StringValue, *TypeValue, Symbol, Named, *TypeAlias, *Topic, *MetadataSubscriber, *MetadataTypeMap, *MetadataEncoding, *MetadataPublisher, *MetadataSQLMigration, *DSNDatabaseConnector, *DatabaseRuntime, - DatabaseConnector, *AWSIAMAuthDatabaseConnector, *DatabaseRuntimeConnections: + DatabaseConnector, *AWSIAMAuthDatabaseConnector, *DatabaseRuntimeConnections, *MetadataArtefact: } return next() }) diff --git a/internal/schema/jsonschema.go b/internal/schema/jsonschema.go index 3611e93e9b..5ea39ace87 100644 --- a/internal/schema/jsonschema.go +++ b/internal/schema/jsonschema.go @@ -195,7 +195,7 @@ func nodeToJSSchema(node Node, refs map[RefKey]*Ref) *jsonschema.Schema { *StringValue, *IntValue, *TypeValue, *Config, *Secret, Symbol, Named, *MetadataRetry, *Topic, *MetadataSubscriber, *MetadataTypeMap, *MetadataEncoding, *MetadataPublisher, *MetadataSQLMigration, *DSNDatabaseConnector, *DatabaseRuntime, - *AWSIAMAuthDatabaseConnector, DatabaseConnector, *DatabaseRuntimeConnections: + *AWSIAMAuthDatabaseConnector, DatabaseConnector, *DatabaseRuntimeConnections, *MetadataArtefact: panic(fmt.Sprintf("unsupported node type %T", node)) default: diff --git a/internal/schema/metadataartefact.go b/internal/schema/metadataartefact.go new file mode 100644 index 0000000000..be0eca367c --- /dev/null +++ b/internal/schema/metadataartefact.go @@ -0,0 +1,38 @@ +package schema + +import ( + "fmt" + + "google.golang.org/protobuf/reflect/protoreflect" + + schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" +) + +//protobuf:14 +type MetadataArtefact struct { + Pos Position `parser:"" protobuf:"1,optional"` + + Path string `parser:"'+' 'artefact' Whitespace @String" protobuf:"2"` + Digest string `parser:"@String" protobuf:"3"` + Executable bool `parser:"@'executable'?" protobuf:"4"` +} + +var _ Metadata = (*MetadataArtefact)(nil) + +func (m *MetadataArtefact) Position() Position { return m.Pos } + +func (m *MetadataArtefact) String() string { + return fmt.Sprintf("+artefact %q %q %t", m.Path, m.Digest, m.Executable) +} + +func (m *MetadataArtefact) ToProto() protoreflect.ProtoMessage { + return &schemapb.MetadataArtefact{ + Pos: posToProto(m.Pos), + Executable: m.Executable, + Path: m.Path, + Digest: m.Digest, + } +} + +func (m *MetadataArtefact) schemaChildren() []Node { return nil } +func (m *MetadataArtefact) schemaMetadata() {} diff --git a/internal/schema/module.go b/internal/schema/module.go index c877961538..ea495b773f 100644 --- a/internal/schema/module.go +++ b/internal/schema/module.go @@ -21,10 +21,11 @@ import ( type Module struct { Pos Position `parser:"" protobuf:"1,optional"` - Comments []string `parser:"@Comment*" protobuf:"2"` - Builtin bool `parser:"@'builtin'?" protobuf:"3"` - Name string `parser:"'module' @Ident '{'" protobuf:"4"` - Decls []Decl `parser:"@@* '}'" protobuf:"5"` + Comments []string `parser:"@Comment*" protobuf:"2"` + Builtin bool `parser:"@'builtin'?" protobuf:"3"` + Name string `parser:"'module' @Ident '{'" protobuf:"4"` + Metadata []Metadata `parser:"@@*" protobuf:"6"` + Decls []Decl `parser:"@@* '}'" protobuf:"5"` Runtime *ModuleRuntime `protobuf:"31634" parser:""` } @@ -235,6 +236,7 @@ func (m *Module) ToProto() proto.Message { Comments: m.Comments, Decls: declListToProto(m.Decls), Runtime: runtime, + Metadata: metadataListToProto(m.Metadata), } } @@ -259,6 +261,7 @@ func ModuleFromProto(s *schemapb.Module) (*Module, error) { Comments: s.Comments, Decls: declListToSchema(s.Decls), Runtime: ModuleRuntimeFromProto(s.Runtime), + Metadata: metadataListToSchema(s.Metadata), } return module, ValidateModule(module) } diff --git a/internal/schema/parser.go b/internal/schema/parser.go index 757044c0aa..e0d6d808a9 100644 --- a/internal/schema/parser.go +++ b/internal/schema/parser.go @@ -23,7 +23,7 @@ var ( } metadataUnion = []Metadata{&MetadataCalls{}, &MetadataConfig{}, &MetadataIngress{}, &MetadataCronJob{}, &MetadataDatabases{}, &MetadataAlias{}, &MetadataRetry{}, &MetadataSecrets{}, &MetadataSubscriber{}, - &MetadataTypeMap{}, &MetadataEncoding{}, &MetadataPublisher{}, &MetadataSQLMigration{}} + &MetadataTypeMap{}, &MetadataEncoding{}, &MetadataPublisher{}, &MetadataSQLMigration{}, &MetadataArtefact{}} ingressUnion = []IngressPathComponent{&IngressPathLiteral{}, &IngressPathParameter{}} valueUnion = []Value{&StringValue{}, &IntValue{}, &TypeValue{}} diff --git a/internal/schema/protobuf_dec.go b/internal/schema/protobuf_dec.go index 8033883075..01e5315d6b 100644 --- a/internal/schema/protobuf_dec.go +++ b/internal/schema/protobuf_dec.go @@ -197,6 +197,14 @@ func metadataToSchema(s *schemapb.Metadata) Metadata { Digest: s.SqlMigration.Digest, } + case *schemapb.Metadata_Artefact: + return &MetadataArtefact{ + Pos: PosFromProto(s.Artefact.Pos), + Executable: s.Artefact.Executable, + Path: s.Artefact.Path, + Digest: s.Artefact.Digest, + } + default: panic(fmt.Sprintf("unhandled metadata type: %T", s)) } diff --git a/internal/schema/protobuf_enc.go b/internal/schema/protobuf_enc.go index ccd6c79179..f7d2b3e252 100644 --- a/internal/schema/protobuf_enc.go +++ b/internal/schema/protobuf_enc.go @@ -100,6 +100,9 @@ func metadataListToProto(nodes []Metadata) []*schemapb.Metadata { case *MetadataSQLMigration: v = &schemapb.Metadata_SqlMigration{SqlMigration: n.ToProto().(*schemapb.MetadataSQLMigration)} + case *MetadataArtefact: + v = &schemapb.Metadata_Artefact{Artefact: n.ToProto().(*schemapb.MetadataArtefact)} + default: panic(fmt.Sprintf("unhandled metadata type %T", n)) } diff --git a/internal/schema/schema_test.go b/internal/schema/schema_test.go index 6e0d578c9f..57565cdd48 100644 --- a/internal/schema/schema_test.go +++ b/internal/schema/schema_test.go @@ -317,6 +317,8 @@ func TestParsing(t *testing.T) { {name: "TimeEcho", input: ` module echo { + +artefact "echo" "asf4as1fdfa2" + data EchoRequest { name String? } @@ -346,6 +348,9 @@ func TestParsing(t *testing.T) { expected: &Schema{ Modules: []*Module{{ Name: "echo", + Metadata: []Metadata{ + &MetadataArtefact{Path: "echo", Digest: "asf4as1fdfa2", Executable: false}, + }, Decls: []Decl{ &Data{Name: "EchoRequest", Fields: []*Field{{Name: "name", Type: &Optional{Type: &String{}}}}}, &Data{Name: "EchoResponse", Fields: []*Field{{Name: "message", Type: &String{}}}}, diff --git a/internal/schema/validate.go b/internal/schema/validate.go index 565884e047..5cbba85988 100644 --- a/internal/schema/validate.go +++ b/internal/schema/validate.go @@ -180,7 +180,7 @@ func ValidateModuleInSchema(schema *Schema, m optional.Option[*Module]) (*Schema validateRetries(module, md, optional.Some(n.Request), scopes, optional.Some(schema)) case *MetadataCronJob, *MetadataCalls, *MetadataConfig, *MetadataDatabases, *MetadataAlias, *MetadataTypeMap, - *MetadataEncoding, *MetadataSecrets, *MetadataPublisher, *MetadataSQLMigration, DatabaseConnector: + *MetadataEncoding, *MetadataSecrets, *MetadataPublisher, *MetadataSQLMigration, *MetadataArtefact, DatabaseConnector: } } case *Database: @@ -224,7 +224,7 @@ func ValidateModuleInSchema(schema *Schema, m optional.Option[*Module]) (*Schema Value, *IntValue, *StringValue, *TypeValue, *Config, *Secret, Symbol, Named, *MetadataSubscriber, *Topic, *MetadataTypeMap, *MetadataEncoding, *MetadataPublisher, *MetadataSQLMigration, *DSNDatabaseConnector, *DatabaseRuntime, DatabaseConnector, - *AWSIAMAuthDatabaseConnector, *DatabaseRuntimeConnections: + *AWSIAMAuthDatabaseConnector, *DatabaseRuntimeConnections, *MetadataArtefact: } return next() }) @@ -367,7 +367,7 @@ func ValidateModule(module *Module) error { *Unit, *Any, *TypeParameter, *Enum, *EnumVariant, *IntValue, *StringValue, *TypeValue, *Config, *Secret, *MetadataSubscriber, *MetadataTypeMap, *MetadataEncoding, *MetadataPublisher, *MetadataSQLMigration, *DSNDatabaseConnector, *DatabaseRuntime, *AWSIAMAuthDatabaseConnector, - DatabaseConnector, *DatabaseRuntimeConnections: + *MetadataArtefact, DatabaseConnector, *DatabaseRuntimeConnections: case Named, Symbol, Type, Metadata, Value, Decl: // Union types. } @@ -467,6 +467,8 @@ func sortMetadataType(md Metadata) { sortRefs(m.Topics) case *MetadataSQLMigration: return + case *MetadataArtefact: + return } } @@ -499,6 +501,8 @@ func getMetadataSortingPriority(metadata Metadata) int { priority = 12 case *MetadataSQLMigration: priority = 13 + case *MetadataArtefact: + priority = 14 } return priority } @@ -697,7 +701,7 @@ func validateVerbMetadata(scopes Scopes, module *Module, n *Verb) (merr []error) subErrs := validateVerbSubscriptions(module, n, md, scopes) merr = append(merr, subErrs...) case *MetadataCalls, *MetadataConfig, *MetadataDatabases, *MetadataAlias, *MetadataTypeMap, *MetadataEncoding, - *MetadataSecrets, *MetadataPublisher, *MetadataSQLMigration: + *MetadataSecrets, *MetadataPublisher, *MetadataSQLMigration, *MetadataArtefact: } } return diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.py b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.py index 04dd97d1ea..b0e0119e85 100644 --- a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.py +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.py @@ -25,7 +25,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$xyz/block/ftl/schema/v1/schema.proto\x12\x17xyz.block.ftl.schema.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb3\x01\n\x1b\x41WSIAMAuthDatabaseConnector\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08username\x18\x02 \x01(\tR\x08username\x12\x1a\n\x08\x65ndpoint\x18\x03 \x01(\tR\x08\x65ndpoint\x12\x1a\n\x08\x64\x61tabase\x18\x04 \x01(\tR\x08\x64\x61tabaseB\x06\n\x04_pos\"G\n\x03\x41ny\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\x82\x01\n\x05\x41rray\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x37\n\x07\x65lement\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x07\x65lementB\x06\n\x04_pos\"H\n\x04\x42ool\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"I\n\x05\x42ytes\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xad\x01\n\x06\x43onfig\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04typeB\x06\n\x04_pos\"j\n\x14\x44SNDatabaseConnector\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x10\n\x03\x64sn\x18\x02 \x01(\tR\x03\x64snB\x06\n\x04_pos\"\xd8\x02\n\x04\x44\x61ta\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12O\n\x0ftype_parameters\x18\x05 \x03(\x0b\x32&.xyz.block.ftl.schema.v1.TypeParameterR\x0etypeParameters\x12\x36\n\x06\x66ields\x18\x06 \x03(\x0b\x32\x1e.xyz.block.ftl.schema.v1.FieldR\x06\x66ields\x12=\n\x08metadata\x18\x07 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"\xa6\x02\n\x08\x44\x61tabase\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12I\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.DatabaseRuntimeH\x01R\x07runtime\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12=\n\x08metadata\x18\x05 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_posB\n\n\x08_runtime\"\x80\x02\n\x11\x44\x61tabaseConnector\x12{\n\x1e\x61wsiam_auth_database_connector\x18\x02 \x01(\x0b\x32\x34.xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnectorH\x00R\x1b\x61wsiamAuthDatabaseConnector\x12\x65\n\x16\x64sn_database_connector\x18\x01 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.DSNDatabaseConnectorH\x00R\x14\x64snDatabaseConnectorB\x07\n\x05value\"}\n\x0f\x44\x61tabaseRuntime\x12Z\n\x0b\x63onnections\x18\x01 \x01(\x0b\x32\x33.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsH\x00R\x0b\x63onnections\x88\x01\x01\x42\x0e\n\x0c_connections\"\x9e\x01\n\x1a\x44\x61tabaseRuntimeConnections\x12>\n\x04read\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.DatabaseConnectorR\x04read\x12@\n\x05write\x18\x02 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.DatabaseConnectorR\x05write\"x\n\x1f\x44\x61tabaseRuntimeConnectionsEvent\x12U\n\x0b\x63onnections\x18\x01 \x01(\x0b\x32\x33.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsR\x0b\x63onnections\"\xa9\x01\n\x14\x44\x61tabaseRuntimeEvent\x12\x87\x01\n\"database_runtime_connections_event\x18\x01 \x01(\x0b\x32\x38.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsEventH\x00R\x1f\x64\x61tabaseRuntimeConnectionsEventB\x07\n\x05value\"\xe2\x03\n\x04\x44\x65\x63l\x12\x39\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ConfigH\x00R\x06\x63onfig\x12\x33\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DataH\x00R\x04\x64\x61ta\x12?\n\x08\x64\x61tabase\x18\x03 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.DatabaseH\x00R\x08\x64\x61tabase\x12\x33\n\x04\x65num\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.EnumH\x00R\x04\x65num\x12\x39\n\x06secret\x18\x07 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.SecretH\x00R\x06secret\x12\x36\n\x05topic\x18\t \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.TopicH\x00R\x05topic\x12\x43\n\ntype_alias\x18\x05 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeAliasH\x00R\ttypeAlias\x12\x33\n\x04verb\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.VerbH\x00R\x04verbB\x07\n\x05value\"\x93\x02\n\x04\x45num\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x36\n\x04type\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeH\x01R\x04type\x88\x01\x01\x12@\n\x08variants\x18\x06 \x03(\x0b\x32$.xyz.block.ftl.schema.v1.EnumVariantR\x08variantsB\x06\n\x04_posB\x07\n\x05_type\"\xb5\x01\n\x0b\x45numVariant\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x34\n\x05value\x18\x04 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.ValueR\x05valueB\x06\n\x04_pos\"\xeb\x01\n\x05\x46ield\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x03 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04type\x12=\n\x08metadata\x18\x05 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"I\n\x05\x46loat\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xe7\x01\n\x14IngressPathComponent\x12_\n\x14ingress_path_literal\x18\x01 \x01(\x0b\x32+.xyz.block.ftl.schema.v1.IngressPathLiteralH\x00R\x12ingressPathLiteral\x12\x65\n\x16ingress_path_parameter\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.IngressPathParameterH\x00R\x14ingressPathParameterB\x07\n\x05value\"j\n\x12IngressPathLiteral\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04text\x18\x02 \x01(\tR\x04textB\x06\n\x04_pos\"l\n\x14IngressPathParameter\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04nameB\x06\n\x04_pos\"G\n\x03Int\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"b\n\x08IntValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05valueB\x06\n\x04_pos\"\xad\x01\n\x03Map\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12/\n\x03key\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x03key\x12\x33\n\x05value\x18\x03 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05valueB\x06\n\x04_pos\"\xb6\x07\n\x08Metadata\x12>\n\x05\x61lias\x18\x05 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataAliasH\x00R\x05\x61lias\x12>\n\x05\x63\x61lls\x18\x01 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataCallsH\x00R\x05\x63\x61lls\x12\x41\n\x06\x63onfig\x18\n \x01(\x0b\x32\'.xyz.block.ftl.schema.v1.MetadataConfigH\x00R\x06\x63onfig\x12\x45\n\x08\x63ron_job\x18\x03 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataCronJobH\x00R\x07\x63ronJob\x12J\n\tdatabases\x18\x04 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.MetadataDatabasesH\x00R\tdatabases\x12G\n\x08\x65ncoding\x18\t \x01(\x0b\x32).xyz.block.ftl.schema.v1.MetadataEncodingH\x00R\x08\x65ncoding\x12\x44\n\x07ingress\x18\x02 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataIngressH\x00R\x07ingress\x12J\n\tpublisher\x18\x0c \x01(\x0b\x32*.xyz.block.ftl.schema.v1.MetadataPublisherH\x00R\tpublisher\x12>\n\x05retry\x18\x06 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataRetryH\x00R\x05retry\x12T\n\rsql_migration\x18\r \x01(\x0b\x32-.xyz.block.ftl.schema.v1.MetadataSQLMigrationH\x00R\x0csqlMigration\x12\x44\n\x07secrets\x18\x0b \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataSecretsH\x00R\x07secrets\x12M\n\nsubscriber\x18\x07 \x01(\x0b\x32+.xyz.block.ftl.schema.v1.MetadataSubscriberH\x00R\nsubscriber\x12\x45\n\x08type_map\x18\x08 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataTypeMapH\x00R\x07typeMapB\x07\n\x05value\"\x9f\x01\n\rMetadataAlias\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x04kind\x18\x02 \x01(\x0e\x32\".xyz.block.ftl.schema.v1.AliasKindR\x04kind\x12\x14\n\x05\x61lias\x18\x03 \x01(\tR\x05\x61liasB\x06\n\x04_pos\"\x85\x01\n\rMetadataCalls\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05\x63\x61lls\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05\x63\x61llsB\x06\n\x04_pos\"\x88\x01\n\x0eMetadataConfig\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x34\n\x06\x63onfig\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x06\x63onfigB\x06\n\x04_pos\"g\n\x0fMetadataCronJob\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04\x63ron\x18\x02 \x01(\tR\x04\x63ronB\x06\n\x04_pos\"\x89\x01\n\x11MetadataDatabases\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05\x63\x61lls\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05\x63\x61llsB\x06\n\x04_pos\"\x82\x01\n\x10MetadataEncoding\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x18\n\x07lenient\x18\x03 \x01(\x08R\x07lenientB\x06\n\x04_pos\"\xc2\x01\n\x0fMetadataIngress\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x16\n\x06method\x18\x03 \x01(\tR\x06method\x12\x41\n\x04path\x18\x04 \x03(\x0b\x32-.xyz.block.ftl.schema.v1.IngressPathComponentR\x04pathB\x06\n\x04_pos\"\x8b\x01\n\x11MetadataPublisher\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x34\n\x06topics\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x06topicsB\x06\n\x04_pos\"\xfb\x01\n\rMetadataRetry\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x19\n\x05\x63ount\x18\x02 \x01(\x03H\x01R\x05\x63ount\x88\x01\x01\x12\x1f\n\x0bmin_backoff\x18\x03 \x01(\tR\nminBackoff\x12\x1f\n\x0bmax_backoff\x18\x04 \x01(\tR\nmaxBackoff\x12\x37\n\x05\x63\x61tch\x18\x05 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x02R\x05\x63\x61tch\x88\x01\x01\x42\x06\n\x04_posB\x08\n\x06_countB\x08\n\x06_catch\"p\n\x14MetadataSQLMigration\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x16\n\x06\x64igest\x18\x02 \x01(\tR\x06\x64igestB\x06\n\x04_pos\"\x8b\x01\n\x0fMetadataSecrets\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x07secrets\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07secretsB\x06\n\x04_pos\"\xf1\x01\n\x12MetadataSubscriber\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05topic\x18\x02 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05topic\x12\x44\n\x0b\x66rom_offset\x18\x03 \x01(\x0e\x32#.xyz.block.ftl.schema.v1.FromOffsetR\nfromOffset\x12\x1f\n\x0b\x64\x65\x61\x64_letter\x18\x04 \x01(\x08R\ndeadLetterB\x06\n\x04_pos\"\x8e\x01\n\x0fMetadataTypeMap\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x18\n\x07runtime\x18\x02 \x01(\tR\x07runtime\x12\x1f\n\x0bnative_name\x18\x03 \x01(\tR\nnativeNameB\x06\n\x04_pos\"\x8d\x02\n\x06Module\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x18\n\x07\x62uiltin\x18\x03 \x01(\x08R\x07\x62uiltin\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x33\n\x05\x64\x65\x63ls\x18\x05 \x03(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DeclR\x05\x64\x65\x63ls\x12\x42\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.ModuleRuntimeR\x07runtimeB\x06\n\x04_pos\"\x8f\x02\n\rModuleRuntime\x12>\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.ModuleRuntimeBaseR\x04\x62\x61se\x12L\n\x07scaling\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.ModuleRuntimeScalingH\x00R\x07scaling\x88\x01\x01\x12U\n\ndeployment\x18\x03 \x01(\x0b\x32\x30.xyz.block.ftl.schema.v1.ModuleRuntimeDeploymentH\x01R\ndeployment\x88\x01\x01\x42\n\n\x08_scalingB\r\n\x0b_deployment\"\xcf\x01\n\x11ModuleRuntimeBase\x12;\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ncreateTime\x12\x1a\n\x08language\x18\x02 \x01(\tR\x08language\x12\x13\n\x02os\x18\x03 \x01(\tH\x00R\x02os\x88\x01\x01\x12\x17\n\x04\x61rch\x18\x04 \x01(\tH\x01R\x04\x61rch\x88\x01\x01\x12\x19\n\x05image\x18\x05 \x01(\tH\x02R\x05image\x88\x01\x01\x42\x05\n\x03_osB\x07\n\x05_archB\x08\n\x06_image\"\\\n\x17ModuleRuntimeDeployment\x12\x1a\n\x08\x65ndpoint\x18\x01 \x01(\tR\x08\x65ndpoint\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\"\xd2\x02\n\x12ModuleRuntimeEvent\x12\\\n\x13module_runtime_base\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.ModuleRuntimeBaseH\x00R\x11moduleRuntimeBase\x12n\n\x19module_runtime_deployment\x18\x03 \x01(\x0b\x32\x30.xyz.block.ftl.schema.v1.ModuleRuntimeDeploymentH\x00R\x17moduleRuntimeDeployment\x12\x65\n\x16module_runtime_scaling\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.ModuleRuntimeScalingH\x00R\x14moduleRuntimeScalingB\x07\n\x05value\"9\n\x14ModuleRuntimeScaling\x12!\n\x0cmin_replicas\x18\x01 \x01(\x05R\x0bminReplicas\"\x8d\x01\n\x08Optional\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x04type\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeH\x01R\x04type\x88\x01\x01\x42\x06\n\x04_posB\x07\n\x05_type\"R\n\x08Position\x12\x1a\n\x08\x66ilename\x18\x01 \x01(\tR\x08\x66ilename\x12\x12\n\x04line\x18\x02 \x01(\x03R\x04line\x12\x16\n\x06\x63olumn\x18\x03 \x01(\x03R\x06\x63olumn\"\xbb\x01\n\x03Ref\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x16\n\x06module\x18\x03 \x01(\tR\x06module\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x46\n\x0ftype_parameters\x18\x04 \x03(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x0etypeParametersB\x06\n\x04_pos\"\x85\x01\n\x06Schema\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x39\n\x07modules\x18\x02 \x03(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ModuleR\x07modulesB\x06\n\x04_pos\"\xad\x01\n\x06Secret\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04typeB\x06\n\x04_pos\"J\n\x06String\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"e\n\x0bStringValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x14\n\x05value\x18\x02 \x01(\tR\x05valueB\x06\n\x04_pos\"H\n\x04Time\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\x9a\x02\n\x05Topic\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x46\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32%.xyz.block.ftl.schema.v1.TopicRuntimeH\x01R\x07runtime\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x33\n\x05\x65vent\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05\x65ventB\x06\n\x04_posB\n\n\x08_runtime\"N\n\x0cTopicRuntime\x12#\n\rkafka_brokers\x18\x01 \x03(\tR\x0ckafkaBrokers\x12\x19\n\x08topic_id\x18\x02 \x01(\tR\x07topicId\"\x9a\x05\n\x04Type\x12\x30\n\x03\x61ny\x18\t \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.AnyH\x00R\x03\x61ny\x12\x36\n\x05\x61rray\x18\x07 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.ArrayH\x00R\x05\x61rray\x12\x33\n\x04\x62ool\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.BoolH\x00R\x04\x62ool\x12\x36\n\x05\x62ytes\x18\x04 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.BytesH\x00R\x05\x62ytes\x12\x36\n\x05\x66loat\x18\x02 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.FloatH\x00R\x05\x66loat\x12\x30\n\x03int\x18\x01 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.IntH\x00R\x03int\x12\x30\n\x03map\x18\x08 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.MapH\x00R\x03map\x12?\n\x08optional\x18\x0c \x01(\x0b\x32!.xyz.block.ftl.schema.v1.OptionalH\x00R\x08optional\x12\x30\n\x03ref\x18\x0b \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x00R\x03ref\x12\x39\n\x06string\x18\x03 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.StringH\x00R\x06string\x12\x33\n\x04time\x18\x06 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TimeH\x00R\x04time\x12\x33\n\x04unit\x18\n \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.UnitH\x00R\x04unitB\x07\n\x05value\"\x87\x02\n\tTypeAlias\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x31\n\x04type\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04type\x12=\n\x08metadata\x18\x06 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"e\n\rTypeParameter\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04nameB\x06\n\x04_pos\"\x82\x01\n\tTypeValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05valueB\x06\n\x04_pos\"H\n\x04Unit\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xe2\x01\n\x05Value\x12@\n\tint_value\x18\x02 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.IntValueH\x00R\x08intValue\x12I\n\x0cstring_value\x18\x01 \x01(\x0b\x32$.xyz.block.ftl.schema.v1.StringValueH\x00R\x0bstringValue\x12\x43\n\ntype_value\x18\x03 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeValueH\x00R\ttypeValueB\x07\n\x05value\"\x96\x03\n\x04Verb\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x37\n\x07request\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x07request\x12\x39\n\x08response\x18\x06 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x08response\x12=\n\x08metadata\x18\x07 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadata\x12\x45\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32$.xyz.block.ftl.schema.v1.VerbRuntimeH\x01R\x07runtime\x88\x01\x01\x42\x06\n\x04_posB\n\n\x08_runtime\"\xd3\x01\n\x0bVerbRuntime\x12@\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ncreateTime\x88\x01\x01\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tstartTime\x88\x01\x01\x12#\n\rkafka_brokers\x18\x03 \x03(\tR\x0ckafkaBrokersB\x0e\n\x0c_create_timeB\r\n\x0b_start_time*<\n\tAliasKind\x12\x1a\n\x16\x41LIAS_KIND_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x41LIAS_KIND_JSON\x10\x01*\\\n\nFromOffset\x12\x1b\n\x17\x46ROM_OFFSET_UNSPECIFIED\x10\x00\x12\x19\n\x15\x46ROM_OFFSET_BEGINNING\x10\x01\x12\x16\n\x12\x46ROM_OFFSET_LATEST\x10\x02\x42NP\x01ZJgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1;schemapbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$xyz/block/ftl/schema/v1/schema.proto\x12\x17xyz.block.ftl.schema.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb3\x01\n\x1b\x41WSIAMAuthDatabaseConnector\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08username\x18\x02 \x01(\tR\x08username\x12\x1a\n\x08\x65ndpoint\x18\x03 \x01(\tR\x08\x65ndpoint\x12\x1a\n\x08\x64\x61tabase\x18\x04 \x01(\tR\x08\x64\x61tabaseB\x06\n\x04_pos\"G\n\x03\x41ny\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\x82\x01\n\x05\x41rray\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x37\n\x07\x65lement\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x07\x65lementB\x06\n\x04_pos\"H\n\x04\x42ool\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"I\n\x05\x42ytes\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xad\x01\n\x06\x43onfig\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04typeB\x06\n\x04_pos\"j\n\x14\x44SNDatabaseConnector\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x10\n\x03\x64sn\x18\x02 \x01(\tR\x03\x64snB\x06\n\x04_pos\"\xd8\x02\n\x04\x44\x61ta\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12O\n\x0ftype_parameters\x18\x05 \x03(\x0b\x32&.xyz.block.ftl.schema.v1.TypeParameterR\x0etypeParameters\x12\x36\n\x06\x66ields\x18\x06 \x03(\x0b\x32\x1e.xyz.block.ftl.schema.v1.FieldR\x06\x66ields\x12=\n\x08metadata\x18\x07 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"\xa6\x02\n\x08\x44\x61tabase\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12I\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.DatabaseRuntimeH\x01R\x07runtime\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12=\n\x08metadata\x18\x05 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_posB\n\n\x08_runtime\"\x80\x02\n\x11\x44\x61tabaseConnector\x12{\n\x1e\x61wsiam_auth_database_connector\x18\x02 \x01(\x0b\x32\x34.xyz.block.ftl.schema.v1.AWSIAMAuthDatabaseConnectorH\x00R\x1b\x61wsiamAuthDatabaseConnector\x12\x65\n\x16\x64sn_database_connector\x18\x01 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.DSNDatabaseConnectorH\x00R\x14\x64snDatabaseConnectorB\x07\n\x05value\"}\n\x0f\x44\x61tabaseRuntime\x12Z\n\x0b\x63onnections\x18\x01 \x01(\x0b\x32\x33.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsH\x00R\x0b\x63onnections\x88\x01\x01\x42\x0e\n\x0c_connections\"\x9e\x01\n\x1a\x44\x61tabaseRuntimeConnections\x12>\n\x04read\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.DatabaseConnectorR\x04read\x12@\n\x05write\x18\x02 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.DatabaseConnectorR\x05write\"x\n\x1f\x44\x61tabaseRuntimeConnectionsEvent\x12U\n\x0b\x63onnections\x18\x01 \x01(\x0b\x32\x33.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsR\x0b\x63onnections\"\xa9\x01\n\x14\x44\x61tabaseRuntimeEvent\x12\x87\x01\n\"database_runtime_connections_event\x18\x01 \x01(\x0b\x32\x38.xyz.block.ftl.schema.v1.DatabaseRuntimeConnectionsEventH\x00R\x1f\x64\x61tabaseRuntimeConnectionsEventB\x07\n\x05value\"\xe2\x03\n\x04\x44\x65\x63l\x12\x39\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ConfigH\x00R\x06\x63onfig\x12\x33\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DataH\x00R\x04\x64\x61ta\x12?\n\x08\x64\x61tabase\x18\x03 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.DatabaseH\x00R\x08\x64\x61tabase\x12\x33\n\x04\x65num\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.EnumH\x00R\x04\x65num\x12\x39\n\x06secret\x18\x07 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.SecretH\x00R\x06secret\x12\x36\n\x05topic\x18\t \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.TopicH\x00R\x05topic\x12\x43\n\ntype_alias\x18\x05 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeAliasH\x00R\ttypeAlias\x12\x33\n\x04verb\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.VerbH\x00R\x04verbB\x07\n\x05value\"\x93\x02\n\x04\x45num\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x36\n\x04type\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeH\x01R\x04type\x88\x01\x01\x12@\n\x08variants\x18\x06 \x03(\x0b\x32$.xyz.block.ftl.schema.v1.EnumVariantR\x08variantsB\x06\n\x04_posB\x07\n\x05_type\"\xb5\x01\n\x0b\x45numVariant\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x34\n\x05value\x18\x04 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.ValueR\x05valueB\x06\n\x04_pos\"\xeb\x01\n\x05\x46ield\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x03 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04type\x12=\n\x08metadata\x18\x05 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"I\n\x05\x46loat\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xe7\x01\n\x14IngressPathComponent\x12_\n\x14ingress_path_literal\x18\x01 \x01(\x0b\x32+.xyz.block.ftl.schema.v1.IngressPathLiteralH\x00R\x12ingressPathLiteral\x12\x65\n\x16ingress_path_parameter\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.IngressPathParameterH\x00R\x14ingressPathParameterB\x07\n\x05value\"j\n\x12IngressPathLiteral\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04text\x18\x02 \x01(\tR\x04textB\x06\n\x04_pos\"l\n\x14IngressPathParameter\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04nameB\x06\n\x04_pos\"G\n\x03Int\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"b\n\x08IntValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05valueB\x06\n\x04_pos\"\xad\x01\n\x03Map\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12/\n\x03key\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x03key\x12\x33\n\x05value\x18\x03 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05valueB\x06\n\x04_pos\"\xff\x07\n\x08Metadata\x12>\n\x05\x61lias\x18\x05 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataAliasH\x00R\x05\x61lias\x12G\n\x08\x61rtefact\x18\x0e \x01(\x0b\x32).xyz.block.ftl.schema.v1.MetadataArtefactH\x00R\x08\x61rtefact\x12>\n\x05\x63\x61lls\x18\x01 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataCallsH\x00R\x05\x63\x61lls\x12\x41\n\x06\x63onfig\x18\n \x01(\x0b\x32\'.xyz.block.ftl.schema.v1.MetadataConfigH\x00R\x06\x63onfig\x12\x45\n\x08\x63ron_job\x18\x03 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataCronJobH\x00R\x07\x63ronJob\x12J\n\tdatabases\x18\x04 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.MetadataDatabasesH\x00R\tdatabases\x12G\n\x08\x65ncoding\x18\t \x01(\x0b\x32).xyz.block.ftl.schema.v1.MetadataEncodingH\x00R\x08\x65ncoding\x12\x44\n\x07ingress\x18\x02 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataIngressH\x00R\x07ingress\x12J\n\tpublisher\x18\x0c \x01(\x0b\x32*.xyz.block.ftl.schema.v1.MetadataPublisherH\x00R\tpublisher\x12>\n\x05retry\x18\x06 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.MetadataRetryH\x00R\x05retry\x12T\n\rsql_migration\x18\r \x01(\x0b\x32-.xyz.block.ftl.schema.v1.MetadataSQLMigrationH\x00R\x0csqlMigration\x12\x44\n\x07secrets\x18\x0b \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataSecretsH\x00R\x07secrets\x12M\n\nsubscriber\x18\x07 \x01(\x0b\x32+.xyz.block.ftl.schema.v1.MetadataSubscriberH\x00R\nsubscriber\x12\x45\n\x08type_map\x18\x08 \x01(\x0b\x32(.xyz.block.ftl.schema.v1.MetadataTypeMapH\x00R\x07typeMapB\x07\n\x05value\"\x9f\x01\n\rMetadataAlias\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x04kind\x18\x02 \x01(\x0e\x32\".xyz.block.ftl.schema.v1.AliasKindR\x04kind\x12\x14\n\x05\x61lias\x18\x03 \x01(\tR\x05\x61liasB\x06\n\x04_pos\"\xa0\x01\n\x10MetadataArtefact\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06\x64igest\x18\x03 \x01(\tR\x06\x64igest\x12\x1e\n\nexecutable\x18\x04 \x01(\x08R\nexecutableB\x06\n\x04_pos\"\x85\x01\n\rMetadataCalls\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05\x63\x61lls\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05\x63\x61llsB\x06\n\x04_pos\"\x88\x01\n\x0eMetadataConfig\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x34\n\x06\x63onfig\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x06\x63onfigB\x06\n\x04_pos\"g\n\x0fMetadataCronJob\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04\x63ron\x18\x02 \x01(\tR\x04\x63ronB\x06\n\x04_pos\"\x89\x01\n\x11MetadataDatabases\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05\x63\x61lls\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05\x63\x61llsB\x06\n\x04_pos\"\x82\x01\n\x10MetadataEncoding\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x18\n\x07lenient\x18\x03 \x01(\x08R\x07lenientB\x06\n\x04_pos\"\xc2\x01\n\x0fMetadataIngress\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x16\n\x06method\x18\x03 \x01(\tR\x06method\x12\x41\n\x04path\x18\x04 \x03(\x0b\x32-.xyz.block.ftl.schema.v1.IngressPathComponentR\x04pathB\x06\n\x04_pos\"\x8b\x01\n\x11MetadataPublisher\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x34\n\x06topics\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x06topicsB\x06\n\x04_pos\"\xfb\x01\n\rMetadataRetry\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x19\n\x05\x63ount\x18\x02 \x01(\x03H\x01R\x05\x63ount\x88\x01\x01\x12\x1f\n\x0bmin_backoff\x18\x03 \x01(\tR\nminBackoff\x12\x1f\n\x0bmax_backoff\x18\x04 \x01(\tR\nmaxBackoff\x12\x37\n\x05\x63\x61tch\x18\x05 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x02R\x05\x63\x61tch\x88\x01\x01\x42\x06\n\x04_posB\x08\n\x06_countB\x08\n\x06_catch\"p\n\x14MetadataSQLMigration\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x16\n\x06\x64igest\x18\x02 \x01(\tR\x06\x64igestB\x06\n\x04_pos\"\x8b\x01\n\x0fMetadataSecrets\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x07secrets\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07secretsB\x06\n\x04_pos\"\xf1\x01\n\x12MetadataSubscriber\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x32\n\x05topic\x18\x02 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x05topic\x12\x44\n\x0b\x66rom_offset\x18\x03 \x01(\x0e\x32#.xyz.block.ftl.schema.v1.FromOffsetR\nfromOffset\x12\x1f\n\x0b\x64\x65\x61\x64_letter\x18\x04 \x01(\x08R\ndeadLetterB\x06\n\x04_pos\"\x8e\x01\n\x0fMetadataTypeMap\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x18\n\x07runtime\x18\x02 \x01(\tR\x07runtime\x12\x1f\n\x0bnative_name\x18\x03 \x01(\tR\nnativeNameB\x06\n\x04_pos\"\xcc\x02\n\x06Module\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x18\n\x07\x62uiltin\x18\x03 \x01(\x08R\x07\x62uiltin\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12=\n\x08metadata\x18\x06 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadata\x12\x33\n\x05\x64\x65\x63ls\x18\x05 \x03(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DeclR\x05\x64\x65\x63ls\x12\x42\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32&.xyz.block.ftl.schema.v1.ModuleRuntimeR\x07runtimeB\x06\n\x04_pos\"\x8f\x02\n\rModuleRuntime\x12>\n\x04\x62\x61se\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.ModuleRuntimeBaseR\x04\x62\x61se\x12L\n\x07scaling\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.ModuleRuntimeScalingH\x00R\x07scaling\x88\x01\x01\x12U\n\ndeployment\x18\x03 \x01(\x0b\x32\x30.xyz.block.ftl.schema.v1.ModuleRuntimeDeploymentH\x01R\ndeployment\x88\x01\x01\x42\n\n\x08_scalingB\r\n\x0b_deployment\"\xcf\x01\n\x11ModuleRuntimeBase\x12;\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ncreateTime\x12\x1a\n\x08language\x18\x02 \x01(\tR\x08language\x12\x13\n\x02os\x18\x03 \x01(\tH\x00R\x02os\x88\x01\x01\x12\x17\n\x04\x61rch\x18\x04 \x01(\tH\x01R\x04\x61rch\x88\x01\x01\x12\x19\n\x05image\x18\x05 \x01(\tH\x02R\x05image\x88\x01\x01\x42\x05\n\x03_osB\x07\n\x05_archB\x08\n\x06_image\"\\\n\x17ModuleRuntimeDeployment\x12\x1a\n\x08\x65ndpoint\x18\x01 \x01(\tR\x08\x65ndpoint\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\"\xd2\x02\n\x12ModuleRuntimeEvent\x12\\\n\x13module_runtime_base\x18\x01 \x01(\x0b\x32*.xyz.block.ftl.schema.v1.ModuleRuntimeBaseH\x00R\x11moduleRuntimeBase\x12n\n\x19module_runtime_deployment\x18\x03 \x01(\x0b\x32\x30.xyz.block.ftl.schema.v1.ModuleRuntimeDeploymentH\x00R\x17moduleRuntimeDeployment\x12\x65\n\x16module_runtime_scaling\x18\x02 \x01(\x0b\x32-.xyz.block.ftl.schema.v1.ModuleRuntimeScalingH\x00R\x14moduleRuntimeScalingB\x07\n\x05value\"9\n\x14ModuleRuntimeScaling\x12!\n\x0cmin_replicas\x18\x01 \x01(\x05R\x0bminReplicas\"\x8d\x01\n\x08Optional\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x36\n\x04type\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeH\x01R\x04type\x88\x01\x01\x42\x06\n\x04_posB\x07\n\x05_type\"R\n\x08Position\x12\x1a\n\x08\x66ilename\x18\x01 \x01(\tR\x08\x66ilename\x12\x12\n\x04line\x18\x02 \x01(\x03R\x04line\x12\x16\n\x06\x63olumn\x18\x03 \x01(\x03R\x06\x63olumn\"\xbb\x01\n\x03Ref\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x16\n\x06module\x18\x03 \x01(\tR\x06module\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x46\n\x0ftype_parameters\x18\x04 \x03(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x0etypeParametersB\x06\n\x04_pos\"\x85\x01\n\x06Schema\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x39\n\x07modules\x18\x02 \x03(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ModuleR\x07modulesB\x06\n\x04_pos\"\xad\x01\n\x06Secret\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x31\n\x04type\x18\x04 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04typeB\x06\n\x04_pos\"J\n\x06String\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"e\n\x0bStringValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x14\n\x05value\x18\x02 \x01(\tR\x05valueB\x06\n\x04_pos\"H\n\x04Time\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\x9a\x02\n\x05Topic\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x46\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32%.xyz.block.ftl.schema.v1.TopicRuntimeH\x01R\x07runtime\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x33\n\x05\x65vent\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05\x65ventB\x06\n\x04_posB\n\n\x08_runtime\"N\n\x0cTopicRuntime\x12#\n\rkafka_brokers\x18\x01 \x03(\tR\x0ckafkaBrokers\x12\x19\n\x08topic_id\x18\x02 \x01(\tR\x07topicId\"\x9a\x05\n\x04Type\x12\x30\n\x03\x61ny\x18\t \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.AnyH\x00R\x03\x61ny\x12\x36\n\x05\x61rray\x18\x07 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.ArrayH\x00R\x05\x61rray\x12\x33\n\x04\x62ool\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.BoolH\x00R\x04\x62ool\x12\x36\n\x05\x62ytes\x18\x04 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.BytesH\x00R\x05\x62ytes\x12\x36\n\x05\x66loat\x18\x02 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.FloatH\x00R\x05\x66loat\x12\x30\n\x03int\x18\x01 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.IntH\x00R\x03int\x12\x30\n\x03map\x18\x08 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.MapH\x00R\x03map\x12?\n\x08optional\x18\x0c \x01(\x0b\x32!.xyz.block.ftl.schema.v1.OptionalH\x00R\x08optional\x12\x30\n\x03ref\x18\x0b \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x00R\x03ref\x12\x39\n\x06string\x18\x03 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.StringH\x00R\x06string\x12\x33\n\x04time\x18\x06 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TimeH\x00R\x04time\x12\x33\n\x04unit\x18\n \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.UnitH\x00R\x04unitB\x07\n\x05value\"\x87\x02\n\tTypeAlias\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x31\n\x04type\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x04type\x12=\n\x08metadata\x18\x06 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadataB\x06\n\x04_pos\"e\n\rTypeParameter\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04nameB\x06\n\x04_pos\"\x82\x01\n\tTypeValue\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x05valueB\x06\n\x04_pos\"H\n\x04Unit\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x42\x06\n\x04_pos\"\xe2\x01\n\x05Value\x12@\n\tint_value\x18\x02 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.IntValueH\x00R\x08intValue\x12I\n\x0cstring_value\x18\x01 \x01(\x0b\x32$.xyz.block.ftl.schema.v1.StringValueH\x00R\x0bstringValue\x12\x43\n\ntype_value\x18\x03 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeValueH\x00R\ttypeValueB\x07\n\x05value\"\x96\x03\n\x04Verb\x12\x38\n\x03pos\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.PositionH\x00R\x03pos\x88\x01\x01\x12\x1a\n\x08\x63omments\x18\x02 \x03(\tR\x08\x63omments\x12\x16\n\x06\x65xport\x18\x03 \x01(\x08R\x06\x65xport\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x37\n\x07request\x18\x05 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x07request\x12\x39\n\x08response\x18\x06 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.TypeR\x08response\x12=\n\x08metadata\x18\x07 \x03(\x0b\x32!.xyz.block.ftl.schema.v1.MetadataR\x08metadata\x12\x45\n\x07runtime\x18\x92\xf7\x01 \x01(\x0b\x32$.xyz.block.ftl.schema.v1.VerbRuntimeH\x01R\x07runtime\x88\x01\x01\x42\x06\n\x04_posB\n\n\x08_runtime\"\xd3\x01\n\x0bVerbRuntime\x12@\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\ncreateTime\x88\x01\x01\x12>\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tstartTime\x88\x01\x01\x12#\n\rkafka_brokers\x18\x03 \x03(\tR\x0ckafkaBrokersB\x0e\n\x0c_create_timeB\r\n\x0b_start_time*<\n\tAliasKind\x12\x1a\n\x16\x41LIAS_KIND_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x41LIAS_KIND_JSON\x10\x01*\\\n\nFromOffset\x12\x1b\n\x17\x46ROM_OFFSET_UNSPECIFIED\x10\x00\x12\x19\n\x15\x46ROM_OFFSET_BEGINNING\x10\x01\x12\x16\n\x12\x46ROM_OFFSET_LATEST\x10\x02\x42NP\x01ZJgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1;schemapbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,10 +33,10 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'P\001ZJgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1;schemapb' - _globals['_ALIASKIND']._serialized_start=12166 - _globals['_ALIASKIND']._serialized_end=12226 - _globals['_FROMOFFSET']._serialized_start=12228 - _globals['_FROMOFFSET']._serialized_end=12320 + _globals['_ALIASKIND']._serialized_start=12465 + _globals['_ALIASKIND']._serialized_end=12525 + _globals['_FROMOFFSET']._serialized_start=12527 + _globals['_FROMOFFSET']._serialized_end=12619 _globals['_AWSIAMAUTHDATABASECONNECTOR']._serialized_start=99 _globals['_AWSIAMAUTHDATABASECONNECTOR']._serialized_end=278 _globals['_ANY']._serialized_start=280 @@ -88,79 +88,81 @@ _globals['_MAP']._serialized_start=4290 _globals['_MAP']._serialized_end=4463 _globals['_METADATA']._serialized_start=4466 - _globals['_METADATA']._serialized_end=5416 - _globals['_METADATAALIAS']._serialized_start=5419 - _globals['_METADATAALIAS']._serialized_end=5578 - _globals['_METADATACALLS']._serialized_start=5581 - _globals['_METADATACALLS']._serialized_end=5714 - _globals['_METADATACONFIG']._serialized_start=5717 - _globals['_METADATACONFIG']._serialized_end=5853 - _globals['_METADATACRONJOB']._serialized_start=5855 - _globals['_METADATACRONJOB']._serialized_end=5958 - _globals['_METADATADATABASES']._serialized_start=5961 - _globals['_METADATADATABASES']._serialized_end=6098 - _globals['_METADATAENCODING']._serialized_start=6101 - _globals['_METADATAENCODING']._serialized_end=6231 - _globals['_METADATAINGRESS']._serialized_start=6234 - _globals['_METADATAINGRESS']._serialized_end=6428 - _globals['_METADATAPUBLISHER']._serialized_start=6431 - _globals['_METADATAPUBLISHER']._serialized_end=6570 - _globals['_METADATARETRY']._serialized_start=6573 - _globals['_METADATARETRY']._serialized_end=6824 - _globals['_METADATASQLMIGRATION']._serialized_start=6826 - _globals['_METADATASQLMIGRATION']._serialized_end=6938 - _globals['_METADATASECRETS']._serialized_start=6941 - _globals['_METADATASECRETS']._serialized_end=7080 - _globals['_METADATASUBSCRIBER']._serialized_start=7083 - _globals['_METADATASUBSCRIBER']._serialized_end=7324 - _globals['_METADATATYPEMAP']._serialized_start=7327 - _globals['_METADATATYPEMAP']._serialized_end=7469 - _globals['_MODULE']._serialized_start=7472 - _globals['_MODULE']._serialized_end=7741 - _globals['_MODULERUNTIME']._serialized_start=7744 - _globals['_MODULERUNTIME']._serialized_end=8015 - _globals['_MODULERUNTIMEBASE']._serialized_start=8018 - _globals['_MODULERUNTIMEBASE']._serialized_end=8225 - _globals['_MODULERUNTIMEDEPLOYMENT']._serialized_start=8227 - _globals['_MODULERUNTIMEDEPLOYMENT']._serialized_end=8319 - _globals['_MODULERUNTIMEEVENT']._serialized_start=8322 - _globals['_MODULERUNTIMEEVENT']._serialized_end=8660 - _globals['_MODULERUNTIMESCALING']._serialized_start=8662 - _globals['_MODULERUNTIMESCALING']._serialized_end=8719 - _globals['_OPTIONAL']._serialized_start=8722 - _globals['_OPTIONAL']._serialized_end=8863 - _globals['_POSITION']._serialized_start=8865 - _globals['_POSITION']._serialized_end=8947 - _globals['_REF']._serialized_start=8950 - _globals['_REF']._serialized_end=9137 - _globals['_SCHEMA']._serialized_start=9140 - _globals['_SCHEMA']._serialized_end=9273 - _globals['_SECRET']._serialized_start=9276 - _globals['_SECRET']._serialized_end=9449 - _globals['_STRING']._serialized_start=9451 - _globals['_STRING']._serialized_end=9525 - _globals['_STRINGVALUE']._serialized_start=9527 - _globals['_STRINGVALUE']._serialized_end=9628 - _globals['_TIME']._serialized_start=9630 - _globals['_TIME']._serialized_end=9702 - _globals['_TOPIC']._serialized_start=9705 - _globals['_TOPIC']._serialized_end=9987 - _globals['_TOPICRUNTIME']._serialized_start=9989 - _globals['_TOPICRUNTIME']._serialized_end=10067 - _globals['_TYPE']._serialized_start=10070 - _globals['_TYPE']._serialized_end=10736 - _globals['_TYPEALIAS']._serialized_start=10739 - _globals['_TYPEALIAS']._serialized_end=11002 - _globals['_TYPEPARAMETER']._serialized_start=11004 - _globals['_TYPEPARAMETER']._serialized_end=11105 - _globals['_TYPEVALUE']._serialized_start=11108 - _globals['_TYPEVALUE']._serialized_end=11238 - _globals['_UNIT']._serialized_start=11240 - _globals['_UNIT']._serialized_end=11312 - _globals['_VALUE']._serialized_start=11315 - _globals['_VALUE']._serialized_end=11541 - _globals['_VERB']._serialized_start=11544 - _globals['_VERB']._serialized_end=11950 - _globals['_VERBRUNTIME']._serialized_start=11953 - _globals['_VERBRUNTIME']._serialized_end=12164 + _globals['_METADATA']._serialized_end=5489 + _globals['_METADATAALIAS']._serialized_start=5492 + _globals['_METADATAALIAS']._serialized_end=5651 + _globals['_METADATAARTEFACT']._serialized_start=5654 + _globals['_METADATAARTEFACT']._serialized_end=5814 + _globals['_METADATACALLS']._serialized_start=5817 + _globals['_METADATACALLS']._serialized_end=5950 + _globals['_METADATACONFIG']._serialized_start=5953 + _globals['_METADATACONFIG']._serialized_end=6089 + _globals['_METADATACRONJOB']._serialized_start=6091 + _globals['_METADATACRONJOB']._serialized_end=6194 + _globals['_METADATADATABASES']._serialized_start=6197 + _globals['_METADATADATABASES']._serialized_end=6334 + _globals['_METADATAENCODING']._serialized_start=6337 + _globals['_METADATAENCODING']._serialized_end=6467 + _globals['_METADATAINGRESS']._serialized_start=6470 + _globals['_METADATAINGRESS']._serialized_end=6664 + _globals['_METADATAPUBLISHER']._serialized_start=6667 + _globals['_METADATAPUBLISHER']._serialized_end=6806 + _globals['_METADATARETRY']._serialized_start=6809 + _globals['_METADATARETRY']._serialized_end=7060 + _globals['_METADATASQLMIGRATION']._serialized_start=7062 + _globals['_METADATASQLMIGRATION']._serialized_end=7174 + _globals['_METADATASECRETS']._serialized_start=7177 + _globals['_METADATASECRETS']._serialized_end=7316 + _globals['_METADATASUBSCRIBER']._serialized_start=7319 + _globals['_METADATASUBSCRIBER']._serialized_end=7560 + _globals['_METADATATYPEMAP']._serialized_start=7563 + _globals['_METADATATYPEMAP']._serialized_end=7705 + _globals['_MODULE']._serialized_start=7708 + _globals['_MODULE']._serialized_end=8040 + _globals['_MODULERUNTIME']._serialized_start=8043 + _globals['_MODULERUNTIME']._serialized_end=8314 + _globals['_MODULERUNTIMEBASE']._serialized_start=8317 + _globals['_MODULERUNTIMEBASE']._serialized_end=8524 + _globals['_MODULERUNTIMEDEPLOYMENT']._serialized_start=8526 + _globals['_MODULERUNTIMEDEPLOYMENT']._serialized_end=8618 + _globals['_MODULERUNTIMEEVENT']._serialized_start=8621 + _globals['_MODULERUNTIMEEVENT']._serialized_end=8959 + _globals['_MODULERUNTIMESCALING']._serialized_start=8961 + _globals['_MODULERUNTIMESCALING']._serialized_end=9018 + _globals['_OPTIONAL']._serialized_start=9021 + _globals['_OPTIONAL']._serialized_end=9162 + _globals['_POSITION']._serialized_start=9164 + _globals['_POSITION']._serialized_end=9246 + _globals['_REF']._serialized_start=9249 + _globals['_REF']._serialized_end=9436 + _globals['_SCHEMA']._serialized_start=9439 + _globals['_SCHEMA']._serialized_end=9572 + _globals['_SECRET']._serialized_start=9575 + _globals['_SECRET']._serialized_end=9748 + _globals['_STRING']._serialized_start=9750 + _globals['_STRING']._serialized_end=9824 + _globals['_STRINGVALUE']._serialized_start=9826 + _globals['_STRINGVALUE']._serialized_end=9927 + _globals['_TIME']._serialized_start=9929 + _globals['_TIME']._serialized_end=10001 + _globals['_TOPIC']._serialized_start=10004 + _globals['_TOPIC']._serialized_end=10286 + _globals['_TOPICRUNTIME']._serialized_start=10288 + _globals['_TOPICRUNTIME']._serialized_end=10366 + _globals['_TYPE']._serialized_start=10369 + _globals['_TYPE']._serialized_end=11035 + _globals['_TYPEALIAS']._serialized_start=11038 + _globals['_TYPEALIAS']._serialized_end=11301 + _globals['_TYPEPARAMETER']._serialized_start=11303 + _globals['_TYPEPARAMETER']._serialized_end=11404 + _globals['_TYPEVALUE']._serialized_start=11407 + _globals['_TYPEVALUE']._serialized_end=11537 + _globals['_UNIT']._serialized_start=11539 + _globals['_UNIT']._serialized_end=11611 + _globals['_VALUE']._serialized_start=11614 + _globals['_VALUE']._serialized_end=11840 + _globals['_VERB']._serialized_start=11843 + _globals['_VERB']._serialized_end=12249 + _globals['_VERBRUNTIME']._serialized_start=12252 + _globals['_VERBRUNTIME']._serialized_end=12463 # @@protoc_insertion_point(module_scope) diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.pyi b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.pyi index ca836eef99..7a680edc07 100644 --- a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.pyi +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/schema/v1/schema_pb2.pyi @@ -266,8 +266,9 @@ class Map(_message.Message): def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., key: _Optional[_Union[Type, _Mapping]] = ..., value: _Optional[_Union[Type, _Mapping]] = ...) -> None: ... class Metadata(_message.Message): - __slots__ = ("alias", "calls", "config", "cron_job", "databases", "encoding", "ingress", "publisher", "retry", "sql_migration", "secrets", "subscriber", "type_map") + __slots__ = ("alias", "artefact", "calls", "config", "cron_job", "databases", "encoding", "ingress", "publisher", "retry", "sql_migration", "secrets", "subscriber", "type_map") ALIAS_FIELD_NUMBER: _ClassVar[int] + ARTEFACT_FIELD_NUMBER: _ClassVar[int] CALLS_FIELD_NUMBER: _ClassVar[int] CONFIG_FIELD_NUMBER: _ClassVar[int] CRON_JOB_FIELD_NUMBER: _ClassVar[int] @@ -281,6 +282,7 @@ class Metadata(_message.Message): SUBSCRIBER_FIELD_NUMBER: _ClassVar[int] TYPE_MAP_FIELD_NUMBER: _ClassVar[int] alias: MetadataAlias + artefact: MetadataArtefact calls: MetadataCalls config: MetadataConfig cron_job: MetadataCronJob @@ -293,7 +295,7 @@ class Metadata(_message.Message): secrets: MetadataSecrets subscriber: MetadataSubscriber type_map: MetadataTypeMap - def __init__(self, alias: _Optional[_Union[MetadataAlias, _Mapping]] = ..., calls: _Optional[_Union[MetadataCalls, _Mapping]] = ..., config: _Optional[_Union[MetadataConfig, _Mapping]] = ..., cron_job: _Optional[_Union[MetadataCronJob, _Mapping]] = ..., databases: _Optional[_Union[MetadataDatabases, _Mapping]] = ..., encoding: _Optional[_Union[MetadataEncoding, _Mapping]] = ..., ingress: _Optional[_Union[MetadataIngress, _Mapping]] = ..., publisher: _Optional[_Union[MetadataPublisher, _Mapping]] = ..., retry: _Optional[_Union[MetadataRetry, _Mapping]] = ..., sql_migration: _Optional[_Union[MetadataSQLMigration, _Mapping]] = ..., secrets: _Optional[_Union[MetadataSecrets, _Mapping]] = ..., subscriber: _Optional[_Union[MetadataSubscriber, _Mapping]] = ..., type_map: _Optional[_Union[MetadataTypeMap, _Mapping]] = ...) -> None: ... + def __init__(self, alias: _Optional[_Union[MetadataAlias, _Mapping]] = ..., artefact: _Optional[_Union[MetadataArtefact, _Mapping]] = ..., calls: _Optional[_Union[MetadataCalls, _Mapping]] = ..., config: _Optional[_Union[MetadataConfig, _Mapping]] = ..., cron_job: _Optional[_Union[MetadataCronJob, _Mapping]] = ..., databases: _Optional[_Union[MetadataDatabases, _Mapping]] = ..., encoding: _Optional[_Union[MetadataEncoding, _Mapping]] = ..., ingress: _Optional[_Union[MetadataIngress, _Mapping]] = ..., publisher: _Optional[_Union[MetadataPublisher, _Mapping]] = ..., retry: _Optional[_Union[MetadataRetry, _Mapping]] = ..., sql_migration: _Optional[_Union[MetadataSQLMigration, _Mapping]] = ..., secrets: _Optional[_Union[MetadataSecrets, _Mapping]] = ..., subscriber: _Optional[_Union[MetadataSubscriber, _Mapping]] = ..., type_map: _Optional[_Union[MetadataTypeMap, _Mapping]] = ...) -> None: ... class MetadataAlias(_message.Message): __slots__ = ("pos", "kind", "alias") @@ -305,6 +307,18 @@ class MetadataAlias(_message.Message): alias: str def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., kind: _Optional[_Union[AliasKind, str]] = ..., alias: _Optional[str] = ...) -> None: ... +class MetadataArtefact(_message.Message): + __slots__ = ("pos", "path", "digest", "executable") + POS_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + DIGEST_FIELD_NUMBER: _ClassVar[int] + EXECUTABLE_FIELD_NUMBER: _ClassVar[int] + pos: Position + path: str + digest: str + executable: bool + def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., path: _Optional[str] = ..., digest: _Optional[str] = ..., executable: bool = ...) -> None: ... + class MetadataCalls(_message.Message): __slots__ = ("pos", "calls") POS_FIELD_NUMBER: _ClassVar[int] @@ -420,20 +434,22 @@ class MetadataTypeMap(_message.Message): def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., runtime: _Optional[str] = ..., native_name: _Optional[str] = ...) -> None: ... class Module(_message.Message): - __slots__ = ("pos", "comments", "builtin", "name", "decls", "runtime") + __slots__ = ("pos", "comments", "builtin", "name", "metadata", "decls", "runtime") POS_FIELD_NUMBER: _ClassVar[int] COMMENTS_FIELD_NUMBER: _ClassVar[int] BUILTIN_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] DECLS_FIELD_NUMBER: _ClassVar[int] RUNTIME_FIELD_NUMBER: _ClassVar[int] pos: Position comments: _containers.RepeatedScalarFieldContainer[str] builtin: bool name: str + metadata: _containers.RepeatedCompositeFieldContainer[Metadata] decls: _containers.RepeatedCompositeFieldContainer[Decl] runtime: ModuleRuntime - def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., comments: _Optional[_Iterable[str]] = ..., builtin: bool = ..., name: _Optional[str] = ..., decls: _Optional[_Iterable[_Union[Decl, _Mapping]]] = ..., runtime: _Optional[_Union[ModuleRuntime, _Mapping]] = ...) -> None: ... + def __init__(self, pos: _Optional[_Union[Position, _Mapping]] = ..., comments: _Optional[_Iterable[str]] = ..., builtin: bool = ..., name: _Optional[str] = ..., metadata: _Optional[_Iterable[_Union[Metadata, _Mapping]]] = ..., decls: _Optional[_Iterable[_Union[Decl, _Mapping]]] = ..., runtime: _Optional[_Union[ModuleRuntime, _Mapping]] = ...) -> None: ... class ModuleRuntime(_message.Message): __slots__ = ("base", "scaling", "deployment")