From d84c2af6b15e90416cc06e1c711cc4ecd05b2c55 Mon Sep 17 00:00:00 2001 From: worstell Date: Wed, 4 Dec 2024 00:17:05 -0500 Subject: [PATCH] refactor: initial protos + skeleton for timeline service (#3610) pulled shared protos from `console.proto` into new `event.proto` --------- Co-authored-by: github-actions[bot] Co-authored-by: Matt Toohey --- Justfile | 4 + backend/controller/console/console.go | 67 +- .../controller/encryption/integration_test.go | 5 +- .../xyz/block/ftl/console/v1/console.pb.go | 2861 ++++------------- .../xyz/block/ftl/console/v1/console.proto | 152 +- .../xyz/block/ftl/timeline/v1/event.pb.go | 1720 ++++++++++ .../xyz/block/ftl/timeline/v1/event.proto | 153 + .../xyz/block/ftl/timeline/v1/timeline.pb.go | 372 +++ .../xyz/block/ftl/timeline/v1/timeline.proto | 44 + .../v1/timelinev1connect/timeline.connect.go | 170 + backend/timeline/service.go | 59 + cmd/ftl-http-ingress/main.go | 2 +- cmd/ftl-timeline/main.go | 52 + frontend/cli/cmd_replay.go | 3 +- .../src/api/timeline/timeline-filters.ts | 3 +- .../api/timeline/use-module-trace-events.ts | 3 +- .../api/timeline/use-request-trace-events.ts | 4 +- .../src/api/timeline/use-timeline-calls.ts | 3 +- .../console/src/api/timeline/use-timeline.ts | 3 +- .../src/features/timeline/Timeline.tsx | 3 +- .../timeline/TimelineAsyncExecute.tsx | 2 +- .../src/features/timeline/TimelineCall.tsx | 2 +- .../timeline/TimelineCronScheduled.tsx | 2 +- .../timeline/TimelineDeploymentCreated.tsx | 2 +- .../timeline/TimelineDeploymentUpdated.tsx | 2 +- .../features/timeline/TimelineEventList.tsx | 2 +- .../src/features/timeline/TimelineIcon.tsx | 2 +- .../src/features/timeline/TimelineIngress.tsx | 2 +- .../src/features/timeline/TimelineLog.tsx | 2 +- .../timeline/TimelinePubSubConsume.tsx | 2 +- .../timeline/TimelinePubSubPublish.tsx | 2 +- .../details/TimelineAsyncExecuteDetails.tsx | 2 +- .../timeline/details/TimelineCallDetails.tsx | 2 +- .../details/TimelineCronScheduledDetails.tsx | 2 +- .../TimelineDeploymentCreatedDetails.tsx | 2 +- .../TimelineDeploymentUpdatedDetails.tsx | 2 +- .../details/TimelineDetailsColorBar.tsx | 2 +- .../details/TimelineDetailsHeader.tsx | 2 +- .../details/TimelineIngressDetails.tsx | 2 +- .../timeline/details/TimelineLogDetails.tsx | 2 +- .../details/TimelinePubSubConsumeDetails.tsx | 2 +- .../details/TimelinePubSubPublishDetails.tsx | 2 +- .../timeline/filters/TimelineFilterPanel.tsx | 3 +- .../src/features/timeline/timeline.utils.ts | 4 +- .../src/features/traces/TraceDetailItem.tsx | 2 +- .../src/features/traces/TraceDetails.tsx | 2 +- .../src/features/traces/TraceGraph.tsx | 9 +- .../src/features/traces/TraceRequestList.tsx | 2 +- .../traces/details/TraceDetailsAsyncCall.tsx | 2 +- .../traces/details/TraceDetailsCall.tsx | 2 +- .../traces/details/TraceDetailsIngress.tsx | 2 +- .../details/TraceDetailsPubsubPublish.tsx | 2 +- .../src/features/traces/traces.utils.ts | 2 +- .../xyz/block/ftl/console/v1/console_pb.ts | 955 +----- .../xyz/block/ftl/timeline/v1/event_pb.ts | 953 ++++++ .../block/ftl/timeline/v1/timeline_connect.ts | 53 + .../xyz/block/ftl/timeline/v1/timeline_pb.ts | 181 ++ .../xyz/block/ftl/console/v1/console_pb2.py | 189 +- .../xyz/block/ftl/console/v1/console_pb2.pyi | 271 +- .../xyz/block/ftl/timeline/v1/event_pb2.py | 68 + .../xyz/block/ftl/timeline/v1/event_pb2.pyi | 264 ++ .../xyz/block/ftl/timeline/v1/timeline_pb2.py | 51 + .../block/ftl/timeline/v1/timeline_pb2.pyi | 40 + 63 files changed, 4995 insertions(+), 3789 deletions(-) create mode 100644 backend/protos/xyz/block/ftl/timeline/v1/event.pb.go create mode 100644 backend/protos/xyz/block/ftl/timeline/v1/event.proto create mode 100644 backend/protos/xyz/block/ftl/timeline/v1/timeline.pb.go create mode 100644 backend/protos/xyz/block/ftl/timeline/v1/timeline.proto create mode 100644 backend/protos/xyz/block/ftl/timeline/v1/timelinev1connect/timeline.connect.go create mode 100644 backend/timeline/service.go create mode 100644 cmd/ftl-timeline/main.go create mode 100644 frontend/console/src/protos/xyz/block/ftl/timeline/v1/event_pb.ts create mode 100644 frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_connect.ts create mode 100644 frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_pb.ts create mode 100644 python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.py create mode 100644 python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.pyi create mode 100644 python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.py create mode 100644 python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.pyi diff --git a/Justfile b/Justfile index 0d62ebabb9..eed2c22366 100644 --- a/Justfile +++ b/Justfile @@ -22,9 +22,13 @@ EXTENSION_OUT := "frontend/vscode/dist/extension.js" PROTOS_IN := "backend/protos" PROTOS_OUT := "backend/protos/xyz/block/ftl/console/v1/console.pb.go " + \ "backend/protos/xyz/block/ftl//v1/ftl.pb.go " + \ + "backend/protos/xyz/block/ftl/timeline/v1/timeline.pb.go " + \ + "backend/protos/xyz/block/ftl//timeline/v1/schemaservice.pb.go " + \ "backend/protos/xyz/block/ftl/schema/v1/schema.pb.go " + \ CONSOLE_ROOT + "/src/protos/xyz/block/ftl/console/v1/console_pb.ts " + \ CONSOLE_ROOT + "/src/protos/xyz/block/ftl/v1/ftl_pb.ts " + \ + CONSOLE_ROOT + "/src/protos/xyz/block/ftl/timeline/v1/timeline_pb.ts " + \ + CONSOLE_ROOT + "/src/protos/xyz/block/ftl/timeline/v1/schemaservice_pb.ts " + \ CONSOLE_ROOT + "/src/protos/xyz/block/ftl/schema/v1/schema_pb.ts " + \ CONSOLE_ROOT + "/src/protos/xyz/block/ftl/publish/v1/publish_pb.ts" GO_SCHEMA_ROOTS := "./internal/schema.Schema ./internal/schema.ModuleRuntimeEvent" diff --git a/backend/controller/console/console.go b/backend/controller/console/console.go index efaff5a314..efba2b5fa5 100644 --- a/backend/controller/console/console.go +++ b/backend/controller/console/console.go @@ -19,6 +19,7 @@ import ( pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect" schemapb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + pbtimeline "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/internal/buildengine" "github.com/TBD54566975/ftl/internal/log" @@ -554,6 +555,7 @@ func (c *ConsoleService) StreamEvents(ctx context.Context, req *connect.Request[ } } +//nolint:maintidx func eventsQueryProtoToDAL(query *pbconsole.GetEventsRequest) ([]timeline.TimelineFilter, error) { var result []timeline.TimelineFilter @@ -622,7 +624,8 @@ func eventsQueryProtoToDAL(query *pbconsole.GetEventsRequest) ([]timeline.Timeli return result, nil } -func eventDALToProto(event timeline.Event) *pbconsole.Event { +//nolint:maintidx +func eventDALToProto(event timeline.Event) *pbtimeline.Event { switch event := event.(type) { case *timeline.CallEvent: var requestKey *string @@ -634,11 +637,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { if sourceVerb, ok := event.SourceVerb.Get(); ok { sourceVerbRef = sourceVerb.ToProto().(*schemapb.Ref) //nolint:forcetypeassert } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_Call{ - Call: &pbconsole.CallEvent{ + Entry: &pbtimeline.Event_Call{ + Call: &pbtimeline.CallEvent{ RequestKey: requestKey, DeploymentKey: event.DeploymentKey.String(), TimeStamp: timestamppb.New(event.Time), @@ -662,11 +665,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { rstr := r.String() requestKey = &rstr } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_Log{ - Log: &pbconsole.LogEvent{ + Entry: &pbtimeline.Event_Log{ + Log: &pbtimeline.LogEvent{ DeploymentKey: event.DeploymentKey.String(), RequestKey: requestKey, TimeStamp: timestamppb.New(event.Time), @@ -684,11 +687,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { rstr := r.String() replaced = &rstr } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_DeploymentCreated{ - DeploymentCreated: &pbconsole.DeploymentCreatedEvent{ + Entry: &pbtimeline.Event_DeploymentCreated{ + DeploymentCreated: &pbtimeline.DeploymentCreatedEvent{ Key: event.DeploymentKey.String(), Language: event.Language, ModuleName: event.ModuleName, @@ -698,11 +701,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { }, } case *timeline.DeploymentUpdatedEvent: - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_DeploymentUpdated{ - DeploymentUpdated: &pbconsole.DeploymentUpdatedEvent{ + Entry: &pbtimeline.Event_DeploymentUpdated{ + DeploymentUpdated: &pbtimeline.DeploymentUpdatedEvent{ Key: event.DeploymentKey.String(), MinReplicas: int32(event.MinReplicas), PrevMinReplicas: int32(event.PrevMinReplicas), @@ -717,11 +720,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { requestKey = &rstr } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_Ingress{ - Ingress: &pbconsole.IngressEvent{ + Entry: &pbtimeline.Event_Ingress{ + Ingress: &pbtimeline.IngressEvent{ DeploymentKey: event.DeploymentKey.String(), RequestKey: requestKey, VerbRef: &schemapb.Ref{ @@ -743,11 +746,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { } case *timeline.CronScheduledEvent: - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_CronScheduled{ - CronScheduled: &pbconsole.CronScheduledEvent{ + Entry: &pbtimeline.Event_CronScheduled{ + CronScheduled: &pbtimeline.CronScheduledEvent{ DeploymentKey: event.DeploymentKey.String(), VerbRef: &schemapb.Ref{ Module: event.Verb.Module, @@ -768,21 +771,21 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { requestKey = &rstr } - var asyncEventType pbconsole.AsyncExecuteEventType + var asyncEventType pbtimeline.AsyncExecuteEventType switch event.EventType { case timeline.AsyncExecuteEventTypeUnkown: - asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED + asyncEventType = pbtimeline.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED case timeline.AsyncExecuteEventTypeCron: - asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON + asyncEventType = pbtimeline.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON case timeline.AsyncExecuteEventTypePubSub: - asyncEventType = pbconsole.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB + asyncEventType = pbtimeline.AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_AsyncExecute{ - AsyncExecute: &pbconsole.AsyncExecuteEvent{ + Entry: &pbtimeline.Event_AsyncExecute{ + AsyncExecute: &pbtimeline.AsyncExecuteEvent{ DeploymentKey: event.DeploymentKey.String(), RequestKey: requestKey, TimeStamp: timestamppb.New(event.Time), @@ -803,11 +806,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { requestKey = &r } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_PubsubPublish{ - PubsubPublish: &pbconsole.PubSubPublishEvent{ + Entry: &pbtimeline.Event_PubsubPublish{ + PubsubPublish: &pbtimeline.PubSubPublishEvent{ DeploymentKey: event.DeploymentKey.String(), RequestKey: requestKey, VerbRef: event.SourceVerb.ToProto().(*schemapb.Ref), //nolint:forcetypeassert @@ -833,11 +836,11 @@ func eventDALToProto(event timeline.Event) *pbconsole.Event { destVerbName = destVerb.Name } - return &pbconsole.Event{ + return &pbtimeline.Event{ TimeStamp: timestamppb.New(event.Time), Id: event.ID, - Entry: &pbconsole.Event_PubsubConsume{ - PubsubConsume: &pbconsole.PubSubConsumeEvent{ + Entry: &pbtimeline.Event_PubsubConsume{ + PubsubConsume: &pbtimeline.PubSubConsumeEvent{ DeploymentKey: event.DeploymentKey.String(), RequestKey: requestKey, DestVerbModule: &destVerbModule, diff --git a/backend/controller/encryption/integration_test.go b/backend/controller/encryption/integration_test.go index 248c4415ee..b2e2c03f17 100644 --- a/backend/controller/encryption/integration_test.go +++ b/backend/controller/encryption/integration_test.go @@ -10,6 +10,7 @@ import ( "github.com/TBD54566975/ftl/backend/controller/encryption/api" pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" + pbtimeline "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" in "github.com/TBD54566975/ftl/internal/integration" "github.com/TBD54566975/ftl/internal/log" "github.com/TBD54566975/ftl/internal/slices" @@ -43,8 +44,8 @@ func TestEncryptionForLogs(t *testing.T) { Limit: 10, })) assert.NoError(t, err, "could not get events") - _, ok := slices.Find(resp.Msg.Events, func(e *pbconsole.Event) bool { - call, ok := e.Entry.(*pbconsole.Event_Call) + _, ok := slices.Find(resp.Msg.Events, func(e *pbtimeline.Event) bool { + call, ok := e.Entry.(*pbtimeline.Event_Call) if !ok { return false } diff --git a/backend/protos/xyz/block/ftl/console/v1/console.pb.go b/backend/protos/xyz/block/ftl/console/v1/console.pb.go index 54e248196c..513123c628 100644 --- a/backend/protos/xyz/block/ftl/console/v1/console.pb.go +++ b/backend/protos/xyz/block/ftl/console/v1/console.pb.go @@ -8,7 +8,8 @@ package pbconsole import ( v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" - v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" + v12 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" @@ -24,1115 +25,53 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type EventType int32 - -const ( - EventType_EVENT_TYPE_UNSPECIFIED EventType = 0 - EventType_EVENT_TYPE_LOG EventType = 1 - EventType_EVENT_TYPE_CALL EventType = 2 - EventType_EVENT_TYPE_DEPLOYMENT_CREATED EventType = 3 - EventType_EVENT_TYPE_DEPLOYMENT_UPDATED EventType = 4 - EventType_EVENT_TYPE_INGRESS EventType = 5 - EventType_EVENT_TYPE_CRON_SCHEDULED EventType = 6 - EventType_EVENT_TYPE_ASYNC_EXECUTE EventType = 7 - EventType_EVENT_TYPE_PUBSUB_PUBLISH EventType = 8 - EventType_EVENT_TYPE_PUBSUB_CONSUME EventType = 9 -) - -// Enum value maps for EventType. -var ( - EventType_name = map[int32]string{ - 0: "EVENT_TYPE_UNSPECIFIED", - 1: "EVENT_TYPE_LOG", - 2: "EVENT_TYPE_CALL", - 3: "EVENT_TYPE_DEPLOYMENT_CREATED", - 4: "EVENT_TYPE_DEPLOYMENT_UPDATED", - 5: "EVENT_TYPE_INGRESS", - 6: "EVENT_TYPE_CRON_SCHEDULED", - 7: "EVENT_TYPE_ASYNC_EXECUTE", - 8: "EVENT_TYPE_PUBSUB_PUBLISH", - 9: "EVENT_TYPE_PUBSUB_CONSUME", - } - EventType_value = map[string]int32{ - "EVENT_TYPE_UNSPECIFIED": 0, - "EVENT_TYPE_LOG": 1, - "EVENT_TYPE_CALL": 2, - "EVENT_TYPE_DEPLOYMENT_CREATED": 3, - "EVENT_TYPE_DEPLOYMENT_UPDATED": 4, - "EVENT_TYPE_INGRESS": 5, - "EVENT_TYPE_CRON_SCHEDULED": 6, - "EVENT_TYPE_ASYNC_EXECUTE": 7, - "EVENT_TYPE_PUBSUB_PUBLISH": 8, - "EVENT_TYPE_PUBSUB_CONSUME": 9, - } -) - -func (x EventType) Enum() *EventType { - p := new(EventType) - *p = x - return p -} - -func (x EventType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (EventType) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_console_v1_console_proto_enumTypes[0].Descriptor() -} - -func (EventType) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[0] -} - -func (x EventType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use EventType.Descriptor instead. -func (EventType) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{0} -} - -type AsyncExecuteEventType int32 - -const ( - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED AsyncExecuteEventType = 0 - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON AsyncExecuteEventType = 1 - AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB AsyncExecuteEventType = 2 -) - -// Enum value maps for AsyncExecuteEventType. -var ( - AsyncExecuteEventType_name = map[int32]string{ - 0: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED", - 1: "ASYNC_EXECUTE_EVENT_TYPE_CRON", - 2: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB", - } - AsyncExecuteEventType_value = map[string]int32{ - "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED": 0, - "ASYNC_EXECUTE_EVENT_TYPE_CRON": 1, - "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB": 2, - } -) - -func (x AsyncExecuteEventType) Enum() *AsyncExecuteEventType { - p := new(AsyncExecuteEventType) - *p = x - return p -} - -func (x AsyncExecuteEventType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (AsyncExecuteEventType) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_console_v1_console_proto_enumTypes[1].Descriptor() -} - -func (AsyncExecuteEventType) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[1] -} - -func (x AsyncExecuteEventType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use AsyncExecuteEventType.Descriptor instead. -func (AsyncExecuteEventType) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{1} -} - -type LogLevel int32 - -const ( - LogLevel_LOG_LEVEL_UNSPECIFIED LogLevel = 0 - LogLevel_LOG_LEVEL_TRACE LogLevel = 1 - LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 - LogLevel_LOG_LEVEL_INFO LogLevel = 9 - LogLevel_LOG_LEVEL_WARN LogLevel = 13 - LogLevel_LOG_LEVEL_ERROR LogLevel = 17 -) - -// Enum value maps for LogLevel. -var ( - LogLevel_name = map[int32]string{ - 0: "LOG_LEVEL_UNSPECIFIED", - 1: "LOG_LEVEL_TRACE", - 5: "LOG_LEVEL_DEBUG", - 9: "LOG_LEVEL_INFO", - 13: "LOG_LEVEL_WARN", - 17: "LOG_LEVEL_ERROR", - } - LogLevel_value = map[string]int32{ - "LOG_LEVEL_UNSPECIFIED": 0, - "LOG_LEVEL_TRACE": 1, - "LOG_LEVEL_DEBUG": 5, - "LOG_LEVEL_INFO": 9, - "LOG_LEVEL_WARN": 13, - "LOG_LEVEL_ERROR": 17, - } -) - -func (x LogLevel) Enum() *LogLevel { - p := new(LogLevel) - *p = x - return p -} - -func (x LogLevel) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (LogLevel) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_console_v1_console_proto_enumTypes[2].Descriptor() -} - -func (LogLevel) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[2] -} - -func (x LogLevel) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use LogLevel.Descriptor instead. -func (LogLevel) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{2} -} - -type GetEventsRequest_Order int32 - -const ( - GetEventsRequest_ORDER_UNSPECIFIED GetEventsRequest_Order = 0 - GetEventsRequest_ORDER_ASC GetEventsRequest_Order = 1 - GetEventsRequest_ORDER_DESC GetEventsRequest_Order = 2 -) - -// Enum value maps for GetEventsRequest_Order. -var ( - GetEventsRequest_Order_name = map[int32]string{ - 0: "ORDER_UNSPECIFIED", - 1: "ORDER_ASC", - 2: "ORDER_DESC", - } - GetEventsRequest_Order_value = map[string]int32{ - "ORDER_UNSPECIFIED": 0, - "ORDER_ASC": 1, - "ORDER_DESC": 2, - } -) - -func (x GetEventsRequest_Order) Enum() *GetEventsRequest_Order { - p := new(GetEventsRequest_Order) - *p = x - return p -} - -func (x GetEventsRequest_Order) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GetEventsRequest_Order) Descriptor() protoreflect.EnumDescriptor { - return file_xyz_block_ftl_console_v1_console_proto_enumTypes[3].Descriptor() -} - -func (GetEventsRequest_Order) Type() protoreflect.EnumType { - return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[3] -} - -func (x GetEventsRequest_Order) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use GetEventsRequest_Order.Descriptor instead. -func (GetEventsRequest_Order) EnumDescriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 0} -} - -type LogEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - LogLevel int32 `protobuf:"varint,4,opt,name=log_level,json=logLevel,proto3" json:"log_level,omitempty"` - Attributes map[string]string `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` - Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` - Stack *string `protobuf:"bytes,8,opt,name=stack,proto3,oneof" json:"stack,omitempty"` -} - -func (x *LogEvent) Reset() { - *x = LogEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogEvent) ProtoMessage() {} - -func (x *LogEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] - 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 LogEvent.ProtoReflect.Descriptor instead. -func (*LogEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{0} -} - -func (x *LogEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *LogEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey - } - return "" -} - -func (x *LogEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *LogEvent) GetLogLevel() int32 { - if x != nil { - return x.LogLevel - } - return 0 -} - -func (x *LogEvent) GetAttributes() map[string]string { - if x != nil { - return x.Attributes - } - return nil -} - -func (x *LogEvent) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *LogEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -func (x *LogEvent) GetStack() string { - if x != nil && x.Stack != nil { - return *x.Stack - } - return "" -} - -type CallEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RequestKey *string `protobuf:"bytes,1,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - DeploymentKey string `protobuf:"bytes,2,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - SourceVerbRef *v1.Ref `protobuf:"bytes,11,opt,name=source_verb_ref,json=sourceVerbRef,proto3,oneof" json:"source_verb_ref,omitempty"` - DestinationVerbRef *v1.Ref `protobuf:"bytes,12,opt,name=destination_verb_ref,json=destinationVerbRef,proto3" json:"destination_verb_ref,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"` - Request string `protobuf:"bytes,7,opt,name=request,proto3" json:"request,omitempty"` - Response string `protobuf:"bytes,8,opt,name=response,proto3" json:"response,omitempty"` - Error *string `protobuf:"bytes,9,opt,name=error,proto3,oneof" json:"error,omitempty"` - Stack *string `protobuf:"bytes,10,opt,name=stack,proto3,oneof" json:"stack,omitempty"` -} - -func (x *CallEvent) Reset() { - *x = CallEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CallEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CallEvent) ProtoMessage() {} - -func (x *CallEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] - 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 CallEvent.ProtoReflect.Descriptor instead. -func (*CallEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{1} -} - -func (x *CallEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey - } - return "" -} - -func (x *CallEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *CallEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *CallEvent) GetSourceVerbRef() *v1.Ref { - if x != nil { - return x.SourceVerbRef - } - return nil -} - -func (x *CallEvent) GetDestinationVerbRef() *v1.Ref { - if x != nil { - return x.DestinationVerbRef - } - return nil -} - -func (x *CallEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *CallEvent) GetRequest() string { - if x != nil { - return x.Request - } - return "" -} - -func (x *CallEvent) GetResponse() string { - if x != nil { - return x.Response - } - return "" -} - -func (x *CallEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -func (x *CallEvent) GetStack() string { - if x != nil && x.Stack != nil { - return *x.Stack - } - return "" -} - -type DeploymentCreatedEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` - ModuleName string `protobuf:"bytes,3,opt,name=module_name,json=moduleName,proto3" json:"module_name,omitempty"` - MinReplicas int32 `protobuf:"varint,4,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` - Replaced *string `protobuf:"bytes,5,opt,name=replaced,proto3,oneof" json:"replaced,omitempty"` -} - -func (x *DeploymentCreatedEvent) Reset() { - *x = DeploymentCreatedEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeploymentCreatedEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeploymentCreatedEvent) ProtoMessage() {} - -func (x *DeploymentCreatedEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] - 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 DeploymentCreatedEvent.ProtoReflect.Descriptor instead. -func (*DeploymentCreatedEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{2} -} - -func (x *DeploymentCreatedEvent) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *DeploymentCreatedEvent) GetLanguage() string { - if x != nil { - return x.Language - } - return "" -} - -func (x *DeploymentCreatedEvent) GetModuleName() string { - if x != nil { - return x.ModuleName - } - return "" -} - -func (x *DeploymentCreatedEvent) GetMinReplicas() int32 { - if x != nil { - return x.MinReplicas - } - return 0 -} - -func (x *DeploymentCreatedEvent) GetReplaced() string { - if x != nil && x.Replaced != nil { - return *x.Replaced - } - return "" -} - -type DeploymentUpdatedEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - MinReplicas int32 `protobuf:"varint,2,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` - PrevMinReplicas int32 `protobuf:"varint,3,opt,name=prev_min_replicas,json=prevMinReplicas,proto3" json:"prev_min_replicas,omitempty"` -} - -func (x *DeploymentUpdatedEvent) Reset() { - *x = DeploymentUpdatedEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeploymentUpdatedEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeploymentUpdatedEvent) ProtoMessage() {} - -func (x *DeploymentUpdatedEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] - 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 DeploymentUpdatedEvent.ProtoReflect.Descriptor instead. -func (*DeploymentUpdatedEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{3} -} - -func (x *DeploymentUpdatedEvent) GetKey() string { - if x != nil { - return x.Key - } - return "" -} - -func (x *DeploymentUpdatedEvent) GetMinReplicas() int32 { - if x != nil { - return x.MinReplicas - } - return 0 -} - -func (x *DeploymentUpdatedEvent) GetPrevMinReplicas() int32 { - if x != nil { - return x.PrevMinReplicas - } - return 0 -} - -type IngressEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` - Method string `protobuf:"bytes,4,opt,name=method,proto3" json:"method,omitempty"` - Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` - StatusCode int32 `protobuf:"varint,7,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,9,opt,name=duration,proto3" json:"duration,omitempty"` - Request string `protobuf:"bytes,10,opt,name=request,proto3" json:"request,omitempty"` - RequestHeader string `protobuf:"bytes,11,opt,name=request_header,json=requestHeader,proto3" json:"request_header,omitempty"` - Response string `protobuf:"bytes,12,opt,name=response,proto3" json:"response,omitempty"` - ResponseHeader string `protobuf:"bytes,13,opt,name=response_header,json=responseHeader,proto3" json:"response_header,omitempty"` - Error *string `protobuf:"bytes,14,opt,name=error,proto3,oneof" json:"error,omitempty"` -} - -func (x *IngressEvent) Reset() { - *x = IngressEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *IngressEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IngressEvent) ProtoMessage() {} - -func (x *IngressEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] - 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 IngressEvent.ProtoReflect.Descriptor instead. -func (*IngressEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{4} -} - -func (x *IngressEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *IngressEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey - } - return "" -} - -func (x *IngressEvent) GetVerbRef() *v1.Ref { - if x != nil { - return x.VerbRef - } - return nil -} - -func (x *IngressEvent) GetMethod() string { - if x != nil { - return x.Method - } - return "" -} - -func (x *IngressEvent) GetPath() string { - if x != nil { - return x.Path - } - return "" -} - -func (x *IngressEvent) GetStatusCode() int32 { - if x != nil { - return x.StatusCode - } - return 0 -} - -func (x *IngressEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *IngressEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *IngressEvent) GetRequest() string { - if x != nil { - return x.Request - } - return "" -} - -func (x *IngressEvent) GetRequestHeader() string { - if x != nil { - return x.RequestHeader - } - return "" -} - -func (x *IngressEvent) GetResponse() string { - if x != nil { - return x.Response - } - return "" -} - -func (x *IngressEvent) GetResponseHeader() string { - if x != nil { - return x.ResponseHeader - } - return "" -} - -func (x *IngressEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -type CronScheduledEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - VerbRef *v1.Ref `protobuf:"bytes,2,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` - ScheduledAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` - Schedule string `protobuf:"bytes,6,opt,name=schedule,proto3" json:"schedule,omitempty"` - Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` -} - -func (x *CronScheduledEvent) Reset() { - *x = CronScheduledEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CronScheduledEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CronScheduledEvent) ProtoMessage() {} - -func (x *CronScheduledEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] - 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 CronScheduledEvent.ProtoReflect.Descriptor instead. -func (*CronScheduledEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{5} -} - -func (x *CronScheduledEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *CronScheduledEvent) GetVerbRef() *v1.Ref { - if x != nil { - return x.VerbRef - } - return nil -} - -func (x *CronScheduledEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *CronScheduledEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *CronScheduledEvent) GetScheduledAt() *timestamppb.Timestamp { - if x != nil { - return x.ScheduledAt - } - return nil -} - -func (x *CronScheduledEvent) GetSchedule() string { - if x != nil { - return x.Schedule - } - return "" -} - -func (x *CronScheduledEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -type AsyncExecuteEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` - AsyncEventType AsyncExecuteEventType `protobuf:"varint,6,opt,name=async_event_type,json=asyncEventType,proto3,enum=xyz.block.ftl.console.v1.AsyncExecuteEventType" json:"async_event_type,omitempty"` - Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` -} - -func (x *AsyncExecuteEvent) Reset() { - *x = AsyncExecuteEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AsyncExecuteEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AsyncExecuteEvent) ProtoMessage() {} - -func (x *AsyncExecuteEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] - 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 AsyncExecuteEvent.ProtoReflect.Descriptor instead. -func (*AsyncExecuteEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{6} -} - -func (x *AsyncExecuteEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *AsyncExecuteEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey - } - return "" -} - -func (x *AsyncExecuteEvent) GetVerbRef() *v1.Ref { - if x != nil { - return x.VerbRef - } - return nil -} - -func (x *AsyncExecuteEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *AsyncExecuteEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *AsyncExecuteEvent) GetAsyncEventType() AsyncExecuteEventType { - if x != nil { - return x.AsyncEventType - } - return AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED -} - -func (x *AsyncExecuteEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -type PubSubPublishEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` - Topic string `protobuf:"bytes,6,opt,name=topic,proto3" json:"topic,omitempty"` - Request string `protobuf:"bytes,7,opt,name=request,proto3" json:"request,omitempty"` - Error *string `protobuf:"bytes,8,opt,name=error,proto3,oneof" json:"error,omitempty"` -} - -func (x *PubSubPublishEvent) Reset() { - *x = PubSubPublishEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PubSubPublishEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PubSubPublishEvent) ProtoMessage() {} - -func (x *PubSubPublishEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] - 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 PubSubPublishEvent.ProtoReflect.Descriptor instead. -func (*PubSubPublishEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{7} -} - -func (x *PubSubPublishEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey - } - return "" -} - -func (x *PubSubPublishEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey - } - return "" -} - -func (x *PubSubPublishEvent) GetVerbRef() *v1.Ref { - if x != nil { - return x.VerbRef - } - return nil -} - -func (x *PubSubPublishEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *PubSubPublishEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *PubSubPublishEvent) GetTopic() string { - if x != nil { - return x.Topic - } - return "" -} - -func (x *PubSubPublishEvent) GetRequest() string { - if x != nil { - return x.Request - } - return "" -} - -func (x *PubSubPublishEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" -} - -type PubSubConsumeEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` - RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` - DestVerbModule *string `protobuf:"bytes,3,opt,name=dest_verb_module,json=destVerbModule,proto3,oneof" json:"dest_verb_module,omitempty"` - DestVerbName *string `protobuf:"bytes,4,opt,name=dest_verb_name,json=destVerbName,proto3,oneof" json:"dest_verb_name,omitempty"` - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"` - Topic string `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` - Error *string `protobuf:"bytes,8,opt,name=error,proto3,oneof" json:"error,omitempty"` -} - -func (x *PubSubConsumeEvent) Reset() { - *x = PubSubConsumeEvent{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PubSubConsumeEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PubSubConsumeEvent) ProtoMessage() {} - -func (x *PubSubConsumeEvent) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} +type GetEventsRequest_Order int32 -// Deprecated: Use PubSubConsumeEvent.ProtoReflect.Descriptor instead. -func (*PubSubConsumeEvent) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{8} -} +const ( + GetEventsRequest_ORDER_UNSPECIFIED GetEventsRequest_Order = 0 + GetEventsRequest_ORDER_ASC GetEventsRequest_Order = 1 + GetEventsRequest_ORDER_DESC GetEventsRequest_Order = 2 +) -func (x *PubSubConsumeEvent) GetDeploymentKey() string { - if x != nil { - return x.DeploymentKey +// Enum value maps for GetEventsRequest_Order. +var ( + GetEventsRequest_Order_name = map[int32]string{ + 0: "ORDER_UNSPECIFIED", + 1: "ORDER_ASC", + 2: "ORDER_DESC", } - return "" -} - -func (x *PubSubConsumeEvent) GetRequestKey() string { - if x != nil && x.RequestKey != nil { - return *x.RequestKey + GetEventsRequest_Order_value = map[string]int32{ + "ORDER_UNSPECIFIED": 0, + "ORDER_ASC": 1, + "ORDER_DESC": 2, } - return "" -} +) -func (x *PubSubConsumeEvent) GetDestVerbModule() string { - if x != nil && x.DestVerbModule != nil { - return *x.DestVerbModule - } - return "" +func (x GetEventsRequest_Order) Enum() *GetEventsRequest_Order { + p := new(GetEventsRequest_Order) + *p = x + return p } -func (x *PubSubConsumeEvent) GetDestVerbName() string { - if x != nil && x.DestVerbName != nil { - return *x.DestVerbName - } - return "" +func (x GetEventsRequest_Order) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *PubSubConsumeEvent) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil +func (GetEventsRequest_Order) Descriptor() protoreflect.EnumDescriptor { + return file_xyz_block_ftl_console_v1_console_proto_enumTypes[0].Descriptor() } -func (x *PubSubConsumeEvent) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil +func (GetEventsRequest_Order) Type() protoreflect.EnumType { + return &file_xyz_block_ftl_console_v1_console_proto_enumTypes[0] } -func (x *PubSubConsumeEvent) GetTopic() string { - if x != nil { - return x.Topic - } - return "" +func (x GetEventsRequest_Order) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *PubSubConsumeEvent) GetError() string { - if x != nil && x.Error != nil { - return *x.Error - } - return "" +// Deprecated: Use GetEventsRequest_Order.Descriptor instead. +func (GetEventsRequest_Order) EnumDescriptor() ([]byte, []int) { + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 0} } type Config struct { @@ -1146,7 +85,7 @@ type Config struct { func (x *Config) Reset() { *x = Config{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1158,7 +97,7 @@ func (x *Config) String() string { func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1171,7 +110,7 @@ func (x *Config) ProtoReflect() protoreflect.Message { // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{9} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{0} } func (x *Config) GetConfig() *v1.Config { @@ -1200,7 +139,7 @@ type Data struct { func (x *Data) Reset() { *x = Data{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1212,7 +151,7 @@ func (x *Data) String() string { func (*Data) ProtoMessage() {} func (x *Data) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1225,7 +164,7 @@ func (x *Data) ProtoReflect() protoreflect.Message { // Deprecated: Use Data.ProtoReflect.Descriptor instead. func (*Data) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{10} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{1} } func (x *Data) GetData() *v1.Data { @@ -1260,7 +199,7 @@ type Database struct { func (x *Database) Reset() { *x = Database{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1272,7 +211,7 @@ func (x *Database) String() string { func (*Database) ProtoMessage() {} func (x *Database) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1285,7 +224,7 @@ func (x *Database) ProtoReflect() protoreflect.Message { // Deprecated: Use Database.ProtoReflect.Descriptor instead. func (*Database) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{11} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{2} } func (x *Database) GetDatabase() *v1.Database { @@ -1313,7 +252,7 @@ type Enum struct { func (x *Enum) Reset() { *x = Enum{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1325,7 +264,7 @@ func (x *Enum) String() string { func (*Enum) ProtoMessage() {} func (x *Enum) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1338,7 +277,7 @@ func (x *Enum) ProtoReflect() protoreflect.Message { // Deprecated: Use Enum.ProtoReflect.Descriptor instead. func (*Enum) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{12} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{3} } func (x *Enum) GetEnum() *v1.Enum { @@ -1366,7 +305,7 @@ type Topic struct { func (x *Topic) Reset() { *x = Topic{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1378,7 +317,7 @@ func (x *Topic) String() string { func (*Topic) ProtoMessage() {} func (x *Topic) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1391,7 +330,7 @@ func (x *Topic) ProtoReflect() protoreflect.Message { // Deprecated: Use Topic.ProtoReflect.Descriptor instead. func (*Topic) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{13} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{4} } func (x *Topic) GetTopic() *v1.Topic { @@ -1419,7 +358,7 @@ type TypeAlias struct { func (x *TypeAlias) Reset() { *x = TypeAlias{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1431,7 +370,7 @@ func (x *TypeAlias) String() string { func (*TypeAlias) ProtoMessage() {} func (x *TypeAlias) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1444,7 +383,7 @@ func (x *TypeAlias) ProtoReflect() protoreflect.Message { // Deprecated: Use TypeAlias.ProtoReflect.Descriptor instead. func (*TypeAlias) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{14} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{5} } func (x *TypeAlias) GetTypealias() *v1.TypeAlias { @@ -1472,7 +411,7 @@ type Secret struct { func (x *Secret) Reset() { *x = Secret{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1484,7 +423,7 @@ func (x *Secret) String() string { func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1497,7 +436,7 @@ func (x *Secret) ProtoReflect() protoreflect.Message { // Deprecated: Use Secret.ProtoReflect.Descriptor instead. func (*Secret) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{6} } func (x *Secret) GetSecret() *v1.Secret { @@ -1527,7 +466,7 @@ type Verb struct { func (x *Verb) Reset() { *x = Verb{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1539,7 +478,7 @@ func (x *Verb) String() string { func (*Verb) ProtoMessage() {} func (x *Verb) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1552,7 +491,7 @@ func (x *Verb) ProtoReflect() protoreflect.Message { // Deprecated: Use Verb.ProtoReflect.Descriptor instead. func (*Verb) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{16} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{7} } func (x *Verb) GetVerb() *v1.Verb { @@ -1604,7 +543,7 @@ type Module struct { func (x *Module) Reset() { *x = Module{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1616,7 +555,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1629,7 +568,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{17} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{8} } func (x *Module) GetName() string { @@ -1726,7 +665,7 @@ type TopologyGroup struct { func (x *TopologyGroup) Reset() { *x = TopologyGroup{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1738,7 +677,7 @@ func (x *TopologyGroup) String() string { func (*TopologyGroup) ProtoMessage() {} func (x *TopologyGroup) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1751,7 +690,7 @@ func (x *TopologyGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use TopologyGroup.ProtoReflect.Descriptor instead. func (*TopologyGroup) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{18} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{9} } func (x *TopologyGroup) GetModules() []string { @@ -1771,7 +710,7 @@ type Topology struct { func (x *Topology) Reset() { *x = Topology{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1783,7 +722,7 @@ func (x *Topology) String() string { func (*Topology) ProtoMessage() {} func (x *Topology) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1796,7 +735,7 @@ func (x *Topology) ProtoReflect() protoreflect.Message { // Deprecated: Use Topology.ProtoReflect.Descriptor instead. func (*Topology) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{19} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{10} } func (x *Topology) GetLevels() []*TopologyGroup { @@ -1814,7 +753,7 @@ type GetModulesRequest struct { func (x *GetModulesRequest) Reset() { *x = GetModulesRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1826,7 +765,7 @@ func (x *GetModulesRequest) String() string { func (*GetModulesRequest) ProtoMessage() {} func (x *GetModulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1839,7 +778,7 @@ func (x *GetModulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModulesRequest.ProtoReflect.Descriptor instead. func (*GetModulesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{20} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{11} } type GetModulesResponse struct { @@ -1853,7 +792,7 @@ type GetModulesResponse struct { func (x *GetModulesResponse) Reset() { *x = GetModulesResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1865,7 +804,7 @@ func (x *GetModulesResponse) String() string { func (*GetModulesResponse) ProtoMessage() {} func (x *GetModulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1878,7 +817,7 @@ func (x *GetModulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetModulesResponse.ProtoReflect.Descriptor instead. func (*GetModulesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{21} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{12} } func (x *GetModulesResponse) GetModules() []*Module { @@ -1903,7 +842,7 @@ type StreamModulesRequest struct { func (x *StreamModulesRequest) Reset() { *x = StreamModulesRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1915,7 +854,7 @@ func (x *StreamModulesRequest) String() string { func (*StreamModulesRequest) ProtoMessage() {} func (x *StreamModulesRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,7 +867,7 @@ func (x *StreamModulesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamModulesRequest.ProtoReflect.Descriptor instead. func (*StreamModulesRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{22} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{13} } type StreamModulesResponse struct { @@ -1942,7 +881,7 @@ type StreamModulesResponse struct { func (x *StreamModulesResponse) Reset() { *x = StreamModulesResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1954,7 +893,7 @@ func (x *StreamModulesResponse) String() string { func (*StreamModulesResponse) ProtoMessage() {} func (x *StreamModulesResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1967,7 +906,7 @@ func (x *StreamModulesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamModulesResponse.ProtoReflect.Descriptor instead. func (*StreamModulesResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{23} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{14} } func (x *StreamModulesResponse) GetModules() []*Module { @@ -1997,7 +936,7 @@ type GetEventsRequest struct { func (x *GetEventsRequest) Reset() { *x = GetEventsRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2009,7 +948,7 @@ func (x *GetEventsRequest) String() string { func (*GetEventsRequest) ProtoMessage() {} func (x *GetEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2022,7 +961,7 @@ func (x *GetEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest.ProtoReflect.Descriptor instead. func (*GetEventsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15} } func (x *GetEventsRequest) GetFilters() []*GetEventsRequest_Filter { @@ -2051,14 +990,14 @@ type GetEventsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + Events []*v11.Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` // For pagination, this cursor is where we should start our next query Cursor *int64 `protobuf:"varint,2,opt,name=cursor,proto3,oneof" json:"cursor,omitempty"` } func (x *GetEventsResponse) Reset() { *x = GetEventsResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2070,7 +1009,7 @@ func (x *GetEventsResponse) String() string { func (*GetEventsResponse) ProtoMessage() {} func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2083,10 +1022,10 @@ func (x *GetEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsResponse.ProtoReflect.Descriptor instead. func (*GetEventsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{25} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{16} } -func (x *GetEventsResponse) GetEvents() []*Event { +func (x *GetEventsResponse) GetEvents() []*v11.Event { if x != nil { return x.Events } @@ -2111,7 +1050,7 @@ type GetConfigRequest struct { func (x *GetConfigRequest) Reset() { *x = GetConfigRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2123,7 +1062,7 @@ func (x *GetConfigRequest) String() string { func (*GetConfigRequest) ProtoMessage() {} func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2136,7 +1075,7 @@ func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. func (*GetConfigRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{26} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{17} } func (x *GetConfigRequest) GetName() string { @@ -2163,7 +1102,7 @@ type GetConfigResponse struct { func (x *GetConfigResponse) Reset() { *x = GetConfigResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2175,7 +1114,7 @@ func (x *GetConfigResponse) String() string { func (*GetConfigResponse) ProtoMessage() {} func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2188,7 +1127,7 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. func (*GetConfigResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{27} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{18} } func (x *GetConfigResponse) GetValue() []byte { @@ -2210,7 +1149,7 @@ type SetConfigRequest struct { func (x *SetConfigRequest) Reset() { *x = SetConfigRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2222,7 +1161,7 @@ func (x *SetConfigRequest) String() string { func (*SetConfigRequest) ProtoMessage() {} func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2235,7 +1174,7 @@ func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{28} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{19} } func (x *SetConfigRequest) GetName() string { @@ -2269,7 +1208,7 @@ type SetConfigResponse struct { func (x *SetConfigResponse) Reset() { *x = SetConfigResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2281,7 +1220,7 @@ func (x *SetConfigResponse) String() string { func (*SetConfigResponse) ProtoMessage() {} func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2294,7 +1233,7 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{29} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{20} } func (x *SetConfigResponse) GetValue() []byte { @@ -2315,7 +1254,7 @@ type GetSecretRequest struct { func (x *GetSecretRequest) Reset() { *x = GetSecretRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2327,7 +1266,7 @@ func (x *GetSecretRequest) String() string { func (*GetSecretRequest) ProtoMessage() {} func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2340,7 +1279,7 @@ func (x *GetSecretRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretRequest.ProtoReflect.Descriptor instead. func (*GetSecretRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{30} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{21} } func (x *GetSecretRequest) GetName() string { @@ -2367,7 +1306,7 @@ type GetSecretResponse struct { func (x *GetSecretResponse) Reset() { *x = GetSecretResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2379,7 +1318,7 @@ func (x *GetSecretResponse) String() string { func (*GetSecretResponse) ProtoMessage() {} func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2392,7 +1331,7 @@ func (x *GetSecretResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSecretResponse.ProtoReflect.Descriptor instead. func (*GetSecretResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{31} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{22} } func (x *GetSecretResponse) GetValue() []byte { @@ -2414,7 +1353,7 @@ type SetSecretRequest struct { func (x *SetSecretRequest) Reset() { *x = SetSecretRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2426,7 +1365,7 @@ func (x *SetSecretRequest) String() string { func (*SetSecretRequest) ProtoMessage() {} func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2439,7 +1378,7 @@ func (x *SetSecretRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetSecretRequest.ProtoReflect.Descriptor instead. func (*SetSecretRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{32} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{23} } func (x *SetSecretRequest) GetName() string { @@ -2473,7 +1412,7 @@ type SetSecretResponse struct { func (x *SetSecretResponse) Reset() { *x = SetSecretResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2485,7 +1424,7 @@ func (x *SetSecretResponse) String() string { func (*SetSecretResponse) ProtoMessage() {} func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2498,7 +1437,7 @@ func (x *SetSecretResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetSecretResponse.ProtoReflect.Descriptor instead. func (*SetSecretResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{33} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24} } func (x *SetSecretResponse) GetValue() []byte { @@ -2519,7 +1458,7 @@ type StreamEventsRequest struct { func (x *StreamEventsRequest) Reset() { *x = StreamEventsRequest{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2531,7 +1470,7 @@ func (x *StreamEventsRequest) String() string { func (*StreamEventsRequest) ProtoMessage() {} func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2544,7 +1483,7 @@ func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamEventsRequest.ProtoReflect.Descriptor instead. func (*StreamEventsRequest) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{34} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{25} } func (x *StreamEventsRequest) GetUpdateInterval() *durationpb.Duration { @@ -2566,12 +1505,12 @@ type StreamEventsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + Events []*v11.Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` } func (x *StreamEventsResponse) Reset() { *x = StreamEventsResponse{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2583,7 +1522,7 @@ func (x *StreamEventsResponse) String() string { func (*StreamEventsResponse) ProtoMessage() {} func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2596,210 +1535,16 @@ func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamEventsResponse.ProtoReflect.Descriptor instead. func (*StreamEventsResponse) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{35} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{26} } -func (x *StreamEventsResponse) GetEvents() []*Event { +func (x *StreamEventsResponse) GetEvents() []*v11.Event { if x != nil { return x.Events } return nil } -type Event struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TimeStamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` - // Unique ID for event. - Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` - // Types that are assignable to Entry: - // - // *Event_Log - // *Event_Call - // *Event_DeploymentCreated - // *Event_DeploymentUpdated - // *Event_Ingress - // *Event_CronScheduled - // *Event_AsyncExecute - // *Event_PubsubPublish - // *Event_PubsubConsume - Entry isEvent_Entry `protobuf_oneof:"entry"` -} - -func (x *Event) Reset() { - *x = Event{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Event) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Event) ProtoMessage() {} - -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] - 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 Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{36} -} - -func (x *Event) GetTimeStamp() *timestamppb.Timestamp { - if x != nil { - return x.TimeStamp - } - return nil -} - -func (x *Event) GetId() int64 { - if x != nil { - return x.Id - } - return 0 -} - -func (m *Event) GetEntry() isEvent_Entry { - if m != nil { - return m.Entry - } - return nil -} - -func (x *Event) GetLog() *LogEvent { - if x, ok := x.GetEntry().(*Event_Log); ok { - return x.Log - } - return nil -} - -func (x *Event) GetCall() *CallEvent { - if x, ok := x.GetEntry().(*Event_Call); ok { - return x.Call - } - return nil -} - -func (x *Event) GetDeploymentCreated() *DeploymentCreatedEvent { - if x, ok := x.GetEntry().(*Event_DeploymentCreated); ok { - return x.DeploymentCreated - } - return nil -} - -func (x *Event) GetDeploymentUpdated() *DeploymentUpdatedEvent { - if x, ok := x.GetEntry().(*Event_DeploymentUpdated); ok { - return x.DeploymentUpdated - } - return nil -} - -func (x *Event) GetIngress() *IngressEvent { - if x, ok := x.GetEntry().(*Event_Ingress); ok { - return x.Ingress - } - return nil -} - -func (x *Event) GetCronScheduled() *CronScheduledEvent { - if x, ok := x.GetEntry().(*Event_CronScheduled); ok { - return x.CronScheduled - } - return nil -} - -func (x *Event) GetAsyncExecute() *AsyncExecuteEvent { - if x, ok := x.GetEntry().(*Event_AsyncExecute); ok { - return x.AsyncExecute - } - return nil -} - -func (x *Event) GetPubsubPublish() *PubSubPublishEvent { - if x, ok := x.GetEntry().(*Event_PubsubPublish); ok { - return x.PubsubPublish - } - return nil -} - -func (x *Event) GetPubsubConsume() *PubSubConsumeEvent { - if x, ok := x.GetEntry().(*Event_PubsubConsume); ok { - return x.PubsubConsume - } - return nil -} - -type isEvent_Entry interface { - isEvent_Entry() -} - -type Event_Log struct { - Log *LogEvent `protobuf:"bytes,3,opt,name=log,proto3,oneof"` -} - -type Event_Call struct { - Call *CallEvent `protobuf:"bytes,4,opt,name=call,proto3,oneof"` -} - -type Event_DeploymentCreated struct { - DeploymentCreated *DeploymentCreatedEvent `protobuf:"bytes,5,opt,name=deployment_created,json=deploymentCreated,proto3,oneof"` -} - -type Event_DeploymentUpdated struct { - DeploymentUpdated *DeploymentUpdatedEvent `protobuf:"bytes,6,opt,name=deployment_updated,json=deploymentUpdated,proto3,oneof"` -} - -type Event_Ingress struct { - Ingress *IngressEvent `protobuf:"bytes,7,opt,name=ingress,proto3,oneof"` -} - -type Event_CronScheduled struct { - CronScheduled *CronScheduledEvent `protobuf:"bytes,8,opt,name=cron_scheduled,json=cronScheduled,proto3,oneof"` -} - -type Event_AsyncExecute struct { - AsyncExecute *AsyncExecuteEvent `protobuf:"bytes,9,opt,name=async_execute,json=asyncExecute,proto3,oneof"` -} - -type Event_PubsubPublish struct { - PubsubPublish *PubSubPublishEvent `protobuf:"bytes,10,opt,name=pubsub_publish,json=pubsubPublish,proto3,oneof"` -} - -type Event_PubsubConsume struct { - PubsubConsume *PubSubConsumeEvent `protobuf:"bytes,11,opt,name=pubsub_consume,json=pubsubConsume,proto3,oneof"` -} - -func (*Event_Log) isEvent_Entry() {} - -func (*Event_Call) isEvent_Entry() {} - -func (*Event_DeploymentCreated) isEvent_Entry() {} - -func (*Event_DeploymentUpdated) isEvent_Entry() {} - -func (*Event_Ingress) isEvent_Entry() {} - -func (*Event_CronScheduled) isEvent_Entry() {} - -func (*Event_AsyncExecute) isEvent_Entry() {} - -func (*Event_PubsubPublish) isEvent_Entry() {} - -func (*Event_PubsubConsume) isEvent_Entry() {} - // Limit the number of events returned. type GetEventsRequest_LimitFilter struct { state protoimpl.MessageState @@ -2811,7 +1556,7 @@ type GetEventsRequest_LimitFilter struct { func (x *GetEventsRequest_LimitFilter) Reset() { *x = GetEventsRequest_LimitFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[38] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2823,7 +1568,7 @@ func (x *GetEventsRequest_LimitFilter) String() string { func (*GetEventsRequest_LimitFilter) ProtoMessage() {} func (x *GetEventsRequest_LimitFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[38] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2836,7 +1581,7 @@ func (x *GetEventsRequest_LimitFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_LimitFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_LimitFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 0} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 0} } func (x *GetEventsRequest_LimitFilter) GetLimit() int32 { @@ -2852,12 +1597,12 @@ type GetEventsRequest_LogLevelFilter struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LogLevel LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=xyz.block.ftl.console.v1.LogLevel" json:"log_level,omitempty"` + LogLevel v11.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=xyz.block.ftl.timeline.v1.LogLevel" json:"log_level,omitempty"` } func (x *GetEventsRequest_LogLevelFilter) Reset() { *x = GetEventsRequest_LogLevelFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[39] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2869,7 +1614,7 @@ func (x *GetEventsRequest_LogLevelFilter) String() string { func (*GetEventsRequest_LogLevelFilter) ProtoMessage() {} func (x *GetEventsRequest_LogLevelFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[39] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2882,14 +1627,14 @@ func (x *GetEventsRequest_LogLevelFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_LogLevelFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_LogLevelFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 1} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 1} } -func (x *GetEventsRequest_LogLevelFilter) GetLogLevel() LogLevel { +func (x *GetEventsRequest_LogLevelFilter) GetLogLevel() v11.LogLevel { if x != nil { return x.LogLevel } - return LogLevel_LOG_LEVEL_UNSPECIFIED + return v11.LogLevel(0) } // Filters events by deployment key. @@ -2903,7 +1648,7 @@ type GetEventsRequest_DeploymentFilter struct { func (x *GetEventsRequest_DeploymentFilter) Reset() { *x = GetEventsRequest_DeploymentFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[40] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2915,7 +1660,7 @@ func (x *GetEventsRequest_DeploymentFilter) String() string { func (*GetEventsRequest_DeploymentFilter) ProtoMessage() {} func (x *GetEventsRequest_DeploymentFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[40] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2928,7 +1673,7 @@ func (x *GetEventsRequest_DeploymentFilter) ProtoReflect() protoreflect.Message // Deprecated: Use GetEventsRequest_DeploymentFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_DeploymentFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 2} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 2} } func (x *GetEventsRequest_DeploymentFilter) GetDeployments() []string { @@ -2949,7 +1694,7 @@ type GetEventsRequest_RequestFilter struct { func (x *GetEventsRequest_RequestFilter) Reset() { *x = GetEventsRequest_RequestFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[41] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2961,7 +1706,7 @@ func (x *GetEventsRequest_RequestFilter) String() string { func (*GetEventsRequest_RequestFilter) ProtoMessage() {} func (x *GetEventsRequest_RequestFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[41] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2974,7 +1719,7 @@ func (x *GetEventsRequest_RequestFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_RequestFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_RequestFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 3} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 3} } func (x *GetEventsRequest_RequestFilter) GetRequests() []string { @@ -2990,12 +1735,12 @@ type GetEventsRequest_EventTypeFilter struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EventTypes []EventType `protobuf:"varint,1,rep,packed,name=event_types,json=eventTypes,proto3,enum=xyz.block.ftl.console.v1.EventType" json:"event_types,omitempty"` + EventTypes []v11.EventType `protobuf:"varint,1,rep,packed,name=event_types,json=eventTypes,proto3,enum=xyz.block.ftl.timeline.v1.EventType" json:"event_types,omitempty"` } func (x *GetEventsRequest_EventTypeFilter) Reset() { *x = GetEventsRequest_EventTypeFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[42] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3007,7 +1752,7 @@ func (x *GetEventsRequest_EventTypeFilter) String() string { func (*GetEventsRequest_EventTypeFilter) ProtoMessage() {} func (x *GetEventsRequest_EventTypeFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[42] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3020,10 +1765,10 @@ func (x *GetEventsRequest_EventTypeFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_EventTypeFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_EventTypeFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 4} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 4} } -func (x *GetEventsRequest_EventTypeFilter) GetEventTypes() []EventType { +func (x *GetEventsRequest_EventTypeFilter) GetEventTypes() []v11.EventType { if x != nil { return x.EventTypes } @@ -3044,7 +1789,7 @@ type GetEventsRequest_TimeFilter struct { func (x *GetEventsRequest_TimeFilter) Reset() { *x = GetEventsRequest_TimeFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[43] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3056,7 +1801,7 @@ func (x *GetEventsRequest_TimeFilter) String() string { func (*GetEventsRequest_TimeFilter) ProtoMessage() {} func (x *GetEventsRequest_TimeFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[43] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3069,7 +1814,7 @@ func (x *GetEventsRequest_TimeFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_TimeFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_TimeFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 5} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 5} } func (x *GetEventsRequest_TimeFilter) GetOlderThan() *timestamppb.Timestamp { @@ -3100,7 +1845,7 @@ type GetEventsRequest_IDFilter struct { func (x *GetEventsRequest_IDFilter) Reset() { *x = GetEventsRequest_IDFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[44] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3112,7 +1857,7 @@ func (x *GetEventsRequest_IDFilter) String() string { func (*GetEventsRequest_IDFilter) ProtoMessage() {} func (x *GetEventsRequest_IDFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[44] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3125,7 +1870,7 @@ func (x *GetEventsRequest_IDFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_IDFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_IDFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 6} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 6} } func (x *GetEventsRequest_IDFilter) GetLowerThan() int64 { @@ -3155,7 +1900,7 @@ type GetEventsRequest_CallFilter struct { func (x *GetEventsRequest_CallFilter) Reset() { *x = GetEventsRequest_CallFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[45] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3167,7 +1912,7 @@ func (x *GetEventsRequest_CallFilter) String() string { func (*GetEventsRequest_CallFilter) ProtoMessage() {} func (x *GetEventsRequest_CallFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[45] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3180,7 +1925,7 @@ func (x *GetEventsRequest_CallFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_CallFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_CallFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 7} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 7} } func (x *GetEventsRequest_CallFilter) GetDestModule() string { @@ -3215,7 +1960,7 @@ type GetEventsRequest_ModuleFilter struct { func (x *GetEventsRequest_ModuleFilter) Reset() { *x = GetEventsRequest_ModuleFilter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[46] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3227,7 +1972,7 @@ func (x *GetEventsRequest_ModuleFilter) String() string { func (*GetEventsRequest_ModuleFilter) ProtoMessage() {} func (x *GetEventsRequest_ModuleFilter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[46] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3240,7 +1985,7 @@ func (x *GetEventsRequest_ModuleFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_ModuleFilter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_ModuleFilter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 8} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 8} } func (x *GetEventsRequest_ModuleFilter) GetModule() string { @@ -3280,7 +2025,7 @@ type GetEventsRequest_Filter struct { func (x *GetEventsRequest_Filter) Reset() { *x = GetEventsRequest_Filter{} - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[47] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3292,7 +2037,7 @@ func (x *GetEventsRequest_Filter) String() string { func (*GetEventsRequest_Filter) ProtoMessage() {} func (x *GetEventsRequest_Filter) ProtoReflect() protoreflect.Message { - mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[47] + mi := &file_xyz_block_ftl_console_v1_console_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3305,7 +2050,7 @@ func (x *GetEventsRequest_Filter) ProtoReflect() protoreflect.Message { // Deprecated: Use GetEventsRequest_Filter.ProtoReflect.Descriptor instead. func (*GetEventsRequest_Filter) Descriptor() ([]byte, []int) { - return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{24, 9} + return file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP(), []int{15, 9} } func (m *GetEventsRequest_Filter) GetFilter() isGetEventsRequest_Filter_Filter { @@ -3449,682 +2194,386 @@ var file_xyz_block_ftl_console_v1_console_proto_rawDesc = []byte{ 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x52, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0x95, - 0x04, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, - 0x01, 0x01, 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, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, - 0x65, 0x72, 0x62, 0x5f, 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, 0x01, 0x52, 0x0d, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, - 0x4e, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, - 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0c, 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, 0x12, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, - 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x88, - 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, - 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, - 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xb8, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 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, - 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x64, 0x22, 0x79, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, - 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x72, 0x65, - 0x76, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x8e, 0x04, 0x0a, - 0x0c, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, - 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, 0x07, 0x76, 0x65, 0x72, 0x62, - 0x52, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xe6, 0x02, - 0x0a, 0x12, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x37, 0x0a, 0x08, 0x76, - 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 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, 0x07, 0x76, 0x65, 0x72, - 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x9b, 0x03, 0x0a, 0x11, 0x41, 0x73, 0x79, 0x6e, 0x63, - 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, - 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, - 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x10, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0e, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x22, 0xf1, 0x02, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, - 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, - 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, - 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xa0, 0x03, 0x0a, 0x12, 0x50, 0x75, 0x62, - 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, - 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x62, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x64, - 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x19, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, - 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7f, 0x0a, 0x06, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x01, 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, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, - 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, - 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x87, - 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 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, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x31, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 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, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, - 0x6e, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x22, 0x7b, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x05, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x18, 0x01, 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, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x8b, - 0x01, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x40, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 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, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3c, - 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x06, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x78, 0x79, 0x7a, 0x2f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1a, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7f, 0x0a, 0x06, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 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, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xbf, 0x01, - 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x01, + 0x66, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x8f, 0x01, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x56, - 0x65, 0x72, 0x62, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x6a, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x03, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, - 0xd1, 0x04, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x65, 0x72, - 0x62, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, 0x12, - 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, - 0x3a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x87, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 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, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x77, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x31, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 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, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, + 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 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, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, + 0x8b, 0x01, 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x40, 0x0a, + 0x09, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 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, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, + 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x7f, 0x0a, + 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x18, 0x01, 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, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xbf, + 0x01, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x31, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, + 0x01, 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, + 0x56, 0x65, 0x72, 0x62, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0x2e, 0x0a, 0x13, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x6a, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x04, 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, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x22, 0xd1, 0x04, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x65, + 0x72, 0x62, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x05, 0x76, 0x65, 0x72, 0x62, 0x73, + 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x34, 0x0a, - 0x05, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x65, 0x6e, - 0x75, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x45, 0x0a, 0x0b, - 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x4b, - 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x90, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, - 0x6f, 0x67, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x15, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, + 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x09, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x34, + 0x0a, 0x05, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x65, + 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x45, 0x0a, + 0x0b, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x65, 0x73, 0x22, 0x29, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, + 0x4b, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x22, 0x13, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, - 0x79, 0x22, 0xc3, 0x0e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x31, 0x2e, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, + 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x46, 0x0a, 0x05, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x22, 0xc5, 0x0e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x1a, 0x23, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x51, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x34, 0x0a, 0x10, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, - 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x57, 0x0a, 0x0f, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x44, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x68, - 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x68, 0x61, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, - 0x61, 0x6e, 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, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, - 0x68, 0x61, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, - 0x61, 0x6e, 0x1a, 0x73, 0x0a, 0x08, 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, - 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x77, - 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, 0x69, 0x67, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x6c, 0x6c, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x73, - 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, - 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, - 0x62, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x76, - 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x76, 0x65, 0x72, - 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x1a, 0x88, 0x06, - 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x78, 0x79, - 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x5f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x5d, 0x0a, 0x0b, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x46, 0x0a, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x1a, 0x23, 0x0a, 0x0b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x52, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x34, 0x0a, 0x10, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x58, + 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x45, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x54, 0x69, 0x6d, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x65, 0x72, + 0x5f, 0x74, 0x68, 0x61, 0x6e, 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, 0x6e, 0x65, 0x77, 0x65, 0x72, + 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, + 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x1a, 0x73, 0x0a, 0x08, 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x68, + 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x65, 0x72, 0x5f, + 0x74, 0x68, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x68, 0x69, + 0x67, 0x68, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x68, + 0x69, 0x67, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x43, + 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x64, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, + 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x08, 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x62, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x48, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, + 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x76, 0x65, 0x72, 0x62, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x65, 0x72, 0x62, + 0x1a, 0x88, 0x06, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x5f, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x78, 0x79, 0x7a, + 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x5d, + 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4b, - 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x51, 0x0a, 0x06, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x79, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4b, 0x0a, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x52, 0x44, 0x45, - 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, 0x44, 0x45, 0x52, - 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x22, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x4e, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x49, 0x44, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x4b, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x51, + 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x05, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, + 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x52, + 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x22, 0x75, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x22, 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4e, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, - 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x65, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, - 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x4f, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb1, 0x06, - 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x36, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x63, 0x61, - 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x13, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x22, 0x50, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x32, 0xa8, 0x07, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, + 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x55, 0x0a, 0x0e, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x0d, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6f, + 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, - 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, - 0x62, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, - 0x62, 0x53, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, - 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x2a, 0xa9, 0x02, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x12, - 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, - 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, - 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, - 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, - 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, - 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, - 0x42, 0x53, 0x55, 0x42, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x10, 0x08, 0x12, 0x1d, - 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, - 0x53, 0x55, 0x42, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x10, 0x09, 0x2a, 0x89, 0x01, - 0x0a, 0x15, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x53, 0x59, 0x4e, 0x43, - 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, - 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, - 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, - 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, 0x10, 0x02, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, - 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, - 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, - 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4c, - 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x09, 0x12, - 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, - 0x4e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x11, 0x32, 0xa8, 0x07, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, - 0x73, 0x6f, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, - 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, - 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x73, 0x12, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, - 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x6f, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, - 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x64, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, - 0x09, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x78, 0x79, 0x7a, - 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x50, 0x50, 0x01, 0x5a, 0x4c, 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, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x62, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x50, 0x50, + 0x01, 0x5a, 0x4c, 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, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x70, 0x62, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4139,179 +2588,136 @@ func file_xyz_block_ftl_console_v1_console_proto_rawDescGZIP() []byte { return file_xyz_block_ftl_console_v1_console_proto_rawDescData } -var file_xyz_block_ftl_console_v1_console_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_xyz_block_ftl_console_v1_console_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_xyz_block_ftl_console_v1_console_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_xyz_block_ftl_console_v1_console_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_xyz_block_ftl_console_v1_console_proto_goTypes = []any{ - (EventType)(0), // 0: xyz.block.ftl.console.v1.EventType - (AsyncExecuteEventType)(0), // 1: xyz.block.ftl.console.v1.AsyncExecuteEventType - (LogLevel)(0), // 2: xyz.block.ftl.console.v1.LogLevel - (GetEventsRequest_Order)(0), // 3: xyz.block.ftl.console.v1.GetEventsRequest.Order - (*LogEvent)(nil), // 4: xyz.block.ftl.console.v1.LogEvent - (*CallEvent)(nil), // 5: xyz.block.ftl.console.v1.CallEvent - (*DeploymentCreatedEvent)(nil), // 6: xyz.block.ftl.console.v1.DeploymentCreatedEvent - (*DeploymentUpdatedEvent)(nil), // 7: xyz.block.ftl.console.v1.DeploymentUpdatedEvent - (*IngressEvent)(nil), // 8: xyz.block.ftl.console.v1.IngressEvent - (*CronScheduledEvent)(nil), // 9: xyz.block.ftl.console.v1.CronScheduledEvent - (*AsyncExecuteEvent)(nil), // 10: xyz.block.ftl.console.v1.AsyncExecuteEvent - (*PubSubPublishEvent)(nil), // 11: xyz.block.ftl.console.v1.PubSubPublishEvent - (*PubSubConsumeEvent)(nil), // 12: xyz.block.ftl.console.v1.PubSubConsumeEvent - (*Config)(nil), // 13: xyz.block.ftl.console.v1.Config - (*Data)(nil), // 14: xyz.block.ftl.console.v1.Data - (*Database)(nil), // 15: xyz.block.ftl.console.v1.Database - (*Enum)(nil), // 16: xyz.block.ftl.console.v1.Enum - (*Topic)(nil), // 17: xyz.block.ftl.console.v1.Topic - (*TypeAlias)(nil), // 18: xyz.block.ftl.console.v1.TypeAlias - (*Secret)(nil), // 19: xyz.block.ftl.console.v1.Secret - (*Verb)(nil), // 20: xyz.block.ftl.console.v1.Verb - (*Module)(nil), // 21: xyz.block.ftl.console.v1.Module - (*TopologyGroup)(nil), // 22: xyz.block.ftl.console.v1.TopologyGroup - (*Topology)(nil), // 23: xyz.block.ftl.console.v1.Topology - (*GetModulesRequest)(nil), // 24: xyz.block.ftl.console.v1.GetModulesRequest - (*GetModulesResponse)(nil), // 25: xyz.block.ftl.console.v1.GetModulesResponse - (*StreamModulesRequest)(nil), // 26: xyz.block.ftl.console.v1.StreamModulesRequest - (*StreamModulesResponse)(nil), // 27: xyz.block.ftl.console.v1.StreamModulesResponse - (*GetEventsRequest)(nil), // 28: xyz.block.ftl.console.v1.GetEventsRequest - (*GetEventsResponse)(nil), // 29: xyz.block.ftl.console.v1.GetEventsResponse - (*GetConfigRequest)(nil), // 30: xyz.block.ftl.console.v1.GetConfigRequest - (*GetConfigResponse)(nil), // 31: xyz.block.ftl.console.v1.GetConfigResponse - (*SetConfigRequest)(nil), // 32: xyz.block.ftl.console.v1.SetConfigRequest - (*SetConfigResponse)(nil), // 33: xyz.block.ftl.console.v1.SetConfigResponse - (*GetSecretRequest)(nil), // 34: xyz.block.ftl.console.v1.GetSecretRequest - (*GetSecretResponse)(nil), // 35: xyz.block.ftl.console.v1.GetSecretResponse - (*SetSecretRequest)(nil), // 36: xyz.block.ftl.console.v1.SetSecretRequest - (*SetSecretResponse)(nil), // 37: xyz.block.ftl.console.v1.SetSecretResponse - (*StreamEventsRequest)(nil), // 38: xyz.block.ftl.console.v1.StreamEventsRequest - (*StreamEventsResponse)(nil), // 39: xyz.block.ftl.console.v1.StreamEventsResponse - (*Event)(nil), // 40: xyz.block.ftl.console.v1.Event - nil, // 41: xyz.block.ftl.console.v1.LogEvent.AttributesEntry - (*GetEventsRequest_LimitFilter)(nil), // 42: xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter - (*GetEventsRequest_LogLevelFilter)(nil), // 43: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter - (*GetEventsRequest_DeploymentFilter)(nil), // 44: xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter - (*GetEventsRequest_RequestFilter)(nil), // 45: xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter - (*GetEventsRequest_EventTypeFilter)(nil), // 46: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter - (*GetEventsRequest_TimeFilter)(nil), // 47: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter - (*GetEventsRequest_IDFilter)(nil), // 48: xyz.block.ftl.console.v1.GetEventsRequest.IDFilter - (*GetEventsRequest_CallFilter)(nil), // 49: xyz.block.ftl.console.v1.GetEventsRequest.CallFilter - (*GetEventsRequest_ModuleFilter)(nil), // 50: xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter - (*GetEventsRequest_Filter)(nil), // 51: xyz.block.ftl.console.v1.GetEventsRequest.Filter - (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp - (*v1.Ref)(nil), // 53: xyz.block.ftl.schema.v1.Ref - (*durationpb.Duration)(nil), // 54: google.protobuf.Duration - (*v1.Config)(nil), // 55: xyz.block.ftl.schema.v1.Config - (*v1.Data)(nil), // 56: xyz.block.ftl.schema.v1.Data - (*v1.Database)(nil), // 57: xyz.block.ftl.schema.v1.Database - (*v1.Enum)(nil), // 58: xyz.block.ftl.schema.v1.Enum - (*v1.Topic)(nil), // 59: xyz.block.ftl.schema.v1.Topic - (*v1.TypeAlias)(nil), // 60: xyz.block.ftl.schema.v1.TypeAlias - (*v1.Secret)(nil), // 61: xyz.block.ftl.schema.v1.Secret - (*v1.Verb)(nil), // 62: xyz.block.ftl.schema.v1.Verb - (*v11.PingRequest)(nil), // 63: xyz.block.ftl.v1.PingRequest - (*v11.PingResponse)(nil), // 64: xyz.block.ftl.v1.PingResponse + (GetEventsRequest_Order)(0), // 0: xyz.block.ftl.console.v1.GetEventsRequest.Order + (*Config)(nil), // 1: xyz.block.ftl.console.v1.Config + (*Data)(nil), // 2: xyz.block.ftl.console.v1.Data + (*Database)(nil), // 3: xyz.block.ftl.console.v1.Database + (*Enum)(nil), // 4: xyz.block.ftl.console.v1.Enum + (*Topic)(nil), // 5: xyz.block.ftl.console.v1.Topic + (*TypeAlias)(nil), // 6: xyz.block.ftl.console.v1.TypeAlias + (*Secret)(nil), // 7: xyz.block.ftl.console.v1.Secret + (*Verb)(nil), // 8: xyz.block.ftl.console.v1.Verb + (*Module)(nil), // 9: xyz.block.ftl.console.v1.Module + (*TopologyGroup)(nil), // 10: xyz.block.ftl.console.v1.TopologyGroup + (*Topology)(nil), // 11: xyz.block.ftl.console.v1.Topology + (*GetModulesRequest)(nil), // 12: xyz.block.ftl.console.v1.GetModulesRequest + (*GetModulesResponse)(nil), // 13: xyz.block.ftl.console.v1.GetModulesResponse + (*StreamModulesRequest)(nil), // 14: xyz.block.ftl.console.v1.StreamModulesRequest + (*StreamModulesResponse)(nil), // 15: xyz.block.ftl.console.v1.StreamModulesResponse + (*GetEventsRequest)(nil), // 16: xyz.block.ftl.console.v1.GetEventsRequest + (*GetEventsResponse)(nil), // 17: xyz.block.ftl.console.v1.GetEventsResponse + (*GetConfigRequest)(nil), // 18: xyz.block.ftl.console.v1.GetConfigRequest + (*GetConfigResponse)(nil), // 19: xyz.block.ftl.console.v1.GetConfigResponse + (*SetConfigRequest)(nil), // 20: xyz.block.ftl.console.v1.SetConfigRequest + (*SetConfigResponse)(nil), // 21: xyz.block.ftl.console.v1.SetConfigResponse + (*GetSecretRequest)(nil), // 22: xyz.block.ftl.console.v1.GetSecretRequest + (*GetSecretResponse)(nil), // 23: xyz.block.ftl.console.v1.GetSecretResponse + (*SetSecretRequest)(nil), // 24: xyz.block.ftl.console.v1.SetSecretRequest + (*SetSecretResponse)(nil), // 25: xyz.block.ftl.console.v1.SetSecretResponse + (*StreamEventsRequest)(nil), // 26: xyz.block.ftl.console.v1.StreamEventsRequest + (*StreamEventsResponse)(nil), // 27: xyz.block.ftl.console.v1.StreamEventsResponse + (*GetEventsRequest_LimitFilter)(nil), // 28: xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter + (*GetEventsRequest_LogLevelFilter)(nil), // 29: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter + (*GetEventsRequest_DeploymentFilter)(nil), // 30: xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter + (*GetEventsRequest_RequestFilter)(nil), // 31: xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter + (*GetEventsRequest_EventTypeFilter)(nil), // 32: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter + (*GetEventsRequest_TimeFilter)(nil), // 33: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter + (*GetEventsRequest_IDFilter)(nil), // 34: xyz.block.ftl.console.v1.GetEventsRequest.IDFilter + (*GetEventsRequest_CallFilter)(nil), // 35: xyz.block.ftl.console.v1.GetEventsRequest.CallFilter + (*GetEventsRequest_ModuleFilter)(nil), // 36: xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter + (*GetEventsRequest_Filter)(nil), // 37: xyz.block.ftl.console.v1.GetEventsRequest.Filter + (*v1.Config)(nil), // 38: xyz.block.ftl.schema.v1.Config + (*v1.Ref)(nil), // 39: xyz.block.ftl.schema.v1.Ref + (*v1.Data)(nil), // 40: xyz.block.ftl.schema.v1.Data + (*v1.Database)(nil), // 41: xyz.block.ftl.schema.v1.Database + (*v1.Enum)(nil), // 42: xyz.block.ftl.schema.v1.Enum + (*v1.Topic)(nil), // 43: xyz.block.ftl.schema.v1.Topic + (*v1.TypeAlias)(nil), // 44: xyz.block.ftl.schema.v1.TypeAlias + (*v1.Secret)(nil), // 45: xyz.block.ftl.schema.v1.Secret + (*v1.Verb)(nil), // 46: xyz.block.ftl.schema.v1.Verb + (*v11.Event)(nil), // 47: xyz.block.ftl.timeline.v1.Event + (*durationpb.Duration)(nil), // 48: google.protobuf.Duration + (v11.LogLevel)(0), // 49: xyz.block.ftl.timeline.v1.LogLevel + (v11.EventType)(0), // 50: xyz.block.ftl.timeline.v1.EventType + (*timestamppb.Timestamp)(nil), // 51: google.protobuf.Timestamp + (*v12.PingRequest)(nil), // 52: xyz.block.ftl.v1.PingRequest + (*v12.PingResponse)(nil), // 53: xyz.block.ftl.v1.PingResponse } var file_xyz_block_ftl_console_v1_console_proto_depIdxs = []int32{ - 52, // 0: xyz.block.ftl.console.v1.LogEvent.time_stamp:type_name -> google.protobuf.Timestamp - 41, // 1: xyz.block.ftl.console.v1.LogEvent.attributes:type_name -> xyz.block.ftl.console.v1.LogEvent.AttributesEntry - 52, // 2: xyz.block.ftl.console.v1.CallEvent.time_stamp:type_name -> google.protobuf.Timestamp - 53, // 3: xyz.block.ftl.console.v1.CallEvent.source_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 53, // 4: xyz.block.ftl.console.v1.CallEvent.destination_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 54, // 5: xyz.block.ftl.console.v1.CallEvent.duration:type_name -> google.protobuf.Duration - 53, // 6: xyz.block.ftl.console.v1.IngressEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 52, // 7: xyz.block.ftl.console.v1.IngressEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 8: xyz.block.ftl.console.v1.IngressEvent.duration:type_name -> google.protobuf.Duration - 53, // 9: xyz.block.ftl.console.v1.CronScheduledEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 52, // 10: xyz.block.ftl.console.v1.CronScheduledEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 11: xyz.block.ftl.console.v1.CronScheduledEvent.duration:type_name -> google.protobuf.Duration - 52, // 12: xyz.block.ftl.console.v1.CronScheduledEvent.scheduled_at:type_name -> google.protobuf.Timestamp - 53, // 13: xyz.block.ftl.console.v1.AsyncExecuteEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 52, // 14: xyz.block.ftl.console.v1.AsyncExecuteEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 15: xyz.block.ftl.console.v1.AsyncExecuteEvent.duration:type_name -> google.protobuf.Duration - 1, // 16: xyz.block.ftl.console.v1.AsyncExecuteEvent.async_event_type:type_name -> xyz.block.ftl.console.v1.AsyncExecuteEventType - 53, // 17: xyz.block.ftl.console.v1.PubSubPublishEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref - 52, // 18: xyz.block.ftl.console.v1.PubSubPublishEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 19: xyz.block.ftl.console.v1.PubSubPublishEvent.duration:type_name -> google.protobuf.Duration - 52, // 20: xyz.block.ftl.console.v1.PubSubConsumeEvent.time_stamp:type_name -> google.protobuf.Timestamp - 54, // 21: xyz.block.ftl.console.v1.PubSubConsumeEvent.duration:type_name -> google.protobuf.Duration - 55, // 22: xyz.block.ftl.console.v1.Config.config:type_name -> xyz.block.ftl.schema.v1.Config - 53, // 23: xyz.block.ftl.console.v1.Config.references:type_name -> xyz.block.ftl.schema.v1.Ref - 56, // 24: xyz.block.ftl.console.v1.Data.data:type_name -> xyz.block.ftl.schema.v1.Data - 53, // 25: xyz.block.ftl.console.v1.Data.references:type_name -> xyz.block.ftl.schema.v1.Ref - 57, // 26: xyz.block.ftl.console.v1.Database.database:type_name -> xyz.block.ftl.schema.v1.Database - 53, // 27: xyz.block.ftl.console.v1.Database.references:type_name -> xyz.block.ftl.schema.v1.Ref - 58, // 28: xyz.block.ftl.console.v1.Enum.enum:type_name -> xyz.block.ftl.schema.v1.Enum - 53, // 29: xyz.block.ftl.console.v1.Enum.references:type_name -> xyz.block.ftl.schema.v1.Ref - 59, // 30: xyz.block.ftl.console.v1.Topic.topic:type_name -> xyz.block.ftl.schema.v1.Topic - 53, // 31: xyz.block.ftl.console.v1.Topic.references:type_name -> xyz.block.ftl.schema.v1.Ref - 60, // 32: xyz.block.ftl.console.v1.TypeAlias.typealias:type_name -> xyz.block.ftl.schema.v1.TypeAlias - 53, // 33: xyz.block.ftl.console.v1.TypeAlias.references:type_name -> xyz.block.ftl.schema.v1.Ref - 61, // 34: xyz.block.ftl.console.v1.Secret.secret:type_name -> xyz.block.ftl.schema.v1.Secret - 53, // 35: xyz.block.ftl.console.v1.Secret.references:type_name -> xyz.block.ftl.schema.v1.Ref - 62, // 36: xyz.block.ftl.console.v1.Verb.verb:type_name -> xyz.block.ftl.schema.v1.Verb - 53, // 37: xyz.block.ftl.console.v1.Verb.references:type_name -> xyz.block.ftl.schema.v1.Ref - 20, // 38: xyz.block.ftl.console.v1.Module.verbs:type_name -> xyz.block.ftl.console.v1.Verb - 14, // 39: xyz.block.ftl.console.v1.Module.data:type_name -> xyz.block.ftl.console.v1.Data - 19, // 40: xyz.block.ftl.console.v1.Module.secrets:type_name -> xyz.block.ftl.console.v1.Secret - 13, // 41: xyz.block.ftl.console.v1.Module.configs:type_name -> xyz.block.ftl.console.v1.Config - 15, // 42: xyz.block.ftl.console.v1.Module.databases:type_name -> xyz.block.ftl.console.v1.Database - 16, // 43: xyz.block.ftl.console.v1.Module.enums:type_name -> xyz.block.ftl.console.v1.Enum - 17, // 44: xyz.block.ftl.console.v1.Module.topics:type_name -> xyz.block.ftl.console.v1.Topic - 18, // 45: xyz.block.ftl.console.v1.Module.typealiases:type_name -> xyz.block.ftl.console.v1.TypeAlias - 22, // 46: xyz.block.ftl.console.v1.Topology.levels:type_name -> xyz.block.ftl.console.v1.TopologyGroup - 21, // 47: xyz.block.ftl.console.v1.GetModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module - 23, // 48: xyz.block.ftl.console.v1.GetModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology - 21, // 49: xyz.block.ftl.console.v1.StreamModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module - 23, // 50: xyz.block.ftl.console.v1.StreamModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology - 51, // 51: xyz.block.ftl.console.v1.GetEventsRequest.filters:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Filter - 3, // 52: xyz.block.ftl.console.v1.GetEventsRequest.order:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Order - 40, // 53: xyz.block.ftl.console.v1.GetEventsResponse.events:type_name -> xyz.block.ftl.console.v1.Event - 54, // 54: xyz.block.ftl.console.v1.StreamEventsRequest.update_interval:type_name -> google.protobuf.Duration - 28, // 55: xyz.block.ftl.console.v1.StreamEventsRequest.query:type_name -> xyz.block.ftl.console.v1.GetEventsRequest - 40, // 56: xyz.block.ftl.console.v1.StreamEventsResponse.events:type_name -> xyz.block.ftl.console.v1.Event - 52, // 57: xyz.block.ftl.console.v1.Event.time_stamp:type_name -> google.protobuf.Timestamp - 4, // 58: xyz.block.ftl.console.v1.Event.log:type_name -> xyz.block.ftl.console.v1.LogEvent - 5, // 59: xyz.block.ftl.console.v1.Event.call:type_name -> xyz.block.ftl.console.v1.CallEvent - 6, // 60: xyz.block.ftl.console.v1.Event.deployment_created:type_name -> xyz.block.ftl.console.v1.DeploymentCreatedEvent - 7, // 61: xyz.block.ftl.console.v1.Event.deployment_updated:type_name -> xyz.block.ftl.console.v1.DeploymentUpdatedEvent - 8, // 62: xyz.block.ftl.console.v1.Event.ingress:type_name -> xyz.block.ftl.console.v1.IngressEvent - 9, // 63: xyz.block.ftl.console.v1.Event.cron_scheduled:type_name -> xyz.block.ftl.console.v1.CronScheduledEvent - 10, // 64: xyz.block.ftl.console.v1.Event.async_execute:type_name -> xyz.block.ftl.console.v1.AsyncExecuteEvent - 11, // 65: xyz.block.ftl.console.v1.Event.pubsub_publish:type_name -> xyz.block.ftl.console.v1.PubSubPublishEvent - 12, // 66: xyz.block.ftl.console.v1.Event.pubsub_consume:type_name -> xyz.block.ftl.console.v1.PubSubConsumeEvent - 2, // 67: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter.log_level:type_name -> xyz.block.ftl.console.v1.LogLevel - 0, // 68: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter.event_types:type_name -> xyz.block.ftl.console.v1.EventType - 52, // 69: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.older_than:type_name -> google.protobuf.Timestamp - 52, // 70: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.newer_than:type_name -> google.protobuf.Timestamp - 42, // 71: xyz.block.ftl.console.v1.GetEventsRequest.Filter.limit:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter - 43, // 72: xyz.block.ftl.console.v1.GetEventsRequest.Filter.log_level:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter - 44, // 73: xyz.block.ftl.console.v1.GetEventsRequest.Filter.deployments:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter - 45, // 74: xyz.block.ftl.console.v1.GetEventsRequest.Filter.requests:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter - 46, // 75: xyz.block.ftl.console.v1.GetEventsRequest.Filter.event_types:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter - 47, // 76: xyz.block.ftl.console.v1.GetEventsRequest.Filter.time:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter - 48, // 77: xyz.block.ftl.console.v1.GetEventsRequest.Filter.id:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.IDFilter - 49, // 78: xyz.block.ftl.console.v1.GetEventsRequest.Filter.call:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.CallFilter - 50, // 79: xyz.block.ftl.console.v1.GetEventsRequest.Filter.module:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter - 63, // 80: xyz.block.ftl.console.v1.ConsoleService.Ping:input_type -> xyz.block.ftl.v1.PingRequest - 24, // 81: xyz.block.ftl.console.v1.ConsoleService.GetModules:input_type -> xyz.block.ftl.console.v1.GetModulesRequest - 26, // 82: xyz.block.ftl.console.v1.ConsoleService.StreamModules:input_type -> xyz.block.ftl.console.v1.StreamModulesRequest - 38, // 83: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:input_type -> xyz.block.ftl.console.v1.StreamEventsRequest - 28, // 84: xyz.block.ftl.console.v1.ConsoleService.GetEvents:input_type -> xyz.block.ftl.console.v1.GetEventsRequest - 30, // 85: xyz.block.ftl.console.v1.ConsoleService.GetConfig:input_type -> xyz.block.ftl.console.v1.GetConfigRequest - 32, // 86: xyz.block.ftl.console.v1.ConsoleService.SetConfig:input_type -> xyz.block.ftl.console.v1.SetConfigRequest - 34, // 87: xyz.block.ftl.console.v1.ConsoleService.GetSecret:input_type -> xyz.block.ftl.console.v1.GetSecretRequest - 36, // 88: xyz.block.ftl.console.v1.ConsoleService.SetSecret:input_type -> xyz.block.ftl.console.v1.SetSecretRequest - 64, // 89: xyz.block.ftl.console.v1.ConsoleService.Ping:output_type -> xyz.block.ftl.v1.PingResponse - 25, // 90: xyz.block.ftl.console.v1.ConsoleService.GetModules:output_type -> xyz.block.ftl.console.v1.GetModulesResponse - 27, // 91: xyz.block.ftl.console.v1.ConsoleService.StreamModules:output_type -> xyz.block.ftl.console.v1.StreamModulesResponse - 39, // 92: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:output_type -> xyz.block.ftl.console.v1.StreamEventsResponse - 29, // 93: xyz.block.ftl.console.v1.ConsoleService.GetEvents:output_type -> xyz.block.ftl.console.v1.GetEventsResponse - 31, // 94: xyz.block.ftl.console.v1.ConsoleService.GetConfig:output_type -> xyz.block.ftl.console.v1.GetConfigResponse - 33, // 95: xyz.block.ftl.console.v1.ConsoleService.SetConfig:output_type -> xyz.block.ftl.console.v1.SetConfigResponse - 35, // 96: xyz.block.ftl.console.v1.ConsoleService.GetSecret:output_type -> xyz.block.ftl.console.v1.GetSecretResponse - 37, // 97: xyz.block.ftl.console.v1.ConsoleService.SetSecret:output_type -> xyz.block.ftl.console.v1.SetSecretResponse - 89, // [89:98] is the sub-list for method output_type - 80, // [80:89] is the sub-list for method input_type - 80, // [80:80] is the sub-list for extension type_name - 80, // [80:80] is the sub-list for extension extendee - 0, // [0:80] is the sub-list for field type_name + 38, // 0: xyz.block.ftl.console.v1.Config.config:type_name -> xyz.block.ftl.schema.v1.Config + 39, // 1: xyz.block.ftl.console.v1.Config.references:type_name -> xyz.block.ftl.schema.v1.Ref + 40, // 2: xyz.block.ftl.console.v1.Data.data:type_name -> xyz.block.ftl.schema.v1.Data + 39, // 3: xyz.block.ftl.console.v1.Data.references:type_name -> xyz.block.ftl.schema.v1.Ref + 41, // 4: xyz.block.ftl.console.v1.Database.database:type_name -> xyz.block.ftl.schema.v1.Database + 39, // 5: xyz.block.ftl.console.v1.Database.references:type_name -> xyz.block.ftl.schema.v1.Ref + 42, // 6: xyz.block.ftl.console.v1.Enum.enum:type_name -> xyz.block.ftl.schema.v1.Enum + 39, // 7: xyz.block.ftl.console.v1.Enum.references:type_name -> xyz.block.ftl.schema.v1.Ref + 43, // 8: xyz.block.ftl.console.v1.Topic.topic:type_name -> xyz.block.ftl.schema.v1.Topic + 39, // 9: xyz.block.ftl.console.v1.Topic.references:type_name -> xyz.block.ftl.schema.v1.Ref + 44, // 10: xyz.block.ftl.console.v1.TypeAlias.typealias:type_name -> xyz.block.ftl.schema.v1.TypeAlias + 39, // 11: xyz.block.ftl.console.v1.TypeAlias.references:type_name -> xyz.block.ftl.schema.v1.Ref + 45, // 12: xyz.block.ftl.console.v1.Secret.secret:type_name -> xyz.block.ftl.schema.v1.Secret + 39, // 13: xyz.block.ftl.console.v1.Secret.references:type_name -> xyz.block.ftl.schema.v1.Ref + 46, // 14: xyz.block.ftl.console.v1.Verb.verb:type_name -> xyz.block.ftl.schema.v1.Verb + 39, // 15: xyz.block.ftl.console.v1.Verb.references:type_name -> xyz.block.ftl.schema.v1.Ref + 8, // 16: xyz.block.ftl.console.v1.Module.verbs:type_name -> xyz.block.ftl.console.v1.Verb + 2, // 17: xyz.block.ftl.console.v1.Module.data:type_name -> xyz.block.ftl.console.v1.Data + 7, // 18: xyz.block.ftl.console.v1.Module.secrets:type_name -> xyz.block.ftl.console.v1.Secret + 1, // 19: xyz.block.ftl.console.v1.Module.configs:type_name -> xyz.block.ftl.console.v1.Config + 3, // 20: xyz.block.ftl.console.v1.Module.databases:type_name -> xyz.block.ftl.console.v1.Database + 4, // 21: xyz.block.ftl.console.v1.Module.enums:type_name -> xyz.block.ftl.console.v1.Enum + 5, // 22: xyz.block.ftl.console.v1.Module.topics:type_name -> xyz.block.ftl.console.v1.Topic + 6, // 23: xyz.block.ftl.console.v1.Module.typealiases:type_name -> xyz.block.ftl.console.v1.TypeAlias + 10, // 24: xyz.block.ftl.console.v1.Topology.levels:type_name -> xyz.block.ftl.console.v1.TopologyGroup + 9, // 25: xyz.block.ftl.console.v1.GetModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module + 11, // 26: xyz.block.ftl.console.v1.GetModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology + 9, // 27: xyz.block.ftl.console.v1.StreamModulesResponse.modules:type_name -> xyz.block.ftl.console.v1.Module + 11, // 28: xyz.block.ftl.console.v1.StreamModulesResponse.topology:type_name -> xyz.block.ftl.console.v1.Topology + 37, // 29: xyz.block.ftl.console.v1.GetEventsRequest.filters:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Filter + 0, // 30: xyz.block.ftl.console.v1.GetEventsRequest.order:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.Order + 47, // 31: xyz.block.ftl.console.v1.GetEventsResponse.events:type_name -> xyz.block.ftl.timeline.v1.Event + 48, // 32: xyz.block.ftl.console.v1.StreamEventsRequest.update_interval:type_name -> google.protobuf.Duration + 16, // 33: xyz.block.ftl.console.v1.StreamEventsRequest.query:type_name -> xyz.block.ftl.console.v1.GetEventsRequest + 47, // 34: xyz.block.ftl.console.v1.StreamEventsResponse.events:type_name -> xyz.block.ftl.timeline.v1.Event + 49, // 35: xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter.log_level:type_name -> xyz.block.ftl.timeline.v1.LogLevel + 50, // 36: xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter.event_types:type_name -> xyz.block.ftl.timeline.v1.EventType + 51, // 37: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.older_than:type_name -> google.protobuf.Timestamp + 51, // 38: xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter.newer_than:type_name -> google.protobuf.Timestamp + 28, // 39: xyz.block.ftl.console.v1.GetEventsRequest.Filter.limit:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LimitFilter + 29, // 40: xyz.block.ftl.console.v1.GetEventsRequest.Filter.log_level:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilter + 30, // 41: xyz.block.ftl.console.v1.GetEventsRequest.Filter.deployments:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilter + 31, // 42: xyz.block.ftl.console.v1.GetEventsRequest.Filter.requests:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.RequestFilter + 32, // 43: xyz.block.ftl.console.v1.GetEventsRequest.Filter.event_types:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilter + 33, // 44: xyz.block.ftl.console.v1.GetEventsRequest.Filter.time:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.TimeFilter + 34, // 45: xyz.block.ftl.console.v1.GetEventsRequest.Filter.id:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.IDFilter + 35, // 46: xyz.block.ftl.console.v1.GetEventsRequest.Filter.call:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.CallFilter + 36, // 47: xyz.block.ftl.console.v1.GetEventsRequest.Filter.module:type_name -> xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilter + 52, // 48: xyz.block.ftl.console.v1.ConsoleService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 12, // 49: xyz.block.ftl.console.v1.ConsoleService.GetModules:input_type -> xyz.block.ftl.console.v1.GetModulesRequest + 14, // 50: xyz.block.ftl.console.v1.ConsoleService.StreamModules:input_type -> xyz.block.ftl.console.v1.StreamModulesRequest + 26, // 51: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:input_type -> xyz.block.ftl.console.v1.StreamEventsRequest + 16, // 52: xyz.block.ftl.console.v1.ConsoleService.GetEvents:input_type -> xyz.block.ftl.console.v1.GetEventsRequest + 18, // 53: xyz.block.ftl.console.v1.ConsoleService.GetConfig:input_type -> xyz.block.ftl.console.v1.GetConfigRequest + 20, // 54: xyz.block.ftl.console.v1.ConsoleService.SetConfig:input_type -> xyz.block.ftl.console.v1.SetConfigRequest + 22, // 55: xyz.block.ftl.console.v1.ConsoleService.GetSecret:input_type -> xyz.block.ftl.console.v1.GetSecretRequest + 24, // 56: xyz.block.ftl.console.v1.ConsoleService.SetSecret:input_type -> xyz.block.ftl.console.v1.SetSecretRequest + 53, // 57: xyz.block.ftl.console.v1.ConsoleService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 13, // 58: xyz.block.ftl.console.v1.ConsoleService.GetModules:output_type -> xyz.block.ftl.console.v1.GetModulesResponse + 15, // 59: xyz.block.ftl.console.v1.ConsoleService.StreamModules:output_type -> xyz.block.ftl.console.v1.StreamModulesResponse + 27, // 60: xyz.block.ftl.console.v1.ConsoleService.StreamEvents:output_type -> xyz.block.ftl.console.v1.StreamEventsResponse + 17, // 61: xyz.block.ftl.console.v1.ConsoleService.GetEvents:output_type -> xyz.block.ftl.console.v1.GetEventsResponse + 19, // 62: xyz.block.ftl.console.v1.ConsoleService.GetConfig:output_type -> xyz.block.ftl.console.v1.GetConfigResponse + 21, // 63: xyz.block.ftl.console.v1.ConsoleService.SetConfig:output_type -> xyz.block.ftl.console.v1.SetConfigResponse + 23, // 64: xyz.block.ftl.console.v1.ConsoleService.GetSecret:output_type -> xyz.block.ftl.console.v1.GetSecretResponse + 25, // 65: xyz.block.ftl.console.v1.ConsoleService.SetSecret:output_type -> xyz.block.ftl.console.v1.SetSecretResponse + 57, // [57:66] is the sub-list for method output_type + 48, // [48:57] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name } func init() { file_xyz_block_ftl_console_v1_console_proto_init() } @@ -4319,36 +2725,17 @@ func file_xyz_block_ftl_console_v1_console_proto_init() { if File_xyz_block_ftl_console_v1_console_proto != nil { return } - file_xyz_block_ftl_console_v1_console_proto_msgTypes[0].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[1].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[2].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[4].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[5].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[6].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[7].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[8].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[16].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[17].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[19].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[21].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[23].OneofWrappers = []any{} file_xyz_block_ftl_console_v1_console_proto_msgTypes[25].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[26].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[28].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[30].OneofWrappers = []any{} file_xyz_block_ftl_console_v1_console_proto_msgTypes[32].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[33].OneofWrappers = []any{} file_xyz_block_ftl_console_v1_console_proto_msgTypes[34].OneofWrappers = []any{} + file_xyz_block_ftl_console_v1_console_proto_msgTypes[35].OneofWrappers = []any{} file_xyz_block_ftl_console_v1_console_proto_msgTypes[36].OneofWrappers = []any{ - (*Event_Log)(nil), - (*Event_Call)(nil), - (*Event_DeploymentCreated)(nil), - (*Event_DeploymentUpdated)(nil), - (*Event_Ingress)(nil), - (*Event_CronScheduled)(nil), - (*Event_AsyncExecute)(nil), - (*Event_PubsubPublish)(nil), - (*Event_PubsubConsume)(nil), - } - file_xyz_block_ftl_console_v1_console_proto_msgTypes[43].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[44].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[45].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[46].OneofWrappers = []any{} - file_xyz_block_ftl_console_v1_console_proto_msgTypes[47].OneofWrappers = []any{ (*GetEventsRequest_Filter_Limit)(nil), (*GetEventsRequest_Filter_LogLevel)(nil), (*GetEventsRequest_Filter_Deployments)(nil), @@ -4364,8 +2751,8 @@ func file_xyz_block_ftl_console_v1_console_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_xyz_block_ftl_console_v1_console_proto_rawDesc, - NumEnums: 4, - NumMessages: 48, + NumEnums: 1, + NumMessages: 37, NumExtensions: 0, NumServices: 1, }, diff --git a/backend/protos/xyz/block/ftl/console/v1/console.proto b/backend/protos/xyz/block/ftl/console/v1/console.proto index 55e85b1d34..05e6f032bc 100644 --- a/backend/protos/xyz/block/ftl/console/v1/console.proto +++ b/backend/protos/xyz/block/ftl/console/v1/console.proto @@ -5,137 +5,12 @@ package xyz.block.ftl.console.v1; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "xyz/block/ftl/schema/v1/schema.proto"; +import "xyz/block/ftl/timeline/v1/event.proto"; import "xyz/block/ftl/v1/ftl.proto"; option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1;pbconsole"; option java_multiple_files = true; -enum EventType { - EVENT_TYPE_UNSPECIFIED = 0; - EVENT_TYPE_LOG = 1; - EVENT_TYPE_CALL = 2; - EVENT_TYPE_DEPLOYMENT_CREATED = 3; - EVENT_TYPE_DEPLOYMENT_UPDATED = 4; - EVENT_TYPE_INGRESS = 5; - EVENT_TYPE_CRON_SCHEDULED = 6; - EVENT_TYPE_ASYNC_EXECUTE = 7; - EVENT_TYPE_PUBSUB_PUBLISH = 8; - EVENT_TYPE_PUBSUB_CONSUME = 9; -} - -enum AsyncExecuteEventType { - ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; - ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; - ASYNC_EXECUTE_EVENT_TYPE_PUBSUB = 2; -} - -enum LogLevel { - LOG_LEVEL_UNSPECIFIED = 0; - LOG_LEVEL_TRACE = 1; - LOG_LEVEL_DEBUG = 5; - LOG_LEVEL_INFO = 9; - LOG_LEVEL_WARN = 13; - LOG_LEVEL_ERROR = 17; -} - -message LogEvent { - string deployment_key = 1; - optional string request_key = 2; - google.protobuf.Timestamp time_stamp = 3; - int32 log_level = 4; - map attributes = 5; - string message = 6; - optional string error = 7; - optional string stack = 8; -} - -message CallEvent { - optional string request_key = 1; - string deployment_key = 2; - google.protobuf.Timestamp time_stamp = 3; - optional ftl.schema.v1.Ref source_verb_ref = 11; - ftl.schema.v1.Ref destination_verb_ref = 12; - google.protobuf.Duration duration = 6; - string request = 7; - string response = 8; - optional string error = 9; - optional string stack = 10; - - reserved 4, 5; -} - -message DeploymentCreatedEvent { - string key = 1; - string language = 2; - string module_name = 3; - int32 min_replicas = 4; - optional string replaced = 5; -} - -message DeploymentUpdatedEvent { - string key = 1; - int32 min_replicas = 2; - int32 prev_min_replicas = 3; -} - -message IngressEvent { - string deployment_key = 1; - optional string request_key = 2; - ftl.schema.v1.Ref verb_ref = 3; - string method = 4; - string path = 5; - int32 status_code = 7; - google.protobuf.Timestamp time_stamp = 8; - google.protobuf.Duration duration = 9; - string request = 10; - string request_header = 11; - string response = 12; - string response_header = 13; - optional string error = 14; -} - -message CronScheduledEvent { - string deployment_key = 1; - ftl.schema.v1.Ref verb_ref = 2; - google.protobuf.Timestamp time_stamp = 3; - google.protobuf.Duration duration = 4; - google.protobuf.Timestamp scheduled_at = 5; - string schedule = 6; - optional string error = 7; -} - -message AsyncExecuteEvent { - string deployment_key = 1; - optional string request_key = 2; - ftl.schema.v1.Ref verb_ref = 3; - google.protobuf.Timestamp time_stamp = 4; - google.protobuf.Duration duration = 5; - AsyncExecuteEventType async_event_type = 6; - optional string error = 7; -} - -message PubSubPublishEvent { - string deployment_key = 1; - optional string request_key = 2; - ftl.schema.v1.Ref verb_ref = 3; - google.protobuf.Timestamp time_stamp = 4; - google.protobuf.Duration duration = 5; - string topic = 6; - string request = 7; - optional string error = 8; -} - -message PubSubConsumeEvent { - string deployment_key = 1; - optional string request_key = 2; - optional string dest_verb_module = 3; - optional string dest_verb_name = 4; - google.protobuf.Timestamp time_stamp = 5; - google.protobuf.Duration duration = 6; - string topic = 7; - optional string error = 8; -} - message Config { ftl.schema.v1.Config config = 1; repeated ftl.schema.v1.Ref references = 2; @@ -222,7 +97,7 @@ message GetEventsRequest { } // Filters events by log level. message LogLevelFilter { - LogLevel log_level = 1; + timeline.v1.LogLevel log_level = 1; } // Filters events by deployment key. message DeploymentFilter { @@ -234,7 +109,7 @@ message GetEventsRequest { } // Filters events by event type. message EventTypeFilter { - repeated EventType event_types = 1; + repeated timeline.v1.EventType event_types = 1; } // Filters events by time. // @@ -288,7 +163,7 @@ message GetEventsRequest { } message GetEventsResponse { - repeated Event events = 1; + repeated timeline.v1.Event events = 1; // For pagination, this cursor is where we should start our next query optional int64 cursor = 2; @@ -338,24 +213,7 @@ message StreamEventsRequest { } message StreamEventsResponse { - repeated Event events = 1; -} - -message Event { - google.protobuf.Timestamp time_stamp = 1; - // Unique ID for event. - int64 id = 2; - oneof entry { - LogEvent log = 3; - CallEvent call = 4; - DeploymentCreatedEvent deployment_created = 5; - DeploymentUpdatedEvent deployment_updated = 6; - IngressEvent ingress = 7; - CronScheduledEvent cron_scheduled = 8; - AsyncExecuteEvent async_execute = 9; - PubSubPublishEvent pubsub_publish = 10; - PubSubConsumeEvent pubsub_consume = 11; - } + repeated timeline.v1.Event events = 1; } service ConsoleService { diff --git a/backend/protos/xyz/block/ftl/timeline/v1/event.pb.go b/backend/protos/xyz/block/ftl/timeline/v1/event.pb.go new file mode 100644 index 0000000000..f171432a6c --- /dev/null +++ b/backend/protos/xyz/block/ftl/timeline/v1/event.pb.go @@ -0,0 +1,1720 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc (unknown) +// source: xyz/block/ftl/timeline/v1/event.proto + +package timelinev1 + +import ( + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/schema/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type EventType int32 + +const ( + EventType_EVENT_TYPE_UNSPECIFIED EventType = 0 + EventType_EVENT_TYPE_LOG EventType = 1 + EventType_EVENT_TYPE_CALL EventType = 2 + EventType_EVENT_TYPE_DEPLOYMENT_CREATED EventType = 3 + EventType_EVENT_TYPE_DEPLOYMENT_UPDATED EventType = 4 + EventType_EVENT_TYPE_INGRESS EventType = 5 + EventType_EVENT_TYPE_CRON_SCHEDULED EventType = 6 + EventType_EVENT_TYPE_ASYNC_EXECUTE EventType = 7 + EventType_EVENT_TYPE_PUBSUB_PUBLISH EventType = 8 + EventType_EVENT_TYPE_PUBSUB_CONSUME EventType = 9 +) + +// Enum value maps for EventType. +var ( + EventType_name = map[int32]string{ + 0: "EVENT_TYPE_UNSPECIFIED", + 1: "EVENT_TYPE_LOG", + 2: "EVENT_TYPE_CALL", + 3: "EVENT_TYPE_DEPLOYMENT_CREATED", + 4: "EVENT_TYPE_DEPLOYMENT_UPDATED", + 5: "EVENT_TYPE_INGRESS", + 6: "EVENT_TYPE_CRON_SCHEDULED", + 7: "EVENT_TYPE_ASYNC_EXECUTE", + 8: "EVENT_TYPE_PUBSUB_PUBLISH", + 9: "EVENT_TYPE_PUBSUB_CONSUME", + } + EventType_value = map[string]int32{ + "EVENT_TYPE_UNSPECIFIED": 0, + "EVENT_TYPE_LOG": 1, + "EVENT_TYPE_CALL": 2, + "EVENT_TYPE_DEPLOYMENT_CREATED": 3, + "EVENT_TYPE_DEPLOYMENT_UPDATED": 4, + "EVENT_TYPE_INGRESS": 5, + "EVENT_TYPE_CRON_SCHEDULED": 6, + "EVENT_TYPE_ASYNC_EXECUTE": 7, + "EVENT_TYPE_PUBSUB_PUBLISH": 8, + "EVENT_TYPE_PUBSUB_CONSUME": 9, + } +) + +func (x EventType) Enum() *EventType { + p := new(EventType) + *p = x + return p +} + +func (x EventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EventType) Descriptor() protoreflect.EnumDescriptor { + return file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[0].Descriptor() +} + +func (EventType) Type() protoreflect.EnumType { + return &file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[0] +} + +func (x EventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use EventType.Descriptor instead. +func (EventType) EnumDescriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{0} +} + +type AsyncExecuteEventType int32 + +const ( + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED AsyncExecuteEventType = 0 + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_CRON AsyncExecuteEventType = 1 + AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_PUBSUB AsyncExecuteEventType = 2 +) + +// Enum value maps for AsyncExecuteEventType. +var ( + AsyncExecuteEventType_name = map[int32]string{ + 0: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED", + 1: "ASYNC_EXECUTE_EVENT_TYPE_CRON", + 2: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB", + } + AsyncExecuteEventType_value = map[string]int32{ + "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED": 0, + "ASYNC_EXECUTE_EVENT_TYPE_CRON": 1, + "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB": 2, + } +) + +func (x AsyncExecuteEventType) Enum() *AsyncExecuteEventType { + p := new(AsyncExecuteEventType) + *p = x + return p +} + +func (x AsyncExecuteEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AsyncExecuteEventType) Descriptor() protoreflect.EnumDescriptor { + return file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[1].Descriptor() +} + +func (AsyncExecuteEventType) Type() protoreflect.EnumType { + return &file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[1] +} + +func (x AsyncExecuteEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AsyncExecuteEventType.Descriptor instead. +func (AsyncExecuteEventType) EnumDescriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{1} +} + +type LogLevel int32 + +const ( + LogLevel_LOG_LEVEL_UNSPECIFIED LogLevel = 0 + LogLevel_LOG_LEVEL_TRACE LogLevel = 1 + LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 + LogLevel_LOG_LEVEL_INFO LogLevel = 9 + LogLevel_LOG_LEVEL_WARN LogLevel = 13 + LogLevel_LOG_LEVEL_ERROR LogLevel = 17 +) + +// Enum value maps for LogLevel. +var ( + LogLevel_name = map[int32]string{ + 0: "LOG_LEVEL_UNSPECIFIED", + 1: "LOG_LEVEL_TRACE", + 5: "LOG_LEVEL_DEBUG", + 9: "LOG_LEVEL_INFO", + 13: "LOG_LEVEL_WARN", + 17: "LOG_LEVEL_ERROR", + } + LogLevel_value = map[string]int32{ + "LOG_LEVEL_UNSPECIFIED": 0, + "LOG_LEVEL_TRACE": 1, + "LOG_LEVEL_DEBUG": 5, + "LOG_LEVEL_INFO": 9, + "LOG_LEVEL_WARN": 13, + "LOG_LEVEL_ERROR": 17, + } +) + +func (x LogLevel) Enum() *LogLevel { + p := new(LogLevel) + *p = x + return p +} + +func (x LogLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LogLevel) Descriptor() protoreflect.EnumDescriptor { + return file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[2].Descriptor() +} + +func (LogLevel) Type() protoreflect.EnumType { + return &file_xyz_block_ftl_timeline_v1_event_proto_enumTypes[2] +} + +func (x LogLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LogLevel.Descriptor instead. +func (LogLevel) EnumDescriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{2} +} + +type LogEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + LogLevel int32 `protobuf:"varint,4,opt,name=log_level,json=logLevel,proto3" json:"log_level,omitempty"` + Attributes map[string]string `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"` + Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` + Stack *string `protobuf:"bytes,8,opt,name=stack,proto3,oneof" json:"stack,omitempty"` +} + +func (x *LogEvent) Reset() { + *x = LogEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogEvent) ProtoMessage() {} + +func (x *LogEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[0] + 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 LogEvent.ProtoReflect.Descriptor instead. +func (*LogEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{0} +} + +func (x *LogEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *LogEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *LogEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *LogEvent) GetLogLevel() int32 { + if x != nil { + return x.LogLevel + } + return 0 +} + +func (x *LogEvent) GetAttributes() map[string]string { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *LogEvent) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *LogEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +func (x *LogEvent) GetStack() string { + if x != nil && x.Stack != nil { + return *x.Stack + } + return "" +} + +type CallEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RequestKey *string `protobuf:"bytes,1,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + DeploymentKey string `protobuf:"bytes,2,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + SourceVerbRef *v1.Ref `protobuf:"bytes,11,opt,name=source_verb_ref,json=sourceVerbRef,proto3,oneof" json:"source_verb_ref,omitempty"` + DestinationVerbRef *v1.Ref `protobuf:"bytes,12,opt,name=destination_verb_ref,json=destinationVerbRef,proto3" json:"destination_verb_ref,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"` + Request string `protobuf:"bytes,7,opt,name=request,proto3" json:"request,omitempty"` + Response string `protobuf:"bytes,8,opt,name=response,proto3" json:"response,omitempty"` + Error *string `protobuf:"bytes,9,opt,name=error,proto3,oneof" json:"error,omitempty"` + Stack *string `protobuf:"bytes,10,opt,name=stack,proto3,oneof" json:"stack,omitempty"` +} + +func (x *CallEvent) Reset() { + *x = CallEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CallEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CallEvent) ProtoMessage() {} + +func (x *CallEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[1] + 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 CallEvent.ProtoReflect.Descriptor instead. +func (*CallEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{1} +} + +func (x *CallEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *CallEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *CallEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *CallEvent) GetSourceVerbRef() *v1.Ref { + if x != nil { + return x.SourceVerbRef + } + return nil +} + +func (x *CallEvent) GetDestinationVerbRef() *v1.Ref { + if x != nil { + return x.DestinationVerbRef + } + return nil +} + +func (x *CallEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *CallEvent) GetRequest() string { + if x != nil { + return x.Request + } + return "" +} + +func (x *CallEvent) GetResponse() string { + if x != nil { + return x.Response + } + return "" +} + +func (x *CallEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +func (x *CallEvent) GetStack() string { + if x != nil && x.Stack != nil { + return *x.Stack + } + return "" +} + +type DeploymentCreatedEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + ModuleName string `protobuf:"bytes,3,opt,name=module_name,json=moduleName,proto3" json:"module_name,omitempty"` + MinReplicas int32 `protobuf:"varint,4,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` + Replaced *string `protobuf:"bytes,5,opt,name=replaced,proto3,oneof" json:"replaced,omitempty"` +} + +func (x *DeploymentCreatedEvent) Reset() { + *x = DeploymentCreatedEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeploymentCreatedEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeploymentCreatedEvent) ProtoMessage() {} + +func (x *DeploymentCreatedEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[2] + 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 DeploymentCreatedEvent.ProtoReflect.Descriptor instead. +func (*DeploymentCreatedEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{2} +} + +func (x *DeploymentCreatedEvent) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *DeploymentCreatedEvent) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *DeploymentCreatedEvent) GetModuleName() string { + if x != nil { + return x.ModuleName + } + return "" +} + +func (x *DeploymentCreatedEvent) GetMinReplicas() int32 { + if x != nil { + return x.MinReplicas + } + return 0 +} + +func (x *DeploymentCreatedEvent) GetReplaced() string { + if x != nil && x.Replaced != nil { + return *x.Replaced + } + return "" +} + +type DeploymentUpdatedEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + MinReplicas int32 `protobuf:"varint,2,opt,name=min_replicas,json=minReplicas,proto3" json:"min_replicas,omitempty"` + PrevMinReplicas int32 `protobuf:"varint,3,opt,name=prev_min_replicas,json=prevMinReplicas,proto3" json:"prev_min_replicas,omitempty"` +} + +func (x *DeploymentUpdatedEvent) Reset() { + *x = DeploymentUpdatedEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeploymentUpdatedEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeploymentUpdatedEvent) ProtoMessage() {} + +func (x *DeploymentUpdatedEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[3] + 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 DeploymentUpdatedEvent.ProtoReflect.Descriptor instead. +func (*DeploymentUpdatedEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{3} +} + +func (x *DeploymentUpdatedEvent) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *DeploymentUpdatedEvent) GetMinReplicas() int32 { + if x != nil { + return x.MinReplicas + } + return 0 +} + +func (x *DeploymentUpdatedEvent) GetPrevMinReplicas() int32 { + if x != nil { + return x.PrevMinReplicas + } + return 0 +} + +type IngressEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + Method string `protobuf:"bytes,4,opt,name=method,proto3" json:"method,omitempty"` + Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` + StatusCode int32 `protobuf:"varint,7,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,9,opt,name=duration,proto3" json:"duration,omitempty"` + Request string `protobuf:"bytes,10,opt,name=request,proto3" json:"request,omitempty"` + RequestHeader string `protobuf:"bytes,11,opt,name=request_header,json=requestHeader,proto3" json:"request_header,omitempty"` + Response string `protobuf:"bytes,12,opt,name=response,proto3" json:"response,omitempty"` + ResponseHeader string `protobuf:"bytes,13,opt,name=response_header,json=responseHeader,proto3" json:"response_header,omitempty"` + Error *string `protobuf:"bytes,14,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *IngressEvent) Reset() { + *x = IngressEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IngressEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngressEvent) ProtoMessage() {} + +func (x *IngressEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[4] + 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 IngressEvent.ProtoReflect.Descriptor instead. +func (*IngressEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{4} +} + +func (x *IngressEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *IngressEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *IngressEvent) GetVerbRef() *v1.Ref { + if x != nil { + return x.VerbRef + } + return nil +} + +func (x *IngressEvent) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *IngressEvent) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *IngressEvent) GetStatusCode() int32 { + if x != nil { + return x.StatusCode + } + return 0 +} + +func (x *IngressEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *IngressEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *IngressEvent) GetRequest() string { + if x != nil { + return x.Request + } + return "" +} + +func (x *IngressEvent) GetRequestHeader() string { + if x != nil { + return x.RequestHeader + } + return "" +} + +func (x *IngressEvent) GetResponse() string { + if x != nil { + return x.Response + } + return "" +} + +func (x *IngressEvent) GetResponseHeader() string { + if x != nil { + return x.ResponseHeader + } + return "" +} + +func (x *IngressEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type CronScheduledEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,2,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"` + ScheduledAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=scheduled_at,json=scheduledAt,proto3" json:"scheduled_at,omitempty"` + Schedule string `protobuf:"bytes,6,opt,name=schedule,proto3" json:"schedule,omitempty"` + Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *CronScheduledEvent) Reset() { + *x = CronScheduledEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CronScheduledEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CronScheduledEvent) ProtoMessage() {} + +func (x *CronScheduledEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[5] + 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 CronScheduledEvent.ProtoReflect.Descriptor instead. +func (*CronScheduledEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{5} +} + +func (x *CronScheduledEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *CronScheduledEvent) GetVerbRef() *v1.Ref { + if x != nil { + return x.VerbRef + } + return nil +} + +func (x *CronScheduledEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *CronScheduledEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *CronScheduledEvent) GetScheduledAt() *timestamppb.Timestamp { + if x != nil { + return x.ScheduledAt + } + return nil +} + +func (x *CronScheduledEvent) GetSchedule() string { + if x != nil { + return x.Schedule + } + return "" +} + +func (x *CronScheduledEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type AsyncExecuteEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` + AsyncEventType AsyncExecuteEventType `protobuf:"varint,6,opt,name=async_event_type,json=asyncEventType,proto3,enum=xyz.block.ftl.timeline.v1.AsyncExecuteEventType" json:"async_event_type,omitempty"` + Error *string `protobuf:"bytes,7,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *AsyncExecuteEvent) Reset() { + *x = AsyncExecuteEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AsyncExecuteEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AsyncExecuteEvent) ProtoMessage() {} + +func (x *AsyncExecuteEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[6] + 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 AsyncExecuteEvent.ProtoReflect.Descriptor instead. +func (*AsyncExecuteEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{6} +} + +func (x *AsyncExecuteEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *AsyncExecuteEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *AsyncExecuteEvent) GetVerbRef() *v1.Ref { + if x != nil { + return x.VerbRef + } + return nil +} + +func (x *AsyncExecuteEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *AsyncExecuteEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *AsyncExecuteEvent) GetAsyncEventType() AsyncExecuteEventType { + if x != nil { + return x.AsyncEventType + } + return AsyncExecuteEventType_ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED +} + +func (x *AsyncExecuteEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type PubSubPublishEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + VerbRef *v1.Ref `protobuf:"bytes,3,opt,name=verb_ref,json=verbRef,proto3" json:"verb_ref,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` + Topic string `protobuf:"bytes,6,opt,name=topic,proto3" json:"topic,omitempty"` + Request string `protobuf:"bytes,7,opt,name=request,proto3" json:"request,omitempty"` + Error *string `protobuf:"bytes,8,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *PubSubPublishEvent) Reset() { + *x = PubSubPublishEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PubSubPublishEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PubSubPublishEvent) ProtoMessage() {} + +func (x *PubSubPublishEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[7] + 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 PubSubPublishEvent.ProtoReflect.Descriptor instead. +func (*PubSubPublishEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{7} +} + +func (x *PubSubPublishEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *PubSubPublishEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *PubSubPublishEvent) GetVerbRef() *v1.Ref { + if x != nil { + return x.VerbRef + } + return nil +} + +func (x *PubSubPublishEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *PubSubPublishEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *PubSubPublishEvent) GetTopic() string { + if x != nil { + return x.Topic + } + return "" +} + +func (x *PubSubPublishEvent) GetRequest() string { + if x != nil { + return x.Request + } + return "" +} + +func (x *PubSubPublishEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type PubSubConsumeEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + RequestKey *string `protobuf:"bytes,2,opt,name=request_key,json=requestKey,proto3,oneof" json:"request_key,omitempty"` + DestVerbModule *string `protobuf:"bytes,3,opt,name=dest_verb_module,json=destVerbModule,proto3,oneof" json:"dest_verb_module,omitempty"` + DestVerbName *string `protobuf:"bytes,4,opt,name=dest_verb_name,json=destVerbName,proto3,oneof" json:"dest_verb_name,omitempty"` + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,6,opt,name=duration,proto3" json:"duration,omitempty"` + Topic string `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + Error *string `protobuf:"bytes,8,opt,name=error,proto3,oneof" json:"error,omitempty"` +} + +func (x *PubSubConsumeEvent) Reset() { + *x = PubSubConsumeEvent{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PubSubConsumeEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PubSubConsumeEvent) ProtoMessage() {} + +func (x *PubSubConsumeEvent) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[8] + 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 PubSubConsumeEvent.ProtoReflect.Descriptor instead. +func (*PubSubConsumeEvent) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{8} +} + +func (x *PubSubConsumeEvent) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *PubSubConsumeEvent) GetRequestKey() string { + if x != nil && x.RequestKey != nil { + return *x.RequestKey + } + return "" +} + +func (x *PubSubConsumeEvent) GetDestVerbModule() string { + if x != nil && x.DestVerbModule != nil { + return *x.DestVerbModule + } + return "" +} + +func (x *PubSubConsumeEvent) GetDestVerbName() string { + if x != nil && x.DestVerbName != nil { + return *x.DestVerbName + } + return "" +} + +func (x *PubSubConsumeEvent) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *PubSubConsumeEvent) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *PubSubConsumeEvent) GetTopic() string { + if x != nil { + return x.Topic + } + return "" +} + +func (x *PubSubConsumeEvent) GetError() string { + if x != nil && x.Error != nil { + return *x.Error + } + return "" +} + +type Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TimeStamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` + // Unique ID for event. + Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + // Types that are assignable to Entry: + // + // *Event_Log + // *Event_Call + // *Event_DeploymentCreated + // *Event_DeploymentUpdated + // *Event_Ingress + // *Event_CronScheduled + // *Event_AsyncExecute + // *Event_PubsubPublish + // *Event_PubsubConsume + Entry isEvent_Entry `protobuf_oneof:"entry"` +} + +func (x *Event) Reset() { + *x = Event{} + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Event) ProtoMessage() {} + +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[9] + 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 Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP(), []int{9} +} + +func (x *Event) GetTimeStamp() *timestamppb.Timestamp { + if x != nil { + return x.TimeStamp + } + return nil +} + +func (x *Event) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (m *Event) GetEntry() isEvent_Entry { + if m != nil { + return m.Entry + } + return nil +} + +func (x *Event) GetLog() *LogEvent { + if x, ok := x.GetEntry().(*Event_Log); ok { + return x.Log + } + return nil +} + +func (x *Event) GetCall() *CallEvent { + if x, ok := x.GetEntry().(*Event_Call); ok { + return x.Call + } + return nil +} + +func (x *Event) GetDeploymentCreated() *DeploymentCreatedEvent { + if x, ok := x.GetEntry().(*Event_DeploymentCreated); ok { + return x.DeploymentCreated + } + return nil +} + +func (x *Event) GetDeploymentUpdated() *DeploymentUpdatedEvent { + if x, ok := x.GetEntry().(*Event_DeploymentUpdated); ok { + return x.DeploymentUpdated + } + return nil +} + +func (x *Event) GetIngress() *IngressEvent { + if x, ok := x.GetEntry().(*Event_Ingress); ok { + return x.Ingress + } + return nil +} + +func (x *Event) GetCronScheduled() *CronScheduledEvent { + if x, ok := x.GetEntry().(*Event_CronScheduled); ok { + return x.CronScheduled + } + return nil +} + +func (x *Event) GetAsyncExecute() *AsyncExecuteEvent { + if x, ok := x.GetEntry().(*Event_AsyncExecute); ok { + return x.AsyncExecute + } + return nil +} + +func (x *Event) GetPubsubPublish() *PubSubPublishEvent { + if x, ok := x.GetEntry().(*Event_PubsubPublish); ok { + return x.PubsubPublish + } + return nil +} + +func (x *Event) GetPubsubConsume() *PubSubConsumeEvent { + if x, ok := x.GetEntry().(*Event_PubsubConsume); ok { + return x.PubsubConsume + } + return nil +} + +type isEvent_Entry interface { + isEvent_Entry() +} + +type Event_Log struct { + Log *LogEvent `protobuf:"bytes,3,opt,name=log,proto3,oneof"` +} + +type Event_Call struct { + Call *CallEvent `protobuf:"bytes,4,opt,name=call,proto3,oneof"` +} + +type Event_DeploymentCreated struct { + DeploymentCreated *DeploymentCreatedEvent `protobuf:"bytes,5,opt,name=deployment_created,json=deploymentCreated,proto3,oneof"` +} + +type Event_DeploymentUpdated struct { + DeploymentUpdated *DeploymentUpdatedEvent `protobuf:"bytes,6,opt,name=deployment_updated,json=deploymentUpdated,proto3,oneof"` +} + +type Event_Ingress struct { + Ingress *IngressEvent `protobuf:"bytes,7,opt,name=ingress,proto3,oneof"` +} + +type Event_CronScheduled struct { + CronScheduled *CronScheduledEvent `protobuf:"bytes,8,opt,name=cron_scheduled,json=cronScheduled,proto3,oneof"` +} + +type Event_AsyncExecute struct { + AsyncExecute *AsyncExecuteEvent `protobuf:"bytes,9,opt,name=async_execute,json=asyncExecute,proto3,oneof"` +} + +type Event_PubsubPublish struct { + PubsubPublish *PubSubPublishEvent `protobuf:"bytes,10,opt,name=pubsub_publish,json=pubsubPublish,proto3,oneof"` +} + +type Event_PubsubConsume struct { + PubsubConsume *PubSubConsumeEvent `protobuf:"bytes,11,opt,name=pubsub_consume,json=pubsubConsume,proto3,oneof"` +} + +func (*Event_Log) isEvent_Entry() {} + +func (*Event_Call) isEvent_Entry() {} + +func (*Event_DeploymentCreated) isEvent_Entry() {} + +func (*Event_DeploymentUpdated) isEvent_Entry() {} + +func (*Event_Ingress) isEvent_Entry() {} + +func (*Event_CronScheduled) isEvent_Entry() {} + +func (*Event_AsyncExecute) isEvent_Entry() {} + +func (*Event_PubsubPublish) isEvent_Entry() {} + +func (*Event_PubsubConsume) isEvent_Entry() {} + +var File_xyz_block_ftl_timeline_v1_event_proto protoreflect.FileDescriptor + +var file_xyz_block_ftl_timeline_v1_event_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, + 0x74, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, 0x08, 0x4c, 0x6f, + 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, + 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x53, 0x0a, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, + 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x22, 0x95, 0x04, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 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, 0x12, 0x39, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x49, 0x0a, 0x0f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 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, 0x01, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x62, 0x52, 0x65, + 0x66, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0c, 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, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x62, 0x52, 0x65, 0x66, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x4a, + 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xb8, 0x01, 0x0a, 0x16, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 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, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x22, 0x79, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x4d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x22, 0x8e, 0x04, 0x0a, 0x0c, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, + 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0xe6, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x12, 0x37, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 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, 0x07, 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x9c, 0x03, 0x0a, 0x11, + 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, 0x07, + 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x10, 0x61, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xf1, 0x02, 0x0a, 0x12, 0x50, + 0x75, 0x62, 0x53, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x08, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 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, 0x07, + 0x76, 0x65, 0x72, 0x62, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xa0, + 0x03, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0e, + 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x62, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x5f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0xba, 0x06, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, + 0x3a, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x62, 0x0a, 0x12, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x62, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x07, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x63, 0x72, 0x6f, 0x6e, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, + 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x6f, + 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, + 0x12, 0x53, 0x0a, 0x0d, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, + 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x56, 0x0a, + 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2a, 0xa9, + 0x02, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, + 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, + 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, + 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x53, 0x59, + 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x10, 0x07, 0x12, 0x1d, 0x0a, 0x19, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, + 0x42, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x53, 0x55, 0x42, + 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x10, 0x09, 0x2a, 0x89, 0x01, 0x0a, 0x15, 0x41, + 0x73, 0x79, 0x6e, 0x63, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, + 0x0a, 0x1d, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, + 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, + 0x42, 0x53, 0x55, 0x42, 0x10, 0x02, 0x2a, 0x8c, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, + 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x0d, + 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x11, 0x42, 0x52, 0x50, 0x01, 0x5a, 0x4e, 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, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x74, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_xyz_block_ftl_timeline_v1_event_proto_rawDescOnce sync.Once + file_xyz_block_ftl_timeline_v1_event_proto_rawDescData = file_xyz_block_ftl_timeline_v1_event_proto_rawDesc +) + +func file_xyz_block_ftl_timeline_v1_event_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_timeline_v1_event_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_timeline_v1_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_timeline_v1_event_proto_rawDescData) + }) + return file_xyz_block_ftl_timeline_v1_event_proto_rawDescData +} + +var file_xyz_block_ftl_timeline_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_xyz_block_ftl_timeline_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_xyz_block_ftl_timeline_v1_event_proto_goTypes = []any{ + (EventType)(0), // 0: xyz.block.ftl.timeline.v1.EventType + (AsyncExecuteEventType)(0), // 1: xyz.block.ftl.timeline.v1.AsyncExecuteEventType + (LogLevel)(0), // 2: xyz.block.ftl.timeline.v1.LogLevel + (*LogEvent)(nil), // 3: xyz.block.ftl.timeline.v1.LogEvent + (*CallEvent)(nil), // 4: xyz.block.ftl.timeline.v1.CallEvent + (*DeploymentCreatedEvent)(nil), // 5: xyz.block.ftl.timeline.v1.DeploymentCreatedEvent + (*DeploymentUpdatedEvent)(nil), // 6: xyz.block.ftl.timeline.v1.DeploymentUpdatedEvent + (*IngressEvent)(nil), // 7: xyz.block.ftl.timeline.v1.IngressEvent + (*CronScheduledEvent)(nil), // 8: xyz.block.ftl.timeline.v1.CronScheduledEvent + (*AsyncExecuteEvent)(nil), // 9: xyz.block.ftl.timeline.v1.AsyncExecuteEvent + (*PubSubPublishEvent)(nil), // 10: xyz.block.ftl.timeline.v1.PubSubPublishEvent + (*PubSubConsumeEvent)(nil), // 11: xyz.block.ftl.timeline.v1.PubSubConsumeEvent + (*Event)(nil), // 12: xyz.block.ftl.timeline.v1.Event + nil, // 13: xyz.block.ftl.timeline.v1.LogEvent.AttributesEntry + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp + (*v1.Ref)(nil), // 15: xyz.block.ftl.schema.v1.Ref + (*durationpb.Duration)(nil), // 16: google.protobuf.Duration +} +var file_xyz_block_ftl_timeline_v1_event_proto_depIdxs = []int32{ + 14, // 0: xyz.block.ftl.timeline.v1.LogEvent.time_stamp:type_name -> google.protobuf.Timestamp + 13, // 1: xyz.block.ftl.timeline.v1.LogEvent.attributes:type_name -> xyz.block.ftl.timeline.v1.LogEvent.AttributesEntry + 14, // 2: xyz.block.ftl.timeline.v1.CallEvent.time_stamp:type_name -> google.protobuf.Timestamp + 15, // 3: xyz.block.ftl.timeline.v1.CallEvent.source_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 15, // 4: xyz.block.ftl.timeline.v1.CallEvent.destination_verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 16, // 5: xyz.block.ftl.timeline.v1.CallEvent.duration:type_name -> google.protobuf.Duration + 15, // 6: xyz.block.ftl.timeline.v1.IngressEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 14, // 7: xyz.block.ftl.timeline.v1.IngressEvent.time_stamp:type_name -> google.protobuf.Timestamp + 16, // 8: xyz.block.ftl.timeline.v1.IngressEvent.duration:type_name -> google.protobuf.Duration + 15, // 9: xyz.block.ftl.timeline.v1.CronScheduledEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 14, // 10: xyz.block.ftl.timeline.v1.CronScheduledEvent.time_stamp:type_name -> google.protobuf.Timestamp + 16, // 11: xyz.block.ftl.timeline.v1.CronScheduledEvent.duration:type_name -> google.protobuf.Duration + 14, // 12: xyz.block.ftl.timeline.v1.CronScheduledEvent.scheduled_at:type_name -> google.protobuf.Timestamp + 15, // 13: xyz.block.ftl.timeline.v1.AsyncExecuteEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 14, // 14: xyz.block.ftl.timeline.v1.AsyncExecuteEvent.time_stamp:type_name -> google.protobuf.Timestamp + 16, // 15: xyz.block.ftl.timeline.v1.AsyncExecuteEvent.duration:type_name -> google.protobuf.Duration + 1, // 16: xyz.block.ftl.timeline.v1.AsyncExecuteEvent.async_event_type:type_name -> xyz.block.ftl.timeline.v1.AsyncExecuteEventType + 15, // 17: xyz.block.ftl.timeline.v1.PubSubPublishEvent.verb_ref:type_name -> xyz.block.ftl.schema.v1.Ref + 14, // 18: xyz.block.ftl.timeline.v1.PubSubPublishEvent.time_stamp:type_name -> google.protobuf.Timestamp + 16, // 19: xyz.block.ftl.timeline.v1.PubSubPublishEvent.duration:type_name -> google.protobuf.Duration + 14, // 20: xyz.block.ftl.timeline.v1.PubSubConsumeEvent.time_stamp:type_name -> google.protobuf.Timestamp + 16, // 21: xyz.block.ftl.timeline.v1.PubSubConsumeEvent.duration:type_name -> google.protobuf.Duration + 14, // 22: xyz.block.ftl.timeline.v1.Event.time_stamp:type_name -> google.protobuf.Timestamp + 3, // 23: xyz.block.ftl.timeline.v1.Event.log:type_name -> xyz.block.ftl.timeline.v1.LogEvent + 4, // 24: xyz.block.ftl.timeline.v1.Event.call:type_name -> xyz.block.ftl.timeline.v1.CallEvent + 5, // 25: xyz.block.ftl.timeline.v1.Event.deployment_created:type_name -> xyz.block.ftl.timeline.v1.DeploymentCreatedEvent + 6, // 26: xyz.block.ftl.timeline.v1.Event.deployment_updated:type_name -> xyz.block.ftl.timeline.v1.DeploymentUpdatedEvent + 7, // 27: xyz.block.ftl.timeline.v1.Event.ingress:type_name -> xyz.block.ftl.timeline.v1.IngressEvent + 8, // 28: xyz.block.ftl.timeline.v1.Event.cron_scheduled:type_name -> xyz.block.ftl.timeline.v1.CronScheduledEvent + 9, // 29: xyz.block.ftl.timeline.v1.Event.async_execute:type_name -> xyz.block.ftl.timeline.v1.AsyncExecuteEvent + 10, // 30: xyz.block.ftl.timeline.v1.Event.pubsub_publish:type_name -> xyz.block.ftl.timeline.v1.PubSubPublishEvent + 11, // 31: xyz.block.ftl.timeline.v1.Event.pubsub_consume:type_name -> xyz.block.ftl.timeline.v1.PubSubConsumeEvent + 32, // [32:32] is the sub-list for method output_type + 32, // [32:32] is the sub-list for method input_type + 32, // [32:32] is the sub-list for extension type_name + 32, // [32:32] is the sub-list for extension extendee + 0, // [0:32] is the sub-list for field type_name +} + +func init() { file_xyz_block_ftl_timeline_v1_event_proto_init() } +func file_xyz_block_ftl_timeline_v1_event_proto_init() { + if File_xyz_block_ftl_timeline_v1_event_proto != nil { + return + } + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[0].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[1].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[2].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[4].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[5].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[6].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[7].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[8].OneofWrappers = []any{} + file_xyz_block_ftl_timeline_v1_event_proto_msgTypes[9].OneofWrappers = []any{ + (*Event_Log)(nil), + (*Event_Call)(nil), + (*Event_DeploymentCreated)(nil), + (*Event_DeploymentUpdated)(nil), + (*Event_Ingress)(nil), + (*Event_CronScheduled)(nil), + (*Event_AsyncExecute)(nil), + (*Event_PubsubPublish)(nil), + (*Event_PubsubConsume)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_xyz_block_ftl_timeline_v1_event_proto_rawDesc, + NumEnums: 3, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_xyz_block_ftl_timeline_v1_event_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_timeline_v1_event_proto_depIdxs, + EnumInfos: file_xyz_block_ftl_timeline_v1_event_proto_enumTypes, + MessageInfos: file_xyz_block_ftl_timeline_v1_event_proto_msgTypes, + }.Build() + File_xyz_block_ftl_timeline_v1_event_proto = out.File + file_xyz_block_ftl_timeline_v1_event_proto_rawDesc = nil + file_xyz_block_ftl_timeline_v1_event_proto_goTypes = nil + file_xyz_block_ftl_timeline_v1_event_proto_depIdxs = nil +} diff --git a/backend/protos/xyz/block/ftl/timeline/v1/event.proto b/backend/protos/xyz/block/ftl/timeline/v1/event.proto new file mode 100644 index 0000000000..bb4d03deab --- /dev/null +++ b/backend/protos/xyz/block/ftl/timeline/v1/event.proto @@ -0,0 +1,153 @@ +syntax = "proto3"; + +package xyz.block.ftl.timeline.v1; + +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "xyz/block/ftl/schema/v1/schema.proto"; + +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1"; +option java_multiple_files = true; + +enum EventType { + EVENT_TYPE_UNSPECIFIED = 0; + EVENT_TYPE_LOG = 1; + EVENT_TYPE_CALL = 2; + EVENT_TYPE_DEPLOYMENT_CREATED = 3; + EVENT_TYPE_DEPLOYMENT_UPDATED = 4; + EVENT_TYPE_INGRESS = 5; + EVENT_TYPE_CRON_SCHEDULED = 6; + EVENT_TYPE_ASYNC_EXECUTE = 7; + EVENT_TYPE_PUBSUB_PUBLISH = 8; + EVENT_TYPE_PUBSUB_CONSUME = 9; +} + +enum AsyncExecuteEventType { + ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; + ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; + ASYNC_EXECUTE_EVENT_TYPE_PUBSUB = 2; +} + +enum LogLevel { + LOG_LEVEL_UNSPECIFIED = 0; + LOG_LEVEL_TRACE = 1; + LOG_LEVEL_DEBUG = 5; + LOG_LEVEL_INFO = 9; + LOG_LEVEL_WARN = 13; + LOG_LEVEL_ERROR = 17; +} + +message LogEvent { + string deployment_key = 1; + optional string request_key = 2; + google.protobuf.Timestamp time_stamp = 3; + int32 log_level = 4; + map attributes = 5; + string message = 6; + optional string error = 7; + optional string stack = 8; +} + +message CallEvent { + optional string request_key = 1; + string deployment_key = 2; + google.protobuf.Timestamp time_stamp = 3; + optional ftl.schema.v1.Ref source_verb_ref = 11; + ftl.schema.v1.Ref destination_verb_ref = 12; + google.protobuf.Duration duration = 6; + string request = 7; + string response = 8; + optional string error = 9; + optional string stack = 10; + + reserved 4, 5; +} + +message DeploymentCreatedEvent { + string key = 1; + string language = 2; + string module_name = 3; + int32 min_replicas = 4; + optional string replaced = 5; +} + +message DeploymentUpdatedEvent { + string key = 1; + int32 min_replicas = 2; + int32 prev_min_replicas = 3; +} + +message IngressEvent { + string deployment_key = 1; + optional string request_key = 2; + ftl.schema.v1.Ref verb_ref = 3; + string method = 4; + string path = 5; + int32 status_code = 7; + google.protobuf.Timestamp time_stamp = 8; + google.protobuf.Duration duration = 9; + string request = 10; + string request_header = 11; + string response = 12; + string response_header = 13; + optional string error = 14; +} + +message CronScheduledEvent { + string deployment_key = 1; + ftl.schema.v1.Ref verb_ref = 2; + google.protobuf.Timestamp time_stamp = 3; + google.protobuf.Duration duration = 4; + google.protobuf.Timestamp scheduled_at = 5; + string schedule = 6; + optional string error = 7; +} + +message AsyncExecuteEvent { + string deployment_key = 1; + optional string request_key = 2; + ftl.schema.v1.Ref verb_ref = 3; + google.protobuf.Timestamp time_stamp = 4; + google.protobuf.Duration duration = 5; + AsyncExecuteEventType async_event_type = 6; + optional string error = 7; +} + +message PubSubPublishEvent { + string deployment_key = 1; + optional string request_key = 2; + ftl.schema.v1.Ref verb_ref = 3; + google.protobuf.Timestamp time_stamp = 4; + google.protobuf.Duration duration = 5; + string topic = 6; + string request = 7; + optional string error = 8; +} + +message PubSubConsumeEvent { + string deployment_key = 1; + optional string request_key = 2; + optional string dest_verb_module = 3; + optional string dest_verb_name = 4; + google.protobuf.Timestamp time_stamp = 5; + google.protobuf.Duration duration = 6; + string topic = 7; + optional string error = 8; +} + +message Event { + google.protobuf.Timestamp time_stamp = 1; + // Unique ID for event. + int64 id = 2; + oneof entry { + LogEvent log = 3; + CallEvent call = 4; + DeploymentCreatedEvent deployment_created = 5; + DeploymentUpdatedEvent deployment_updated = 6; + IngressEvent ingress = 7; + CronScheduledEvent cron_scheduled = 8; + AsyncExecuteEvent async_execute = 9; + PubSubPublishEvent pubsub_publish = 10; + PubSubConsumeEvent pubsub_consume = 11; + } +} diff --git a/backend/protos/xyz/block/ftl/timeline/v1/timeline.pb.go b/backend/protos/xyz/block/ftl/timeline/v1/timeline.pb.go new file mode 100644 index 0000000000..f7aa9d17ef --- /dev/null +++ b/backend/protos/xyz/block/ftl/timeline/v1/timeline.pb.go @@ -0,0 +1,372 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc (unknown) +// source: xyz/block/ftl/timeline/v1/timeline.proto + +package timelinev1 + +import ( + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GetTimelineRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeploymentKey string `protobuf:"bytes,1,opt,name=deployment_key,json=deploymentKey,proto3" json:"deployment_key,omitempty"` + SinceId *int64 `protobuf:"varint,2,opt,name=since_id,json=sinceId,proto3,oneof" json:"since_id,omitempty"` + Limit *int32 `protobuf:"varint,3,opt,name=limit,proto3,oneof" json:"limit,omitempty"` + EventTypes []EventType `protobuf:"varint,4,rep,packed,name=event_types,json=eventTypes,proto3,enum=xyz.block.ftl.timeline.v1.EventType" json:"event_types,omitempty"` +} + +func (x *GetTimelineRequest) Reset() { + *x = GetTimelineRequest{} + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetTimelineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTimelineRequest) ProtoMessage() {} + +func (x *GetTimelineRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[0] + 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 GetTimelineRequest.ProtoReflect.Descriptor instead. +func (*GetTimelineRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescGZIP(), []int{0} +} + +func (x *GetTimelineRequest) GetDeploymentKey() string { + if x != nil { + return x.DeploymentKey + } + return "" +} + +func (x *GetTimelineRequest) GetSinceId() int64 { + if x != nil && x.SinceId != nil { + return *x.SinceId + } + return 0 +} + +func (x *GetTimelineRequest) GetLimit() int32 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +func (x *GetTimelineRequest) GetEventTypes() []EventType { + if x != nil { + return x.EventTypes + } + return nil +} + +type GetTimelineResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *GetTimelineResponse) Reset() { + *x = GetTimelineResponse{} + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetTimelineResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTimelineResponse) ProtoMessage() {} + +func (x *GetTimelineResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[1] + 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 GetTimelineResponse.ProtoReflect.Descriptor instead. +func (*GetTimelineResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescGZIP(), []int{1} +} + +func (x *GetTimelineResponse) GetEvents() []*Event { + if x != nil { + return x.Events + } + return nil +} + +type DeleteOldEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EventType EventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=xyz.block.ftl.timeline.v1.EventType" json:"event_type,omitempty"` + AgeSeconds int64 `protobuf:"varint,2,opt,name=age_seconds,json=ageSeconds,proto3" json:"age_seconds,omitempty"` +} + +func (x *DeleteOldEventsRequest) Reset() { + *x = DeleteOldEventsRequest{} + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteOldEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteOldEventsRequest) ProtoMessage() {} + +func (x *DeleteOldEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[2] + 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 DeleteOldEventsRequest.ProtoReflect.Descriptor instead. +func (*DeleteOldEventsRequest) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescGZIP(), []int{2} +} + +func (x *DeleteOldEventsRequest) GetEventType() EventType { + if x != nil { + return x.EventType + } + return EventType_EVENT_TYPE_UNSPECIFIED +} + +func (x *DeleteOldEventsRequest) GetAgeSeconds() int64 { + if x != nil { + return x.AgeSeconds + } + return 0 +} + +type DeleteOldEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeletedCount int64 `protobuf:"varint,1,opt,name=deleted_count,json=deletedCount,proto3" json:"deleted_count,omitempty"` +} + +func (x *DeleteOldEventsResponse) Reset() { + *x = DeleteOldEventsResponse{} + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteOldEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteOldEventsResponse) ProtoMessage() {} + +func (x *DeleteOldEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[3] + 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 DeleteOldEventsResponse.ProtoReflect.Descriptor instead. +func (*DeleteOldEventsResponse) Descriptor() ([]byte, []int) { + return file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescGZIP(), []int{3} +} + +func (x *DeleteOldEventsResponse) GetDeletedCount() int64 { + if x != nil { + return x.DeletedCount + } + return 0 +} + +var File_xyz_block_ftl_timeline_v1_timeline_proto protoreflect.FileDescriptor + +var file_xyz_block_ftl_timeline_v1_timeline_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x25, 0x78, 0x79, 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, + 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x78, 0x79, + 0x7a, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x66, 0x74, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x74, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x69, 0x6e, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, + 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x7e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6c, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x67, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x22, 0x3e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6c, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x32, 0xcc, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x78, + 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x78, 0x79, + 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, + 0x12, 0x71, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x2d, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, + 0x90, 0x02, 0x01, 0x12, 0x7a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6c, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6c, 0x64, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x78, 0x79, 0x7a, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x66, 0x74, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6c, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x52, 0x50, 0x01, 0x5a, 0x4e, 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, 0x74, 0x69, 0x6d, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescOnce sync.Once + file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescData = file_xyz_block_ftl_timeline_v1_timeline_proto_rawDesc +) + +func file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescGZIP() []byte { + file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescOnce.Do(func() { + file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescData = protoimpl.X.CompressGZIP(file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescData) + }) + return file_xyz_block_ftl_timeline_v1_timeline_proto_rawDescData +} + +var file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_xyz_block_ftl_timeline_v1_timeline_proto_goTypes = []any{ + (*GetTimelineRequest)(nil), // 0: xyz.block.ftl.timeline.v1.GetTimelineRequest + (*GetTimelineResponse)(nil), // 1: xyz.block.ftl.timeline.v1.GetTimelineResponse + (*DeleteOldEventsRequest)(nil), // 2: xyz.block.ftl.timeline.v1.DeleteOldEventsRequest + (*DeleteOldEventsResponse)(nil), // 3: xyz.block.ftl.timeline.v1.DeleteOldEventsResponse + (EventType)(0), // 4: xyz.block.ftl.timeline.v1.EventType + (*Event)(nil), // 5: xyz.block.ftl.timeline.v1.Event + (*v1.PingRequest)(nil), // 6: xyz.block.ftl.v1.PingRequest + (*v1.PingResponse)(nil), // 7: xyz.block.ftl.v1.PingResponse +} +var file_xyz_block_ftl_timeline_v1_timeline_proto_depIdxs = []int32{ + 4, // 0: xyz.block.ftl.timeline.v1.GetTimelineRequest.event_types:type_name -> xyz.block.ftl.timeline.v1.EventType + 5, // 1: xyz.block.ftl.timeline.v1.GetTimelineResponse.events:type_name -> xyz.block.ftl.timeline.v1.Event + 4, // 2: xyz.block.ftl.timeline.v1.DeleteOldEventsRequest.event_type:type_name -> xyz.block.ftl.timeline.v1.EventType + 6, // 3: xyz.block.ftl.timeline.v1.TimelineService.Ping:input_type -> xyz.block.ftl.v1.PingRequest + 0, // 4: xyz.block.ftl.timeline.v1.TimelineService.GetTimeline:input_type -> xyz.block.ftl.timeline.v1.GetTimelineRequest + 2, // 5: xyz.block.ftl.timeline.v1.TimelineService.DeleteOldEvents:input_type -> xyz.block.ftl.timeline.v1.DeleteOldEventsRequest + 7, // 6: xyz.block.ftl.timeline.v1.TimelineService.Ping:output_type -> xyz.block.ftl.v1.PingResponse + 1, // 7: xyz.block.ftl.timeline.v1.TimelineService.GetTimeline:output_type -> xyz.block.ftl.timeline.v1.GetTimelineResponse + 3, // 8: xyz.block.ftl.timeline.v1.TimelineService.DeleteOldEvents:output_type -> xyz.block.ftl.timeline.v1.DeleteOldEventsResponse + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_xyz_block_ftl_timeline_v1_timeline_proto_init() } +func file_xyz_block_ftl_timeline_v1_timeline_proto_init() { + if File_xyz_block_ftl_timeline_v1_timeline_proto != nil { + return + } + file_xyz_block_ftl_timeline_v1_event_proto_init() + file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes[0].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_xyz_block_ftl_timeline_v1_timeline_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_xyz_block_ftl_timeline_v1_timeline_proto_goTypes, + DependencyIndexes: file_xyz_block_ftl_timeline_v1_timeline_proto_depIdxs, + MessageInfos: file_xyz_block_ftl_timeline_v1_timeline_proto_msgTypes, + }.Build() + File_xyz_block_ftl_timeline_v1_timeline_proto = out.File + file_xyz_block_ftl_timeline_v1_timeline_proto_rawDesc = nil + file_xyz_block_ftl_timeline_v1_timeline_proto_goTypes = nil + file_xyz_block_ftl_timeline_v1_timeline_proto_depIdxs = nil +} diff --git a/backend/protos/xyz/block/ftl/timeline/v1/timeline.proto b/backend/protos/xyz/block/ftl/timeline/v1/timeline.proto new file mode 100644 index 0000000000..6e2cf03f2c --- /dev/null +++ b/backend/protos/xyz/block/ftl/timeline/v1/timeline.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; + +package xyz.block.ftl.timeline.v1; + +import "xyz/block/ftl/timeline/v1/event.proto"; +import "xyz/block/ftl/v1/ftl.proto"; + +option go_package = "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1"; +option java_multiple_files = true; + +message GetTimelineRequest { + string deployment_key = 1; + optional int64 since_id = 2; + optional int32 limit = 3; + repeated timeline.v1.EventType event_types = 4; +} + +message GetTimelineResponse { + repeated timeline.v1.Event events = 1; +} + +message DeleteOldEventsRequest { + timeline.v1.EventType event_type = 1; + int64 age_seconds = 2; +} + +message DeleteOldEventsResponse { + int64 deleted_count = 1; +} + +service TimelineService { + // Ping service for readiness + rpc Ping(ftl.v1.PingRequest) returns (ftl.v1.PingResponse) { + option idempotency_level = NO_SIDE_EFFECTS; + } + + // Get timeline events, optionally filtered by type and time + rpc GetTimeline(GetTimelineRequest) returns (GetTimelineResponse) { + option idempotency_level = NO_SIDE_EFFECTS; + } + + // Delete old events of a specific type + rpc DeleteOldEvents(DeleteOldEventsRequest) returns (DeleteOldEventsResponse) {} +} diff --git a/backend/protos/xyz/block/ftl/timeline/v1/timelinev1connect/timeline.connect.go b/backend/protos/xyz/block/ftl/timeline/v1/timelinev1connect/timeline.connect.go new file mode 100644 index 0000000000..b67f217e37 --- /dev/null +++ b/backend/protos/xyz/block/ftl/timeline/v1/timelinev1connect/timeline.connect.go @@ -0,0 +1,170 @@ +// Code generated by protoc-gen-connect-go. DO NOT EDIT. +// +// Source: xyz/block/ftl/timeline/v1/timeline.proto + +package timelinev1connect + +import ( + connect "connectrpc.com/connect" + context "context" + errors "errors" + v11 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" + v1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + http "net/http" + strings "strings" +) + +// This is a compile-time assertion to ensure that this generated file and the connect package are +// compatible. If you get a compiler error that this constant is not defined, this code was +// generated with a version of connect newer than the one compiled into your binary. You can fix the +// problem by either regenerating this code with an older version of connect or updating the connect +// version compiled into your binary. +const _ = connect.IsAtLeastVersion1_7_0 + +const ( + // TimelineServiceName is the fully-qualified name of the TimelineService service. + TimelineServiceName = "xyz.block.ftl.timeline.v1.TimelineService" +) + +// These constants are the fully-qualified names of the RPCs defined in this package. They're +// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route. +// +// Note that these are different from the fully-qualified method names used by +// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to +// reflection-formatted method names, remove the leading slash and convert the remaining slash to a +// period. +const ( + // TimelineServicePingProcedure is the fully-qualified name of the TimelineService's Ping RPC. + TimelineServicePingProcedure = "/xyz.block.ftl.timeline.v1.TimelineService/Ping" + // TimelineServiceGetTimelineProcedure is the fully-qualified name of the TimelineService's + // GetTimeline RPC. + TimelineServiceGetTimelineProcedure = "/xyz.block.ftl.timeline.v1.TimelineService/GetTimeline" + // TimelineServiceDeleteOldEventsProcedure is the fully-qualified name of the TimelineService's + // DeleteOldEvents RPC. + TimelineServiceDeleteOldEventsProcedure = "/xyz.block.ftl.timeline.v1.TimelineService/DeleteOldEvents" +) + +// TimelineServiceClient is a client for the xyz.block.ftl.timeline.v1.TimelineService service. +type TimelineServiceClient interface { + // Ping service for readiness + Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) + // Get timeline events, optionally filtered by type and time + GetTimeline(context.Context, *connect.Request[v11.GetTimelineRequest]) (*connect.Response[v11.GetTimelineResponse], error) + // Delete old events of a specific type + DeleteOldEvents(context.Context, *connect.Request[v11.DeleteOldEventsRequest]) (*connect.Response[v11.DeleteOldEventsResponse], error) +} + +// NewTimelineServiceClient constructs a client for the xyz.block.ftl.timeline.v1.TimelineService +// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for +// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply +// the connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewTimelineServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) TimelineServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &timelineServiceClient{ + ping: connect.NewClient[v1.PingRequest, v1.PingResponse]( + httpClient, + baseURL+TimelineServicePingProcedure, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithClientOptions(opts...), + ), + getTimeline: connect.NewClient[v11.GetTimelineRequest, v11.GetTimelineResponse]( + httpClient, + baseURL+TimelineServiceGetTimelineProcedure, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithClientOptions(opts...), + ), + deleteOldEvents: connect.NewClient[v11.DeleteOldEventsRequest, v11.DeleteOldEventsResponse]( + httpClient, + baseURL+TimelineServiceDeleteOldEventsProcedure, + opts..., + ), + } +} + +// timelineServiceClient implements TimelineServiceClient. +type timelineServiceClient struct { + ping *connect.Client[v1.PingRequest, v1.PingResponse] + getTimeline *connect.Client[v11.GetTimelineRequest, v11.GetTimelineResponse] + deleteOldEvents *connect.Client[v11.DeleteOldEventsRequest, v11.DeleteOldEventsResponse] +} + +// Ping calls xyz.block.ftl.timeline.v1.TimelineService.Ping. +func (c *timelineServiceClient) Ping(ctx context.Context, req *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { + return c.ping.CallUnary(ctx, req) +} + +// GetTimeline calls xyz.block.ftl.timeline.v1.TimelineService.GetTimeline. +func (c *timelineServiceClient) GetTimeline(ctx context.Context, req *connect.Request[v11.GetTimelineRequest]) (*connect.Response[v11.GetTimelineResponse], error) { + return c.getTimeline.CallUnary(ctx, req) +} + +// DeleteOldEvents calls xyz.block.ftl.timeline.v1.TimelineService.DeleteOldEvents. +func (c *timelineServiceClient) DeleteOldEvents(ctx context.Context, req *connect.Request[v11.DeleteOldEventsRequest]) (*connect.Response[v11.DeleteOldEventsResponse], error) { + return c.deleteOldEvents.CallUnary(ctx, req) +} + +// TimelineServiceHandler is an implementation of the xyz.block.ftl.timeline.v1.TimelineService +// service. +type TimelineServiceHandler interface { + // Ping service for readiness + Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) + // Get timeline events, optionally filtered by type and time + GetTimeline(context.Context, *connect.Request[v11.GetTimelineRequest]) (*connect.Response[v11.GetTimelineResponse], error) + // Delete old events of a specific type + DeleteOldEvents(context.Context, *connect.Request[v11.DeleteOldEventsRequest]) (*connect.Response[v11.DeleteOldEventsResponse], error) +} + +// NewTimelineServiceHandler builds an HTTP handler from the service implementation. It returns the +// path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewTimelineServiceHandler(svc TimelineServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + timelineServicePingHandler := connect.NewUnaryHandler( + TimelineServicePingProcedure, + svc.Ping, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithHandlerOptions(opts...), + ) + timelineServiceGetTimelineHandler := connect.NewUnaryHandler( + TimelineServiceGetTimelineProcedure, + svc.GetTimeline, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithHandlerOptions(opts...), + ) + timelineServiceDeleteOldEventsHandler := connect.NewUnaryHandler( + TimelineServiceDeleteOldEventsProcedure, + svc.DeleteOldEvents, + opts..., + ) + return "/xyz.block.ftl.timeline.v1.TimelineService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case TimelineServicePingProcedure: + timelineServicePingHandler.ServeHTTP(w, r) + case TimelineServiceGetTimelineProcedure: + timelineServiceGetTimelineHandler.ServeHTTP(w, r) + case TimelineServiceDeleteOldEventsProcedure: + timelineServiceDeleteOldEventsHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedTimelineServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedTimelineServiceHandler struct{} + +func (UnimplementedTimelineServiceHandler) Ping(context.Context, *connect.Request[v1.PingRequest]) (*connect.Response[v1.PingResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.timeline.v1.TimelineService.Ping is not implemented")) +} + +func (UnimplementedTimelineServiceHandler) GetTimeline(context.Context, *connect.Request[v11.GetTimelineRequest]) (*connect.Response[v11.GetTimelineResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.timeline.v1.TimelineService.GetTimeline is not implemented")) +} + +func (UnimplementedTimelineServiceHandler) DeleteOldEvents(context.Context, *connect.Request[v11.DeleteOldEventsRequest]) (*connect.Response[v11.DeleteOldEventsResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("xyz.block.ftl.timeline.v1.TimelineService.DeleteOldEvents is not implemented")) +} diff --git a/backend/timeline/service.go b/backend/timeline/service.go new file mode 100644 index 0000000000..6d91f14089 --- /dev/null +++ b/backend/timeline/service.go @@ -0,0 +1,59 @@ +package timeline + +import ( + "context" + "fmt" + "net/url" + + "connectrpc.com/connect" + "github.com/alecthomas/kong" + + timelinepb "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" + timelineconnect "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1/timelinev1connect" + ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" + "github.com/TBD54566975/ftl/internal/log" + "github.com/TBD54566975/ftl/internal/rpc" + "github.com/TBD54566975/ftl/internal/schema/schemaeventsource" +) + +type Config struct { + Bind *url.URL `help:"Socket to bind to." default:"http://127.0.0.1:8894" env:"FTL_BIND"` +} + +func (c *Config) SetDefaults() { + if err := kong.ApplyDefaults(c); err != nil { + panic(err) + } +} + +type service struct { + // TODO: add timeline schema view? (whatever is needed per the current timeline tables) +} + +func Start(ctx context.Context, config Config, schemaEventSource schemaeventsource.EventSource) error { + config.SetDefaults() + + logger := log.FromContext(ctx).Scope("timeline") + svc := &service{} + + logger.Debugf("Timeline service listening on: %s", config.Bind) + err := rpc.Serve(ctx, config.Bind, + rpc.GRPC(timelineconnect.NewTimelineServiceHandler, svc), + ) + if err != nil { + return fmt.Errorf("timeline service stopped serving: %w", err) + } + return nil +} + +func (s *service) Ping(ctx context.Context, req *connect.Request[ftlv1.PingRequest]) (*connect.Response[ftlv1.PingResponse], error) { + panic("not implemented") +} + +func (s *service) GetTimeline(ctx context.Context, req *connect.Request[timelinepb.GetTimelineRequest]) (*connect.Response[timelinepb.GetTimelineResponse], error) { + panic("not implemented") +} + +func (s *service) DeleteOldEvents(ctx context.Context, req *connect.Request[timelinepb.DeleteOldEventsRequest]) (*connect.Response[timelinepb.DeleteOldEventsResponse], error) { + panic("not implemented") +} diff --git a/cmd/ftl-http-ingress/main.go b/cmd/ftl-http-ingress/main.go index 0329e281c5..310aa61e7d 100644 --- a/cmd/ftl-http-ingress/main.go +++ b/cmd/ftl-http-ingress/main.go @@ -41,7 +41,7 @@ func main() { ) ctx := log.ContextWithLogger(context.Background(), log.Configure(os.Stderr, cli.LogConfig)) - err = observability.Init(ctx, false, "", "ftl-cron", ftl.Version, cli.ObservabilityConfig) + err = observability.Init(ctx, false, "", "ftl-http-ingress", ftl.Version, cli.ObservabilityConfig) kctx.FatalIfErrorf(err, "failed to initialize observability") verbClient := rpc.Dial(ftlv1connect.NewVerbServiceClient, cli.ControllerEndpoint.String(), log.Error) diff --git a/cmd/ftl-timeline/main.go b/cmd/ftl-timeline/main.go new file mode 100644 index 0000000000..f76aed5256 --- /dev/null +++ b/cmd/ftl-timeline/main.go @@ -0,0 +1,52 @@ +package main + +import ( + "context" + "fmt" + "net/url" + "os" + "strconv" + "time" + + "github.com/alecthomas/kong" + + "github.com/TBD54566975/ftl" + "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" + "github.com/TBD54566975/ftl/backend/timeline" + _ "github.com/TBD54566975/ftl/internal/automaxprocs" // Set GOMAXPROCS to match Linux container CPU quota. + "github.com/TBD54566975/ftl/internal/log" + "github.com/TBD54566975/ftl/internal/observability" + "github.com/TBD54566975/ftl/internal/rpc" + "github.com/TBD54566975/ftl/internal/schema/schemaeventsource" +) + +var cli struct { + Version kong.VersionFlag `help:"Show version."` + ObservabilityConfig observability.Config `embed:"" prefix:"o11y-"` + LogConfig log.Config `embed:"" prefix:"log-"` + TimelineConfig timeline.Config `embed:"" prefix:"timeline-"` + ConfigFlag string `name:"config" short:"C" help:"Path to FTL project cf file." env:"FTL_CONFIG" placeholder:"FILE"` + SchemaServiceEndpoint *url.URL `name:"ftl-endpoint" help:"SchemaService endpoint." env:"FTL_ENDPOINT" default:"http://127.0.0.1:8892"` +} + +func main() { + t, err := strconv.ParseInt(ftl.Timestamp, 10, 64) + if err != nil { + panic(fmt.Sprintf("invalid timestamp %q: %s", ftl.Timestamp, err)) + } + kctx := kong.Parse(&cli, + kong.Description(`FTL - Timeline`), + kong.UsageOnError(), + kong.Vars{"version": ftl.Version, "timestamp": time.Unix(t, 0).Format(time.RFC3339)}, + ) + + ctx := log.ContextWithLogger(context.Background(), log.Configure(os.Stderr, cli.LogConfig)) + err = observability.Init(ctx, false, "", "ftl-timeline", ftl.Version, cli.ObservabilityConfig) + kctx.FatalIfErrorf(err, "failed to initialize observability") + + schemaClient := rpc.Dial(ftlv1connect.NewSchemaServiceClient, cli.SchemaServiceEndpoint.String(), log.Error) + schemaEventSource := schemaeventsource.New(ctx, schemaClient) + + err = timeline.Start(ctx, cli.TimelineConfig, schemaEventSource) + kctx.FatalIfErrorf(err, "failed to start HTTP ingress") +} diff --git a/frontend/cli/cmd_replay.go b/frontend/cli/cmd_replay.go index 7ab6e88864..b197b52dc6 100644 --- a/frontend/cli/cmd_replay.go +++ b/frontend/cli/cmd_replay.go @@ -11,6 +11,7 @@ import ( pbconsole "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1/pbconsoleconnect" + pbtimeline "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1" ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1" "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" "github.com/TBD54566975/ftl/go-runtime/ftl/reflection" @@ -90,7 +91,7 @@ func (c *replayCmd) Run( { Filter: &pbconsole.GetEventsRequest_Filter_EventTypes{ EventTypes: &pbconsole.GetEventsRequest_EventTypeFilter{ - EventTypes: []pbconsole.EventType{pbconsole.EventType_EVENT_TYPE_CALL}, + EventTypes: []pbtimeline.EventType{pbtimeline.EventType_EVENT_TYPE_CALL}, }, }, }, diff --git a/frontend/console/src/api/timeline/timeline-filters.ts b/frontend/console/src/api/timeline/timeline-filters.ts index be2c2f7682..a1ee9d9f7a 100644 --- a/frontend/console/src/api/timeline/timeline-filters.ts +++ b/frontend/console/src/api/timeline/timeline-filters.ts @@ -1,6 +1,5 @@ import type { Timestamp } from '@bufbuild/protobuf' import { - type EventType, GetEventsRequest_CallFilter, GetEventsRequest_DeploymentFilter, GetEventsRequest_EventTypeFilter, @@ -10,8 +9,8 @@ import { GetEventsRequest_ModuleFilter, GetEventsRequest_RequestFilter, GetEventsRequest_TimeFilter, - type LogLevel, } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { EventType, LogLevel } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' export const requestKeysFilter = (requestKeys: string[]): GetEventsRequest_Filter => { const filter = new GetEventsRequest_Filter() diff --git a/frontend/console/src/api/timeline/use-module-trace-events.ts b/frontend/console/src/api/timeline/use-module-trace-events.ts index 9cd81e7ed7..f18228c0ac 100644 --- a/frontend/console/src/api/timeline/use-module-trace-events.ts +++ b/frontend/console/src/api/timeline/use-module-trace-events.ts @@ -1,4 +1,5 @@ -import { EventType, type GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import type { GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import { EventType } from '../../protos/xyz/block/ftl/timeline/v1/event_pb.ts' import { eventTypesFilter, moduleFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' diff --git a/frontend/console/src/api/timeline/use-request-trace-events.ts b/frontend/console/src/api/timeline/use-request-trace-events.ts index 01c9eed39e..732d4abebf 100644 --- a/frontend/console/src/api/timeline/use-request-trace-events.ts +++ b/frontend/console/src/api/timeline/use-request-trace-events.ts @@ -1,12 +1,12 @@ +import type { GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' import { type AsyncExecuteEvent, type CallEvent, EventType, - type GetEventsRequest_Filter, type IngressEvent, type PubSubConsumeEvent, type PubSubPublishEvent, -} from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +} from '../../protos/xyz/block/ftl/timeline/v1/event_pb.ts' import { eventTypesFilter, requestKeysFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' diff --git a/frontend/console/src/api/timeline/use-timeline-calls.ts b/frontend/console/src/api/timeline/use-timeline-calls.ts index c555929990..0a7a6d1447 100644 --- a/frontend/console/src/api/timeline/use-timeline-calls.ts +++ b/frontend/console/src/api/timeline/use-timeline-calls.ts @@ -1,4 +1,5 @@ -import { EventType, type GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import type { GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import { EventType } from '../../protos/xyz/block/ftl/timeline/v1/event_pb.ts' import { eventTypesFilter } from './timeline-filters.ts' import { useTimeline } from './use-timeline.ts' diff --git a/frontend/console/src/api/timeline/use-timeline.ts b/frontend/console/src/api/timeline/use-timeline.ts index 43f824d761..9a7dfb5471 100644 --- a/frontend/console/src/api/timeline/use-timeline.ts +++ b/frontend/console/src/api/timeline/use-timeline.ts @@ -3,7 +3,8 @@ import { useQuery, useQueryClient } from '@tanstack/react-query' import { useClient } from '../../hooks/use-client' import { useVisibility } from '../../hooks/use-visibility' import { ConsoleService } from '../../protos/xyz/block/ftl/console/v1/console_connect' -import { type Event, type GetEventsRequest_Filter, GetEventsRequest_Order } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import { type GetEventsRequest_Filter, GetEventsRequest_Order } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' const timelineKey = 'timeline' const maxTimelineEntries = 1000 diff --git a/frontend/console/src/features/timeline/Timeline.tsx b/frontend/console/src/features/timeline/Timeline.tsx index ecf2674fa4..2f8fd2545e 100644 --- a/frontend/console/src/features/timeline/Timeline.tsx +++ b/frontend/console/src/features/timeline/Timeline.tsx @@ -2,7 +2,8 @@ import { useContext, useEffect, useState } from 'react' import { useSearchParams } from 'react-router-dom' import { timeFilter, useTimeline } from '../../api/timeline/index.ts' import { Loader } from '../../components/Loader.tsx' -import type { Event, GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import type { GetEventsRequest_Filter } from '../../protos/xyz/block/ftl/console/v1/console_pb.ts' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb.ts' import { SidePanelContext } from '../../providers/side-panel-provider.tsx' import TimelineEventList from './TimelineEventList.tsx' import { TimelineAsyncExecuteDetails } from './details/TimelineAsyncExecuteDetails.tsx' diff --git a/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx b/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx index 4fe922c4f6..a2c114aa61 100644 --- a/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx +++ b/frontend/console/src/features/timeline/TimelineAsyncExecute.tsx @@ -1,4 +1,4 @@ -import type { AsyncExecuteEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { AsyncExecuteEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { refString } from '../modules/decls/verb/verb.utils' import { asyncEventTypeString } from './timeline.utils' diff --git a/frontend/console/src/features/timeline/TimelineCall.tsx b/frontend/console/src/features/timeline/TimelineCall.tsx index b56dfe4a18..2f7d80edb5 100644 --- a/frontend/console/src/features/timeline/TimelineCall.tsx +++ b/frontend/console/src/features/timeline/TimelineCall.tsx @@ -1,4 +1,4 @@ -import type { CallEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { CallEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelineCall = ({ call }: { call: CallEvent }) => { diff --git a/frontend/console/src/features/timeline/TimelineCronScheduled.tsx b/frontend/console/src/features/timeline/TimelineCronScheduled.tsx index 63c14fc135..f15755701e 100644 --- a/frontend/console/src/features/timeline/TimelineCronScheduled.tsx +++ b/frontend/console/src/features/timeline/TimelineCronScheduled.tsx @@ -1,4 +1,4 @@ -import type { CronScheduledEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { CronScheduledEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatTimestampShort } from '../../utils/date.utils.ts' import { refString } from '../modules/decls/verb/verb.utils.ts' diff --git a/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx b/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx index 36e71957bf..9a4c09aef7 100644 --- a/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx +++ b/frontend/console/src/features/timeline/TimelineDeploymentCreated.tsx @@ -1,4 +1,4 @@ -import type { DeploymentCreatedEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { DeploymentCreatedEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' export const TimelineDeploymentCreated = ({ deployment }: { deployment: DeploymentCreatedEvent }) => { const title = `Created deployment ${deployment.key} for language ${deployment.language}` diff --git a/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx b/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx index 07918210dc..cf4fbf53a7 100644 --- a/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx +++ b/frontend/console/src/features/timeline/TimelineDeploymentUpdated.tsx @@ -1,4 +1,4 @@ -import type { DeploymentUpdatedEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { DeploymentUpdatedEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' export const TimelineDeploymentUpdated = ({ deployment }: { deployment: DeploymentUpdatedEvent }) => { const title = `Updated deployment ${deployment.key} min replicas to ${deployment.minReplicas} (previously ${deployment.prevMinReplicas})` diff --git a/frontend/console/src/features/timeline/TimelineEventList.tsx b/frontend/console/src/features/timeline/TimelineEventList.tsx index 8f17e9bec5..512c14094c 100644 --- a/frontend/console/src/features/timeline/TimelineEventList.tsx +++ b/frontend/console/src/features/timeline/TimelineEventList.tsx @@ -1,4 +1,4 @@ -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatTimestampShort } from '../../utils' import { deploymentTextColor } from '../deployments/deployment.utils' import { TimelineAsyncExecute } from './TimelineAsyncExecute' diff --git a/frontend/console/src/features/timeline/TimelineIcon.tsx b/frontend/console/src/features/timeline/TimelineIcon.tsx index 9405e157f4..78e7a7e15f 100644 --- a/frontend/console/src/features/timeline/TimelineIcon.tsx +++ b/frontend/console/src/features/timeline/TimelineIcon.tsx @@ -9,7 +9,7 @@ import { SatelliteIcon, TimeQuarterPassIcon, } from 'hugeicons-react' -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { LogLevelBadgeSmall } from '../logs/LogLevelBadgeSmall' import { eventTextColor } from './timeline.utils' diff --git a/frontend/console/src/features/timeline/TimelineIngress.tsx b/frontend/console/src/features/timeline/TimelineIngress.tsx index 31776a8006..59f1add168 100644 --- a/frontend/console/src/features/timeline/TimelineIngress.tsx +++ b/frontend/console/src/features/timeline/TimelineIngress.tsx @@ -1,4 +1,4 @@ -import type { IngressEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { IngressEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelineIngress = ({ ingress }: { ingress: IngressEvent }) => { diff --git a/frontend/console/src/features/timeline/TimelineLog.tsx b/frontend/console/src/features/timeline/TimelineLog.tsx index 42138e98a5..b7f3463015 100644 --- a/frontend/console/src/features/timeline/TimelineLog.tsx +++ b/frontend/console/src/features/timeline/TimelineLog.tsx @@ -1,4 +1,4 @@ -import type { LogEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { LogEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' export const TimelineLog = ({ log }: { log: LogEvent }) => { return {log.message} diff --git a/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx b/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx index da8fb1d9d2..cc3646b3cd 100644 --- a/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx +++ b/frontend/console/src/features/timeline/TimelinePubSubConsume.tsx @@ -1,4 +1,4 @@ -import type { PubSubConsumeEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { PubSubConsumeEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' export const TimelinePubSubConsume = ({ pubSubConsume }: { pubSubConsume: PubSubConsumeEvent }) => { let title = `Topic ${pubSubConsume.topic} propagated by controller` diff --git a/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx b/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx index e144238004..d5cce422b2 100644 --- a/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx +++ b/frontend/console/src/features/timeline/TimelinePubSubPublish.tsx @@ -1,4 +1,4 @@ -import type { PubSubPublishEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { PubSubPublishEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { refString } from '../modules/decls/verb/verb.utils' export const TimelinePubSubPublish = ({ pubSubPublish }: { pubSubPublish: PubSubPublishEvent }) => { diff --git a/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx b/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx index 761672e228..a1103969dd 100644 --- a/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineAsyncExecuteDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx b/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx index c7d053379c..3c0d933710 100644 --- a/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineCallDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx b/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx index e7dd79daa4..0a4939675c 100644 --- a/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineCronScheduledDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CronScheduledEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { CronScheduledEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration, formatTimestampShort } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx b/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx index 418a2d8095..b42a5e3b16 100644 --- a/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDeploymentCreatedDetails.tsx @@ -1,5 +1,5 @@ import { AttributeBadge } from '../../../components/AttributeBadge' -import type { DeploymentCreatedEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { DeploymentCreatedEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { DeploymentCard } from '../../deployments/DeploymentCard' export const TimelineDeploymentCreatedDetails = ({ diff --git a/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx b/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx index 2fc04f8ccd..1e2fbca35b 100644 --- a/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDeploymentUpdatedDetails.tsx @@ -1,5 +1,5 @@ import { AttributeBadge } from '../../../components/AttributeBadge' -import type { DeploymentUpdatedEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { DeploymentUpdatedEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { DeploymentCard } from '../../deployments/DeploymentCard' export const TimelineDeploymentUpdatedDetails = ({ diff --git a/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx b/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx index 5246c906e4..430c64d2ee 100644 --- a/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDetailsColorBar.tsx @@ -1,4 +1,4 @@ -import type { Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { logLevelBgColor } from '../../logs/log.utils' import { eventBackgroundColor } from '../timeline.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx b/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx index 8764cc2f48..5f3adfad59 100644 --- a/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx +++ b/frontend/console/src/features/timeline/details/TimelineDetailsHeader.tsx @@ -1,7 +1,7 @@ import { useContext } from 'react' import { CloseButton } from '../../../components' import { Divider } from '../../../components/Divider' -import type { Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { SidePanelContext } from '../../../providers/side-panel-provider' import { formatTimestampShort } from '../../../utils' import { logLevelBadge, logLevelText } from '../../logs/log.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx b/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx index 710e4f5817..00ff167540 100644 --- a/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineIngressDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx b/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx index b352708693..511168685d 100644 --- a/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelineLogDetails.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, LogEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, LogEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { textColor } from '../../../utils/style.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' diff --git a/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx b/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx index ebe9e41d46..105e1a491a 100644 --- a/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelinePubSubConsumeDetails.tsx @@ -2,7 +2,7 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { DeploymentCard } from '../../../features/deployments/DeploymentCard' import { TraceGraph } from '../../../features/traces/TraceGraph' import { TraceGraphHeader } from '../../../features/traces/TraceGraphHeader' -import type { Event, PubSubConsumeEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, PubSubConsumeEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' export const TimelinePubSubConsumeDetails = ({ event }: { event: Event }) => { diff --git a/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx b/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx index 96fbcf633b..32d25bfa6a 100644 --- a/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx +++ b/frontend/console/src/features/timeline/details/TimelinePubSubPublishDetails.tsx @@ -2,7 +2,7 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { DeploymentCard } from '../../../features/deployments/DeploymentCard' import { TraceGraph } from '../../../features/traces/TraceGraph' import { TraceGraphHeader } from '../../../features/traces/TraceGraphHeader' -import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx b/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx index fae503d51a..21432a67e1 100644 --- a/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx +++ b/frontend/console/src/features/timeline/filters/TimelineFilterPanel.tsx @@ -3,7 +3,8 @@ import type React from 'react' import { useEffect, useState } from 'react' import { useModules } from '../../../api/modules/use-modules' import { eventTypesFilter, logLevelFilter, modulesFilter } from '../../../api/timeline' -import { EventType, type GetEventsRequest_Filter, LogLevel } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { GetEventsRequest_Filter } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import { EventType, LogLevel } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { textColor } from '../../../utils' import { LogLevelBadgeSmall } from '../../logs/LogLevelBadgeSmall' import { logLevelBgColor, logLevelColor, logLevelRingColor } from '../../logs/log.utils' diff --git a/frontend/console/src/features/timeline/timeline.utils.ts b/frontend/console/src/features/timeline/timeline.utils.ts index 2f040a7c24..28805c3fa0 100644 --- a/frontend/console/src/features/timeline/timeline.utils.ts +++ b/frontend/console/src/features/timeline/timeline.utils.ts @@ -1,5 +1,5 @@ -import { AsyncExecuteEventType } from '../../protos/xyz/block/ftl/console/v1/console_pb' -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import { AsyncExecuteEventType } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' const eventBackgroundColorMap: Record = { log: 'bg-gray-500', diff --git a/frontend/console/src/features/traces/TraceDetailItem.tsx b/frontend/console/src/features/traces/TraceDetailItem.tsx index 15f102fad4..f6ff41cdf0 100644 --- a/frontend/console/src/features/traces/TraceDetailItem.tsx +++ b/frontend/console/src/features/traces/TraceDetailItem.tsx @@ -1,5 +1,5 @@ import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import { AsyncExecuteEvent, CallEvent, type Event, IngressEvent, PubSubPublishEvent } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import { AsyncExecuteEvent, CallEvent, type Event, IngressEvent, PubSubPublishEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { classNames } from '../../utils' import { TimelineIcon } from '../timeline/TimelineIcon' import { eventBackgroundColor } from '../timeline/timeline.utils' diff --git a/frontend/console/src/features/traces/TraceDetails.tsx b/frontend/console/src/features/traces/TraceDetails.tsx index 17ed1e0147..46d319b3cf 100644 --- a/frontend/console/src/features/traces/TraceDetails.tsx +++ b/frontend/console/src/features/traces/TraceDetails.tsx @@ -2,7 +2,7 @@ import type React from 'react' import { useMemo } from 'react' import { useNavigate } from 'react-router-dom' import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { TraceDetailItem } from './TraceDetailItem' import { TraceRulerItem } from './TraceRulerItem' import { requestStartTime, totalDurationForRequest } from './traces.utils' diff --git a/frontend/console/src/features/traces/TraceGraph.tsx b/frontend/console/src/features/traces/TraceGraph.tsx index 65ab9bc177..9f4f813117 100644 --- a/frontend/console/src/features/traces/TraceGraph.tsx +++ b/frontend/console/src/features/traces/TraceGraph.tsx @@ -1,13 +1,6 @@ import { useState } from 'react' import { type TraceEvent, useRequestTraceEvents } from '../../api/timeline/use-request-trace-events' -import { - AsyncExecuteEvent, - CallEvent, - type Event, - IngressEvent, - PubSubConsumeEvent, - PubSubPublishEvent, -} from '../../protos/xyz/block/ftl/console/v1/console_pb' +import { AsyncExecuteEvent, CallEvent, type Event, IngressEvent, PubSubConsumeEvent, PubSubPublishEvent } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { classNames, durationToMillis } from '../../utils' import { eventBackgroundColor } from '../timeline/timeline.utils' import { eventBarLeftOffsetPercentage, requestStartTime, totalDurationForRequest } from './traces.utils' diff --git a/frontend/console/src/features/traces/TraceRequestList.tsx b/frontend/console/src/features/traces/TraceRequestList.tsx index db9d1c3619..7d3e9ef1fe 100644 --- a/frontend/console/src/features/traces/TraceRequestList.tsx +++ b/frontend/console/src/features/traces/TraceRequestList.tsx @@ -1,6 +1,6 @@ import { useContext, useMemo, useState } from 'react' import { useModuleTraceEvents } from '../../api/timeline/use-module-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { SidePanelContext } from '../../providers/side-panel-provider' import TimelineEventList from '../timeline/TimelineEventList' import { TimelineCallDetails } from '../timeline/details/TimelineCallDetails' diff --git a/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx b/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx index bc93b80bfd..668a671997 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsAsyncCall.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { AsyncExecuteEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsCall.tsx b/frontend/console/src/features/traces/details/TraceDetailsCall.tsx index 9a92b15341..51881d6779 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsCall.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsCall.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { CallEvent, Event } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx b/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx index 1c53608e50..14c5d2ef2c 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsIngress.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, IngressEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx b/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx index f8c5badf33..efd9c704b9 100644 --- a/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx +++ b/frontend/console/src/features/traces/details/TraceDetailsPubsubPublish.tsx @@ -1,6 +1,6 @@ import { AttributeBadge } from '../../../components/AttributeBadge' import { CodeBlock } from '../../../components/CodeBlock' -import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event, PubSubPublishEvent } from '../../../protos/xyz/block/ftl/timeline/v1/event_pb' import { formatDuration } from '../../../utils/date.utils' import { DeploymentCard } from '../../deployments/DeploymentCard' import { refString } from '../../modules/decls/verb/verb.utils' diff --git a/frontend/console/src/features/traces/traces.utils.ts b/frontend/console/src/features/traces/traces.utils.ts index 35cd6e55c7..95a7643fbd 100644 --- a/frontend/console/src/features/traces/traces.utils.ts +++ b/frontend/console/src/features/traces/traces.utils.ts @@ -1,5 +1,5 @@ import type { TraceEvent } from '../../api/timeline/use-request-trace-events' -import type { Event } from '../../protos/xyz/block/ftl/console/v1/console_pb' +import type { Event } from '../../protos/xyz/block/ftl/timeline/v1/event_pb' import { compareTimestamps, durationToMillis } from '../../utils' export const eventBarLeftOffsetPercentage = (event: Event, requestStartTime: number, requestDurationMs: number) => { diff --git a/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts index 0a7900ee21..a873da066d 100644 --- a/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts +++ b/frontend/console/src/protos/xyz/block/ftl/console/v1/console_pb.ts @@ -4,839 +4,9 @@ // @ts-nocheck import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; -import { Duration, Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf"; +import { Duration, Message, proto3, Timestamp } from "@bufbuild/protobuf"; import { Config as Config$1, Data as Data$1, Database as Database$1, Enum as Enum$1, Ref, Secret as Secret$1, Topic as Topic$1, TypeAlias as TypeAlias$1, Verb as Verb$1 } from "../../schema/v1/schema_pb.js"; - -/** - * @generated from enum xyz.block.ftl.console.v1.EventType - */ -export enum EventType { - /** - * @generated from enum value: EVENT_TYPE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, - - /** - * @generated from enum value: EVENT_TYPE_LOG = 1; - */ - LOG = 1, - - /** - * @generated from enum value: EVENT_TYPE_CALL = 2; - */ - CALL = 2, - - /** - * @generated from enum value: EVENT_TYPE_DEPLOYMENT_CREATED = 3; - */ - DEPLOYMENT_CREATED = 3, - - /** - * @generated from enum value: EVENT_TYPE_DEPLOYMENT_UPDATED = 4; - */ - DEPLOYMENT_UPDATED = 4, - - /** - * @generated from enum value: EVENT_TYPE_INGRESS = 5; - */ - INGRESS = 5, - - /** - * @generated from enum value: EVENT_TYPE_CRON_SCHEDULED = 6; - */ - CRON_SCHEDULED = 6, - - /** - * @generated from enum value: EVENT_TYPE_ASYNC_EXECUTE = 7; - */ - ASYNC_EXECUTE = 7, - - /** - * @generated from enum value: EVENT_TYPE_PUBSUB_PUBLISH = 8; - */ - PUBSUB_PUBLISH = 8, - - /** - * @generated from enum value: EVENT_TYPE_PUBSUB_CONSUME = 9; - */ - PUBSUB_CONSUME = 9, -} -// Retrieve enum metadata with: proto3.getEnumType(EventType) -proto3.util.setEnumType(EventType, "xyz.block.ftl.console.v1.EventType", [ - { no: 0, name: "EVENT_TYPE_UNSPECIFIED" }, - { no: 1, name: "EVENT_TYPE_LOG" }, - { no: 2, name: "EVENT_TYPE_CALL" }, - { no: 3, name: "EVENT_TYPE_DEPLOYMENT_CREATED" }, - { no: 4, name: "EVENT_TYPE_DEPLOYMENT_UPDATED" }, - { no: 5, name: "EVENT_TYPE_INGRESS" }, - { no: 6, name: "EVENT_TYPE_CRON_SCHEDULED" }, - { no: 7, name: "EVENT_TYPE_ASYNC_EXECUTE" }, - { no: 8, name: "EVENT_TYPE_PUBSUB_PUBLISH" }, - { no: 9, name: "EVENT_TYPE_PUBSUB_CONSUME" }, -]); - -/** - * @generated from enum xyz.block.ftl.console.v1.AsyncExecuteEventType - */ -export enum AsyncExecuteEventType { - /** - * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, - - /** - * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; - */ - CRON = 1, - - /** - * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_PUBSUB = 2; - */ - PUBSUB = 2, -} -// Retrieve enum metadata with: proto3.getEnumType(AsyncExecuteEventType) -proto3.util.setEnumType(AsyncExecuteEventType, "xyz.block.ftl.console.v1.AsyncExecuteEventType", [ - { no: 0, name: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED" }, - { no: 1, name: "ASYNC_EXECUTE_EVENT_TYPE_CRON" }, - { no: 2, name: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB" }, -]); - -/** - * @generated from enum xyz.block.ftl.console.v1.LogLevel - */ -export enum LogLevel { - /** - * @generated from enum value: LOG_LEVEL_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, - - /** - * @generated from enum value: LOG_LEVEL_TRACE = 1; - */ - TRACE = 1, - - /** - * @generated from enum value: LOG_LEVEL_DEBUG = 5; - */ - DEBUG = 5, - - /** - * @generated from enum value: LOG_LEVEL_INFO = 9; - */ - INFO = 9, - - /** - * @generated from enum value: LOG_LEVEL_WARN = 13; - */ - WARN = 13, - - /** - * @generated from enum value: LOG_LEVEL_ERROR = 17; - */ - ERROR = 17, -} -// Retrieve enum metadata with: proto3.getEnumType(LogLevel) -proto3.util.setEnumType(LogLevel, "xyz.block.ftl.console.v1.LogLevel", [ - { no: 0, name: "LOG_LEVEL_UNSPECIFIED" }, - { no: 1, name: "LOG_LEVEL_TRACE" }, - { no: 5, name: "LOG_LEVEL_DEBUG" }, - { no: 9, name: "LOG_LEVEL_INFO" }, - { no: 13, name: "LOG_LEVEL_WARN" }, - { no: 17, name: "LOG_LEVEL_ERROR" }, -]); - -/** - * @generated from message xyz.block.ftl.console.v1.LogEvent - */ -export class LogEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: optional string request_key = 2; - */ - requestKey?: string; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 3; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: int32 log_level = 4; - */ - logLevel = 0; - - /** - * @generated from field: map attributes = 5; - */ - attributes: { [key: string]: string } = {}; - - /** - * @generated from field: string message = 6; - */ - message = ""; - - /** - * @generated from field: optional string error = 7; - */ - error?: string; - - /** - * @generated from field: optional string stack = 8; - */ - stack?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.LogEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 4, name: "log_level", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { no: 5, name: "attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, - { no: 6, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 8, name: "stack", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): LogEvent { - return new LogEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): LogEvent { - return new LogEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): LogEvent { - return new LogEvent().fromJsonString(jsonString, options); - } - - static equals(a: LogEvent | PlainMessage | undefined, b: LogEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(LogEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.CallEvent - */ -export class CallEvent extends Message { - /** - * @generated from field: optional string request_key = 1; - */ - requestKey?: string; - - /** - * @generated from field: string deployment_key = 2; - */ - deploymentKey = ""; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 3; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: optional xyz.block.ftl.schema.v1.Ref source_verb_ref = 11; - */ - sourceVerbRef?: Ref; - - /** - * @generated from field: xyz.block.ftl.schema.v1.Ref destination_verb_ref = 12; - */ - destinationVerbRef?: Ref; - - /** - * @generated from field: google.protobuf.Duration duration = 6; - */ - duration?: Duration; - - /** - * @generated from field: string request = 7; - */ - request = ""; - - /** - * @generated from field: string response = 8; - */ - response = ""; - - /** - * @generated from field: optional string error = 9; - */ - error?: string; - - /** - * @generated from field: optional string stack = 10; - */ - stack?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.CallEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 2, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 11, name: "source_verb_ref", kind: "message", T: Ref, opt: true }, - { no: 12, name: "destination_verb_ref", kind: "message", T: Ref }, - { no: 6, name: "duration", kind: "message", T: Duration }, - { no: 7, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 8, name: "response", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 9, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 10, name: "stack", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): CallEvent { - return new CallEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): CallEvent { - return new CallEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): CallEvent { - return new CallEvent().fromJsonString(jsonString, options); - } - - static equals(a: CallEvent | PlainMessage | undefined, b: CallEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(CallEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.DeploymentCreatedEvent - */ -export class DeploymentCreatedEvent extends Message { - /** - * @generated from field: string key = 1; - */ - key = ""; - - /** - * @generated from field: string language = 2; - */ - language = ""; - - /** - * @generated from field: string module_name = 3; - */ - moduleName = ""; - - /** - * @generated from field: int32 min_replicas = 4; - */ - minReplicas = 0; - - /** - * @generated from field: optional string replaced = 5; - */ - replaced?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.DeploymentCreatedEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "module_name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 4, name: "min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { no: 5, name: "replaced", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): DeploymentCreatedEvent { - return new DeploymentCreatedEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): DeploymentCreatedEvent { - return new DeploymentCreatedEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): DeploymentCreatedEvent { - return new DeploymentCreatedEvent().fromJsonString(jsonString, options); - } - - static equals(a: DeploymentCreatedEvent | PlainMessage | undefined, b: DeploymentCreatedEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(DeploymentCreatedEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.DeploymentUpdatedEvent - */ -export class DeploymentUpdatedEvent extends Message { - /** - * @generated from field: string key = 1; - */ - key = ""; - - /** - * @generated from field: int32 min_replicas = 2; - */ - minReplicas = 0; - - /** - * @generated from field: int32 prev_min_replicas = 3; - */ - prevMinReplicas = 0; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.DeploymentUpdatedEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { no: 3, name: "prev_min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): DeploymentUpdatedEvent { - return new DeploymentUpdatedEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): DeploymentUpdatedEvent { - return new DeploymentUpdatedEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): DeploymentUpdatedEvent { - return new DeploymentUpdatedEvent().fromJsonString(jsonString, options); - } - - static equals(a: DeploymentUpdatedEvent | PlainMessage | undefined, b: DeploymentUpdatedEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(DeploymentUpdatedEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.IngressEvent - */ -export class IngressEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: optional string request_key = 2; - */ - requestKey?: string; - - /** - * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; - */ - verbRef?: Ref; - - /** - * @generated from field: string method = 4; - */ - method = ""; - - /** - * @generated from field: string path = 5; - */ - path = ""; - - /** - * @generated from field: int32 status_code = 7; - */ - statusCode = 0; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 8; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: google.protobuf.Duration duration = 9; - */ - duration?: Duration; - - /** - * @generated from field: string request = 10; - */ - request = ""; - - /** - * @generated from field: string request_header = 11; - */ - requestHeader = ""; - - /** - * @generated from field: string response = 12; - */ - response = ""; - - /** - * @generated from field: string response_header = 13; - */ - responseHeader = ""; - - /** - * @generated from field: optional string error = 14; - */ - error?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.IngressEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 3, name: "verb_ref", kind: "message", T: Ref }, - { no: 4, name: "method", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 5, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 7, name: "status_code", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { no: 8, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 9, name: "duration", kind: "message", T: Duration }, - { no: 10, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 11, name: "request_header", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 12, name: "response", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 13, name: "response_header", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 14, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): IngressEvent { - return new IngressEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): IngressEvent { - return new IngressEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): IngressEvent { - return new IngressEvent().fromJsonString(jsonString, options); - } - - static equals(a: IngressEvent | PlainMessage | undefined, b: IngressEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(IngressEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.CronScheduledEvent - */ -export class CronScheduledEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 2; - */ - verbRef?: Ref; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 3; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: google.protobuf.Duration duration = 4; - */ - duration?: Duration; - - /** - * @generated from field: google.protobuf.Timestamp scheduled_at = 5; - */ - scheduledAt?: Timestamp; - - /** - * @generated from field: string schedule = 6; - */ - schedule = ""; - - /** - * @generated from field: optional string error = 7; - */ - error?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.CronScheduledEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "verb_ref", kind: "message", T: Ref }, - { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 4, name: "duration", kind: "message", T: Duration }, - { no: 5, name: "scheduled_at", kind: "message", T: Timestamp }, - { no: 6, name: "schedule", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): CronScheduledEvent { - return new CronScheduledEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): CronScheduledEvent { - return new CronScheduledEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): CronScheduledEvent { - return new CronScheduledEvent().fromJsonString(jsonString, options); - } - - static equals(a: CronScheduledEvent | PlainMessage | undefined, b: CronScheduledEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(CronScheduledEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.AsyncExecuteEvent - */ -export class AsyncExecuteEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: optional string request_key = 2; - */ - requestKey?: string; - - /** - * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; - */ - verbRef?: Ref; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 4; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: google.protobuf.Duration duration = 5; - */ - duration?: Duration; - - /** - * @generated from field: xyz.block.ftl.console.v1.AsyncExecuteEventType async_event_type = 6; - */ - asyncEventType = AsyncExecuteEventType.UNSPECIFIED; - - /** - * @generated from field: optional string error = 7; - */ - error?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.AsyncExecuteEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 3, name: "verb_ref", kind: "message", T: Ref }, - { no: 4, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 5, name: "duration", kind: "message", T: Duration }, - { no: 6, name: "async_event_type", kind: "enum", T: proto3.getEnumType(AsyncExecuteEventType) }, - { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): AsyncExecuteEvent { - return new AsyncExecuteEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): AsyncExecuteEvent { - return new AsyncExecuteEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): AsyncExecuteEvent { - return new AsyncExecuteEvent().fromJsonString(jsonString, options); - } - - static equals(a: AsyncExecuteEvent | PlainMessage | undefined, b: AsyncExecuteEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(AsyncExecuteEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.PubSubPublishEvent - */ -export class PubSubPublishEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: optional string request_key = 2; - */ - requestKey?: string; - - /** - * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; - */ - verbRef?: Ref; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 4; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: google.protobuf.Duration duration = 5; - */ - duration?: Duration; - - /** - * @generated from field: string topic = 6; - */ - topic = ""; - - /** - * @generated from field: string request = 7; - */ - request = ""; - - /** - * @generated from field: optional string error = 8; - */ - error?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.PubSubPublishEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 3, name: "verb_ref", kind: "message", T: Ref }, - { no: 4, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 5, name: "duration", kind: "message", T: Duration }, - { no: 6, name: "topic", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 7, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 8, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): PubSubPublishEvent { - return new PubSubPublishEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): PubSubPublishEvent { - return new PubSubPublishEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): PubSubPublishEvent { - return new PubSubPublishEvent().fromJsonString(jsonString, options); - } - - static equals(a: PubSubPublishEvent | PlainMessage | undefined, b: PubSubPublishEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(PubSubPublishEvent, a, b); - } -} - -/** - * @generated from message xyz.block.ftl.console.v1.PubSubConsumeEvent - */ -export class PubSubConsumeEvent extends Message { - /** - * @generated from field: string deployment_key = 1; - */ - deploymentKey = ""; - - /** - * @generated from field: optional string request_key = 2; - */ - requestKey?: string; - - /** - * @generated from field: optional string dest_verb_module = 3; - */ - destVerbModule?: string; - - /** - * @generated from field: optional string dest_verb_name = 4; - */ - destVerbName?: string; - - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 5; - */ - timeStamp?: Timestamp; - - /** - * @generated from field: google.protobuf.Duration duration = 6; - */ - duration?: Duration; - - /** - * @generated from field: string topic = 7; - */ - topic = ""; - - /** - * @generated from field: optional string error = 8; - */ - error?: string; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.PubSubConsumeEvent"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 3, name: "dest_verb_module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 4, name: "dest_verb_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - { no: 5, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 6, name: "duration", kind: "message", T: Duration }, - { no: 7, name: "topic", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 8, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): PubSubConsumeEvent { - return new PubSubConsumeEvent().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): PubSubConsumeEvent { - return new PubSubConsumeEvent().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): PubSubConsumeEvent { - return new PubSubConsumeEvent().fromJsonString(jsonString, options); - } - - static equals(a: PubSubConsumeEvent | PlainMessage | undefined, b: PubSubConsumeEvent | PlainMessage | undefined): boolean { - return proto3.util.equals(PubSubConsumeEvent, a, b); - } -} +import { Event, EventType, LogLevel } from "../../timeline/v1/event_pb.js"; /** * @generated from message xyz.block.ftl.console.v1.Config @@ -1648,7 +818,7 @@ export class GetEventsRequest_LimitFilter extends Message { /** - * @generated from field: xyz.block.ftl.console.v1.LogLevel log_level = 1; + * @generated from field: xyz.block.ftl.timeline.v1.LogLevel log_level = 1; */ logLevel = LogLevel.UNSPECIFIED; @@ -1765,7 +935,7 @@ export class GetEventsRequest_RequestFilter extends Message { /** - * @generated from field: repeated xyz.block.ftl.console.v1.EventType event_types = 1; + * @generated from field: repeated xyz.block.ftl.timeline.v1.EventType event_types = 1; */ eventTypes: EventType[] = []; @@ -2091,7 +1261,7 @@ export class GetEventsRequest_Filter extends Message { */ export class GetEventsResponse extends Message { /** - * @generated from field: repeated xyz.block.ftl.console.v1.Event events = 1; + * @generated from field: repeated xyz.block.ftl.timeline.v1.Event events = 1; */ events: Event[] = []; @@ -2511,7 +1681,7 @@ export class StreamEventsRequest extends Message { */ export class StreamEventsResponse extends Message { /** - * @generated from field: repeated xyz.block.ftl.console.v1.Event events = 1; + * @generated from field: repeated xyz.block.ftl.timeline.v1.Event events = 1; */ events: Event[] = []; @@ -2543,116 +1713,3 @@ export class StreamEventsResponse extends Message { } } -/** - * @generated from message xyz.block.ftl.console.v1.Event - */ -export class Event extends Message { - /** - * @generated from field: google.protobuf.Timestamp time_stamp = 1; - */ - timeStamp?: Timestamp; - - /** - * Unique ID for event. - * - * @generated from field: int64 id = 2; - */ - id = protoInt64.zero; - - /** - * @generated from oneof xyz.block.ftl.console.v1.Event.entry - */ - entry: { - /** - * @generated from field: xyz.block.ftl.console.v1.LogEvent log = 3; - */ - value: LogEvent; - case: "log"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.CallEvent call = 4; - */ - value: CallEvent; - case: "call"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.DeploymentCreatedEvent deployment_created = 5; - */ - value: DeploymentCreatedEvent; - case: "deploymentCreated"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.DeploymentUpdatedEvent deployment_updated = 6; - */ - value: DeploymentUpdatedEvent; - case: "deploymentUpdated"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.IngressEvent ingress = 7; - */ - value: IngressEvent; - case: "ingress"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.CronScheduledEvent cron_scheduled = 8; - */ - value: CronScheduledEvent; - case: "cronScheduled"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.AsyncExecuteEvent async_execute = 9; - */ - value: AsyncExecuteEvent; - case: "asyncExecute"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.PubSubPublishEvent pubsub_publish = 10; - */ - value: PubSubPublishEvent; - case: "pubsubPublish"; - } | { - /** - * @generated from field: xyz.block.ftl.console.v1.PubSubConsumeEvent pubsub_consume = 11; - */ - value: PubSubConsumeEvent; - case: "pubsubConsume"; - } | { case: undefined; value?: undefined } = { case: undefined }; - - constructor(data?: PartialMessage) { - super(); - proto3.util.initPartial(data, this); - } - - static readonly runtime: typeof proto3 = proto3; - static readonly typeName = "xyz.block.ftl.console.v1.Event"; - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "time_stamp", kind: "message", T: Timestamp }, - { no: 2, name: "id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { no: 3, name: "log", kind: "message", T: LogEvent, oneof: "entry" }, - { no: 4, name: "call", kind: "message", T: CallEvent, oneof: "entry" }, - { no: 5, name: "deployment_created", kind: "message", T: DeploymentCreatedEvent, oneof: "entry" }, - { no: 6, name: "deployment_updated", kind: "message", T: DeploymentUpdatedEvent, oneof: "entry" }, - { no: 7, name: "ingress", kind: "message", T: IngressEvent, oneof: "entry" }, - { no: 8, name: "cron_scheduled", kind: "message", T: CronScheduledEvent, oneof: "entry" }, - { no: 9, name: "async_execute", kind: "message", T: AsyncExecuteEvent, oneof: "entry" }, - { no: 10, name: "pubsub_publish", kind: "message", T: PubSubPublishEvent, oneof: "entry" }, - { no: 11, name: "pubsub_consume", kind: "message", T: PubSubConsumeEvent, oneof: "entry" }, - ]); - - static fromBinary(bytes: Uint8Array, options?: Partial): Event { - return new Event().fromBinary(bytes, options); - } - - static fromJson(jsonValue: JsonValue, options?: Partial): Event { - return new Event().fromJson(jsonValue, options); - } - - static fromJsonString(jsonString: string, options?: Partial): Event { - return new Event().fromJsonString(jsonString, options); - } - - static equals(a: Event | PlainMessage | undefined, b: Event | PlainMessage | undefined): boolean { - return proto3.util.equals(Event, a, b); - } -} - diff --git a/frontend/console/src/protos/xyz/block/ftl/timeline/v1/event_pb.ts b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/event_pb.ts new file mode 100644 index 0000000000..526a2f1d07 --- /dev/null +++ b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/event_pb.ts @@ -0,0 +1,953 @@ +// @generated by protoc-gen-es v1.10.0 with parameter "target=ts" +// @generated from file xyz/block/ftl/timeline/v1/event.proto (package xyz.block.ftl.timeline.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; +import { Duration, Message, proto3, protoInt64, Timestamp } from "@bufbuild/protobuf"; +import { Ref } from "../../schema/v1/schema_pb.js"; + +/** + * @generated from enum xyz.block.ftl.timeline.v1.EventType + */ +export enum EventType { + /** + * @generated from enum value: EVENT_TYPE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: EVENT_TYPE_LOG = 1; + */ + LOG = 1, + + /** + * @generated from enum value: EVENT_TYPE_CALL = 2; + */ + CALL = 2, + + /** + * @generated from enum value: EVENT_TYPE_DEPLOYMENT_CREATED = 3; + */ + DEPLOYMENT_CREATED = 3, + + /** + * @generated from enum value: EVENT_TYPE_DEPLOYMENT_UPDATED = 4; + */ + DEPLOYMENT_UPDATED = 4, + + /** + * @generated from enum value: EVENT_TYPE_INGRESS = 5; + */ + INGRESS = 5, + + /** + * @generated from enum value: EVENT_TYPE_CRON_SCHEDULED = 6; + */ + CRON_SCHEDULED = 6, + + /** + * @generated from enum value: EVENT_TYPE_ASYNC_EXECUTE = 7; + */ + ASYNC_EXECUTE = 7, + + /** + * @generated from enum value: EVENT_TYPE_PUBSUB_PUBLISH = 8; + */ + PUBSUB_PUBLISH = 8, + + /** + * @generated from enum value: EVENT_TYPE_PUBSUB_CONSUME = 9; + */ + PUBSUB_CONSUME = 9, +} +// Retrieve enum metadata with: proto3.getEnumType(EventType) +proto3.util.setEnumType(EventType, "xyz.block.ftl.timeline.v1.EventType", [ + { no: 0, name: "EVENT_TYPE_UNSPECIFIED" }, + { no: 1, name: "EVENT_TYPE_LOG" }, + { no: 2, name: "EVENT_TYPE_CALL" }, + { no: 3, name: "EVENT_TYPE_DEPLOYMENT_CREATED" }, + { no: 4, name: "EVENT_TYPE_DEPLOYMENT_UPDATED" }, + { no: 5, name: "EVENT_TYPE_INGRESS" }, + { no: 6, name: "EVENT_TYPE_CRON_SCHEDULED" }, + { no: 7, name: "EVENT_TYPE_ASYNC_EXECUTE" }, + { no: 8, name: "EVENT_TYPE_PUBSUB_PUBLISH" }, + { no: 9, name: "EVENT_TYPE_PUBSUB_CONSUME" }, +]); + +/** + * @generated from enum xyz.block.ftl.timeline.v1.AsyncExecuteEventType + */ +export enum AsyncExecuteEventType { + /** + * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_CRON = 1; + */ + CRON = 1, + + /** + * @generated from enum value: ASYNC_EXECUTE_EVENT_TYPE_PUBSUB = 2; + */ + PUBSUB = 2, +} +// Retrieve enum metadata with: proto3.getEnumType(AsyncExecuteEventType) +proto3.util.setEnumType(AsyncExecuteEventType, "xyz.block.ftl.timeline.v1.AsyncExecuteEventType", [ + { no: 0, name: "ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED" }, + { no: 1, name: "ASYNC_EXECUTE_EVENT_TYPE_CRON" }, + { no: 2, name: "ASYNC_EXECUTE_EVENT_TYPE_PUBSUB" }, +]); + +/** + * @generated from enum xyz.block.ftl.timeline.v1.LogLevel + */ +export enum LogLevel { + /** + * @generated from enum value: LOG_LEVEL_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: LOG_LEVEL_TRACE = 1; + */ + TRACE = 1, + + /** + * @generated from enum value: LOG_LEVEL_DEBUG = 5; + */ + DEBUG = 5, + + /** + * @generated from enum value: LOG_LEVEL_INFO = 9; + */ + INFO = 9, + + /** + * @generated from enum value: LOG_LEVEL_WARN = 13; + */ + WARN = 13, + + /** + * @generated from enum value: LOG_LEVEL_ERROR = 17; + */ + ERROR = 17, +} +// Retrieve enum metadata with: proto3.getEnumType(LogLevel) +proto3.util.setEnumType(LogLevel, "xyz.block.ftl.timeline.v1.LogLevel", [ + { no: 0, name: "LOG_LEVEL_UNSPECIFIED" }, + { no: 1, name: "LOG_LEVEL_TRACE" }, + { no: 5, name: "LOG_LEVEL_DEBUG" }, + { no: 9, name: "LOG_LEVEL_INFO" }, + { no: 13, name: "LOG_LEVEL_WARN" }, + { no: 17, name: "LOG_LEVEL_ERROR" }, +]); + +/** + * @generated from message xyz.block.ftl.timeline.v1.LogEvent + */ +export class LogEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional string request_key = 2; + */ + requestKey?: string; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 3; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: int32 log_level = 4; + */ + logLevel = 0; + + /** + * @generated from field: map attributes = 5; + */ + attributes: { [key: string]: string } = {}; + + /** + * @generated from field: string message = 6; + */ + message = ""; + + /** + * @generated from field: optional string error = 7; + */ + error?: string; + + /** + * @generated from field: optional string stack = 8; + */ + stack?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.LogEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 4, name: "log_level", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 5, name: "attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, + { no: 6, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 8, name: "stack", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): LogEvent { + return new LogEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): LogEvent { + return new LogEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): LogEvent { + return new LogEvent().fromJsonString(jsonString, options); + } + + static equals(a: LogEvent | PlainMessage | undefined, b: LogEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(LogEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.CallEvent + */ +export class CallEvent extends Message { + /** + * @generated from field: optional string request_key = 1; + */ + requestKey?: string; + + /** + * @generated from field: string deployment_key = 2; + */ + deploymentKey = ""; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 3; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: optional xyz.block.ftl.schema.v1.Ref source_verb_ref = 11; + */ + sourceVerbRef?: Ref; + + /** + * @generated from field: xyz.block.ftl.schema.v1.Ref destination_verb_ref = 12; + */ + destinationVerbRef?: Ref; + + /** + * @generated from field: google.protobuf.Duration duration = 6; + */ + duration?: Duration; + + /** + * @generated from field: string request = 7; + */ + request = ""; + + /** + * @generated from field: string response = 8; + */ + response = ""; + + /** + * @generated from field: optional string error = 9; + */ + error?: string; + + /** + * @generated from field: optional string stack = 10; + */ + stack?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.CallEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 2, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 11, name: "source_verb_ref", kind: "message", T: Ref, opt: true }, + { no: 12, name: "destination_verb_ref", kind: "message", T: Ref }, + { no: 6, name: "duration", kind: "message", T: Duration }, + { no: 7, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 8, name: "response", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 9, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 10, name: "stack", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CallEvent { + return new CallEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CallEvent { + return new CallEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CallEvent { + return new CallEvent().fromJsonString(jsonString, options); + } + + static equals(a: CallEvent | PlainMessage | undefined, b: CallEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(CallEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.DeploymentCreatedEvent + */ +export class DeploymentCreatedEvent extends Message { + /** + * @generated from field: string key = 1; + */ + key = ""; + + /** + * @generated from field: string language = 2; + */ + language = ""; + + /** + * @generated from field: string module_name = 3; + */ + moduleName = ""; + + /** + * @generated from field: int32 min_replicas = 4; + */ + minReplicas = 0; + + /** + * @generated from field: optional string replaced = 5; + */ + replaced?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.DeploymentCreatedEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "language", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "module_name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 5, name: "replaced", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeploymentCreatedEvent { + return new DeploymentCreatedEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeploymentCreatedEvent { + return new DeploymentCreatedEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeploymentCreatedEvent { + return new DeploymentCreatedEvent().fromJsonString(jsonString, options); + } + + static equals(a: DeploymentCreatedEvent | PlainMessage | undefined, b: DeploymentCreatedEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(DeploymentCreatedEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.DeploymentUpdatedEvent + */ +export class DeploymentUpdatedEvent extends Message { + /** + * @generated from field: string key = 1; + */ + key = ""; + + /** + * @generated from field: int32 min_replicas = 2; + */ + minReplicas = 0; + + /** + * @generated from field: int32 prev_min_replicas = 3; + */ + prevMinReplicas = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.DeploymentUpdatedEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 3, name: "prev_min_replicas", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeploymentUpdatedEvent { + return new DeploymentUpdatedEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeploymentUpdatedEvent { + return new DeploymentUpdatedEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeploymentUpdatedEvent { + return new DeploymentUpdatedEvent().fromJsonString(jsonString, options); + } + + static equals(a: DeploymentUpdatedEvent | PlainMessage | undefined, b: DeploymentUpdatedEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(DeploymentUpdatedEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.IngressEvent + */ +export class IngressEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional string request_key = 2; + */ + requestKey?: string; + + /** + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; + */ + verbRef?: Ref; + + /** + * @generated from field: string method = 4; + */ + method = ""; + + /** + * @generated from field: string path = 5; + */ + path = ""; + + /** + * @generated from field: int32 status_code = 7; + */ + statusCode = 0; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 8; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: google.protobuf.Duration duration = 9; + */ + duration?: Duration; + + /** + * @generated from field: string request = 10; + */ + request = ""; + + /** + * @generated from field: string request_header = 11; + */ + requestHeader = ""; + + /** + * @generated from field: string response = 12; + */ + response = ""; + + /** + * @generated from field: string response_header = 13; + */ + responseHeader = ""; + + /** + * @generated from field: optional string error = 14; + */ + error?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.IngressEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 3, name: "verb_ref", kind: "message", T: Ref }, + { no: 4, name: "method", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 5, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 7, name: "status_code", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 8, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 9, name: "duration", kind: "message", T: Duration }, + { no: 10, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 11, name: "request_header", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 12, name: "response", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 13, name: "response_header", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 14, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): IngressEvent { + return new IngressEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): IngressEvent { + return new IngressEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): IngressEvent { + return new IngressEvent().fromJsonString(jsonString, options); + } + + static equals(a: IngressEvent | PlainMessage | undefined, b: IngressEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(IngressEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.CronScheduledEvent + */ +export class CronScheduledEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 2; + */ + verbRef?: Ref; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 3; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: google.protobuf.Duration duration = 4; + */ + duration?: Duration; + + /** + * @generated from field: google.protobuf.Timestamp scheduled_at = 5; + */ + scheduledAt?: Timestamp; + + /** + * @generated from field: string schedule = 6; + */ + schedule = ""; + + /** + * @generated from field: optional string error = 7; + */ + error?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.CronScheduledEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "verb_ref", kind: "message", T: Ref }, + { no: 3, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 4, name: "duration", kind: "message", T: Duration }, + { no: 5, name: "scheduled_at", kind: "message", T: Timestamp }, + { no: 6, name: "schedule", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CronScheduledEvent { + return new CronScheduledEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CronScheduledEvent { + return new CronScheduledEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CronScheduledEvent { + return new CronScheduledEvent().fromJsonString(jsonString, options); + } + + static equals(a: CronScheduledEvent | PlainMessage | undefined, b: CronScheduledEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(CronScheduledEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.AsyncExecuteEvent + */ +export class AsyncExecuteEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional string request_key = 2; + */ + requestKey?: string; + + /** + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; + */ + verbRef?: Ref; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 4; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: google.protobuf.Duration duration = 5; + */ + duration?: Duration; + + /** + * @generated from field: xyz.block.ftl.timeline.v1.AsyncExecuteEventType async_event_type = 6; + */ + asyncEventType = AsyncExecuteEventType.UNSPECIFIED; + + /** + * @generated from field: optional string error = 7; + */ + error?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.AsyncExecuteEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 3, name: "verb_ref", kind: "message", T: Ref }, + { no: 4, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 5, name: "duration", kind: "message", T: Duration }, + { no: 6, name: "async_event_type", kind: "enum", T: proto3.getEnumType(AsyncExecuteEventType) }, + { no: 7, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): AsyncExecuteEvent { + return new AsyncExecuteEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): AsyncExecuteEvent { + return new AsyncExecuteEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): AsyncExecuteEvent { + return new AsyncExecuteEvent().fromJsonString(jsonString, options); + } + + static equals(a: AsyncExecuteEvent | PlainMessage | undefined, b: AsyncExecuteEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(AsyncExecuteEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.PubSubPublishEvent + */ +export class PubSubPublishEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional string request_key = 2; + */ + requestKey?: string; + + /** + * @generated from field: xyz.block.ftl.schema.v1.Ref verb_ref = 3; + */ + verbRef?: Ref; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 4; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: google.protobuf.Duration duration = 5; + */ + duration?: Duration; + + /** + * @generated from field: string topic = 6; + */ + topic = ""; + + /** + * @generated from field: string request = 7; + */ + request = ""; + + /** + * @generated from field: optional string error = 8; + */ + error?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.PubSubPublishEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 3, name: "verb_ref", kind: "message", T: Ref }, + { no: 4, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 5, name: "duration", kind: "message", T: Duration }, + { no: 6, name: "topic", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 7, name: "request", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 8, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PubSubPublishEvent { + return new PubSubPublishEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PubSubPublishEvent { + return new PubSubPublishEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PubSubPublishEvent { + return new PubSubPublishEvent().fromJsonString(jsonString, options); + } + + static equals(a: PubSubPublishEvent | PlainMessage | undefined, b: PubSubPublishEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(PubSubPublishEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.PubSubConsumeEvent + */ +export class PubSubConsumeEvent extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional string request_key = 2; + */ + requestKey?: string; + + /** + * @generated from field: optional string dest_verb_module = 3; + */ + destVerbModule?: string; + + /** + * @generated from field: optional string dest_verb_name = 4; + */ + destVerbName?: string; + + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 5; + */ + timeStamp?: Timestamp; + + /** + * @generated from field: google.protobuf.Duration duration = 6; + */ + duration?: Duration; + + /** + * @generated from field: string topic = 7; + */ + topic = ""; + + /** + * @generated from field: optional string error = 8; + */ + error?: string; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.PubSubConsumeEvent"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "request_key", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 3, name: "dest_verb_module", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 4, name: "dest_verb_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + { no: 5, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 6, name: "duration", kind: "message", T: Duration }, + { no: 7, name: "topic", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 8, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): PubSubConsumeEvent { + return new PubSubConsumeEvent().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): PubSubConsumeEvent { + return new PubSubConsumeEvent().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): PubSubConsumeEvent { + return new PubSubConsumeEvent().fromJsonString(jsonString, options); + } + + static equals(a: PubSubConsumeEvent | PlainMessage | undefined, b: PubSubConsumeEvent | PlainMessage | undefined): boolean { + return proto3.util.equals(PubSubConsumeEvent, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.Event + */ +export class Event extends Message { + /** + * @generated from field: google.protobuf.Timestamp time_stamp = 1; + */ + timeStamp?: Timestamp; + + /** + * Unique ID for event. + * + * @generated from field: int64 id = 2; + */ + id = protoInt64.zero; + + /** + * @generated from oneof xyz.block.ftl.timeline.v1.Event.entry + */ + entry: { + /** + * @generated from field: xyz.block.ftl.timeline.v1.LogEvent log = 3; + */ + value: LogEvent; + case: "log"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.CallEvent call = 4; + */ + value: CallEvent; + case: "call"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.DeploymentCreatedEvent deployment_created = 5; + */ + value: DeploymentCreatedEvent; + case: "deploymentCreated"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.DeploymentUpdatedEvent deployment_updated = 6; + */ + value: DeploymentUpdatedEvent; + case: "deploymentUpdated"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.IngressEvent ingress = 7; + */ + value: IngressEvent; + case: "ingress"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.CronScheduledEvent cron_scheduled = 8; + */ + value: CronScheduledEvent; + case: "cronScheduled"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.AsyncExecuteEvent async_execute = 9; + */ + value: AsyncExecuteEvent; + case: "asyncExecute"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.PubSubPublishEvent pubsub_publish = 10; + */ + value: PubSubPublishEvent; + case: "pubsubPublish"; + } | { + /** + * @generated from field: xyz.block.ftl.timeline.v1.PubSubConsumeEvent pubsub_consume = 11; + */ + value: PubSubConsumeEvent; + case: "pubsubConsume"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.Event"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "time_stamp", kind: "message", T: Timestamp }, + { no: 2, name: "id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 3, name: "log", kind: "message", T: LogEvent, oneof: "entry" }, + { no: 4, name: "call", kind: "message", T: CallEvent, oneof: "entry" }, + { no: 5, name: "deployment_created", kind: "message", T: DeploymentCreatedEvent, oneof: "entry" }, + { no: 6, name: "deployment_updated", kind: "message", T: DeploymentUpdatedEvent, oneof: "entry" }, + { no: 7, name: "ingress", kind: "message", T: IngressEvent, oneof: "entry" }, + { no: 8, name: "cron_scheduled", kind: "message", T: CronScheduledEvent, oneof: "entry" }, + { no: 9, name: "async_execute", kind: "message", T: AsyncExecuteEvent, oneof: "entry" }, + { no: 10, name: "pubsub_publish", kind: "message", T: PubSubPublishEvent, oneof: "entry" }, + { no: 11, name: "pubsub_consume", kind: "message", T: PubSubConsumeEvent, oneof: "entry" }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): Event { + return new Event().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): Event { + return new Event().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): Event { + return new Event().fromJsonString(jsonString, options); + } + + static equals(a: Event | PlainMessage | undefined, b: Event | PlainMessage | undefined): boolean { + return proto3.util.equals(Event, a, b); + } +} + diff --git a/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_connect.ts b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_connect.ts new file mode 100644 index 0000000000..3b353346ce --- /dev/null +++ b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_connect.ts @@ -0,0 +1,53 @@ +// @generated by protoc-gen-connect-es v1.6.1 with parameter "target=ts" +// @generated from file xyz/block/ftl/timeline/v1/timeline.proto (package xyz.block.ftl.timeline.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import { PingRequest, PingResponse } from "../../v1/ftl_pb.js"; +import { MethodIdempotency, MethodKind } from "@bufbuild/protobuf"; +import { DeleteOldEventsRequest, DeleteOldEventsResponse, GetTimelineRequest, GetTimelineResponse } from "./timeline_pb.js"; + +/** + * @generated from service xyz.block.ftl.timeline.v1.TimelineService + */ +export const TimelineService = { + typeName: "xyz.block.ftl.timeline.v1.TimelineService", + methods: { + /** + * Ping service for readiness + * + * @generated from rpc xyz.block.ftl.timeline.v1.TimelineService.Ping + */ + ping: { + name: "Ping", + I: PingRequest, + O: PingResponse, + kind: MethodKind.Unary, + idempotency: MethodIdempotency.NoSideEffects, + }, + /** + * Get timeline events, optionally filtered by type and time + * + * @generated from rpc xyz.block.ftl.timeline.v1.TimelineService.GetTimeline + */ + getTimeline: { + name: "GetTimeline", + I: GetTimelineRequest, + O: GetTimelineResponse, + kind: MethodKind.Unary, + idempotency: MethodIdempotency.NoSideEffects, + }, + /** + * Delete old events of a specific type + * + * @generated from rpc xyz.block.ftl.timeline.v1.TimelineService.DeleteOldEvents + */ + deleteOldEvents: { + name: "DeleteOldEvents", + I: DeleteOldEventsRequest, + O: DeleteOldEventsResponse, + kind: MethodKind.Unary, + }, + } +} as const; + diff --git a/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_pb.ts b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_pb.ts new file mode 100644 index 0000000000..f744635c01 --- /dev/null +++ b/frontend/console/src/protos/xyz/block/ftl/timeline/v1/timeline_pb.ts @@ -0,0 +1,181 @@ +// @generated by protoc-gen-es v1.10.0 with parameter "target=ts" +// @generated from file xyz/block/ftl/timeline/v1/timeline.proto (package xyz.block.ftl.timeline.v1, syntax proto3) +/* eslint-disable */ +// @ts-nocheck + +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; +import { Message, proto3, protoInt64 } from "@bufbuild/protobuf"; +import { Event, EventType } from "./event_pb.js"; + +/** + * @generated from message xyz.block.ftl.timeline.v1.GetTimelineRequest + */ +export class GetTimelineRequest extends Message { + /** + * @generated from field: string deployment_key = 1; + */ + deploymentKey = ""; + + /** + * @generated from field: optional int64 since_id = 2; + */ + sinceId?: bigint; + + /** + * @generated from field: optional int32 limit = 3; + */ + limit?: number; + + /** + * @generated from field: repeated xyz.block.ftl.timeline.v1.EventType event_types = 4; + */ + eventTypes: EventType[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.GetTimelineRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deployment_key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "since_id", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, + { no: 3, name: "limit", kind: "scalar", T: 5 /* ScalarType.INT32 */, opt: true }, + { no: 4, name: "event_types", kind: "enum", T: proto3.getEnumType(EventType), repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetTimelineRequest { + return new GetTimelineRequest().fromJsonString(jsonString, options); + } + + static equals(a: GetTimelineRequest | PlainMessage | undefined, b: GetTimelineRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(GetTimelineRequest, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.GetTimelineResponse + */ +export class GetTimelineResponse extends Message { + /** + * @generated from field: repeated xyz.block.ftl.timeline.v1.Event events = 1; + */ + events: Event[] = []; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.GetTimelineResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "events", kind: "message", T: Event, repeated: true }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): GetTimelineResponse { + return new GetTimelineResponse().fromJsonString(jsonString, options); + } + + static equals(a: GetTimelineResponse | PlainMessage | undefined, b: GetTimelineResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(GetTimelineResponse, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.DeleteOldEventsRequest + */ +export class DeleteOldEventsRequest extends Message { + /** + * @generated from field: xyz.block.ftl.timeline.v1.EventType event_type = 1; + */ + eventType = EventType.UNSPECIFIED; + + /** + * @generated from field: int64 age_seconds = 2; + */ + ageSeconds = protoInt64.zero; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.DeleteOldEventsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "event_type", kind: "enum", T: proto3.getEnumType(EventType) }, + { no: 2, name: "age_seconds", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteOldEventsRequest { + return new DeleteOldEventsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteOldEventsRequest { + return new DeleteOldEventsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteOldEventsRequest { + return new DeleteOldEventsRequest().fromJsonString(jsonString, options); + } + + static equals(a: DeleteOldEventsRequest | PlainMessage | undefined, b: DeleteOldEventsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteOldEventsRequest, a, b); + } +} + +/** + * @generated from message xyz.block.ftl.timeline.v1.DeleteOldEventsResponse + */ +export class DeleteOldEventsResponse extends Message { + /** + * @generated from field: int64 deleted_count = 1; + */ + deletedCount = protoInt64.zero; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "xyz.block.ftl.timeline.v1.DeleteOldEventsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "deleted_count", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): DeleteOldEventsResponse { + return new DeleteOldEventsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): DeleteOldEventsResponse { + return new DeleteOldEventsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): DeleteOldEventsResponse { + return new DeleteOldEventsResponse().fromJsonString(jsonString, options); + } + + static equals(a: DeleteOldEventsResponse | PlainMessage | undefined, b: DeleteOldEventsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(DeleteOldEventsResponse, a, b); + } +} + diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.py b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.py index 043673dce9..877326e7b4 100644 --- a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.py +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.py @@ -25,10 +25,11 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from xyz.block.ftl.schema.v1 import schema_pb2 as xyz_dot_block_dot_ftl_dot_schema_dot_v1_dot_schema__pb2 +from xyz.block.ftl.timeline.v1 import event_pb2 as xyz_dot_block_dot_ftl_dot_timeline_dot_v1_dot_event__pb2 from xyz.block.ftl.v1 import ftl_pb2 as xyz_dot_block_dot_ftl_dot_v1_dot_ftl__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&xyz/block/ftl/console/v1/console.proto\x12\x18xyz.block.ftl.console.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$xyz/block/ftl/schema/v1/schema.proto\x1a\x1axyz/block/ftl/v1/ftl.proto\"\xb6\x03\n\x08LogEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x1b\n\tlog_level\x18\x04 \x01(\x05R\x08logLevel\x12R\n\nattributes\x18\x05 \x03(\x0b\x32\x32.xyz.block.ftl.console.v1.LogEvent.AttributesEntryR\nattributes\x12\x18\n\x07message\x18\x06 \x01(\tR\x07message\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x12\x19\n\x05stack\x18\x08 \x01(\tH\x02R\x05stack\x88\x01\x01\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_errorB\x08\n\x06_stack\"\x95\x04\n\tCallEvent\x12$\n\x0brequest_key\x18\x01 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12I\n\x0fsource_verb_ref\x18\x0b \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x01R\rsourceVerbRef\x88\x01\x01\x12N\n\x14\x64\x65stination_verb_ref\x18\x0c \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x12\x64\x65stinationVerbRef\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x18\n\x07request\x18\x07 \x01(\tR\x07request\x12\x1a\n\x08response\x18\x08 \x01(\tR\x08response\x12\x19\n\x05\x65rror\x18\t \x01(\tH\x02R\x05\x65rror\x88\x01\x01\x12\x19\n\x05stack\x18\n \x01(\tH\x03R\x05stack\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x12\n\x10_source_verb_refB\x08\n\x06_errorB\x08\n\x06_stackJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\xb8\x01\n\x16\x44\x65ploymentCreatedEvent\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x1a\n\x08language\x18\x02 \x01(\tR\x08language\x12\x1f\n\x0bmodule_name\x18\x03 \x01(\tR\nmoduleName\x12!\n\x0cmin_replicas\x18\x04 \x01(\x05R\x0bminReplicas\x12\x1f\n\x08replaced\x18\x05 \x01(\tH\x00R\x08replaced\x88\x01\x01\x42\x0b\n\t_replaced\"y\n\x16\x44\x65ploymentUpdatedEvent\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12!\n\x0cmin_replicas\x18\x02 \x01(\x05R\x0bminReplicas\x12*\n\x11prev_min_replicas\x18\x03 \x01(\x05R\x0fprevMinReplicas\"\x8e\x04\n\x0cIngressEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x16\n\x06method\x18\x04 \x01(\tR\x06method\x12\x12\n\x04path\x18\x05 \x01(\tR\x04path\x12\x1f\n\x0bstatus_code\x18\x07 \x01(\x05R\nstatusCode\x12\x39\n\ntime_stamp\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x18\n\x07request\x18\n \x01(\tR\x07request\x12%\n\x0erequest_header\x18\x0b \x01(\tR\rrequestHeader\x12\x1a\n\x08response\x18\x0c \x01(\tR\x08response\x12\'\n\x0fresponse_header\x18\r \x01(\tR\x0eresponseHeader\x12\x19\n\x05\x65rror\x18\x0e \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xe6\x02\n\x12\x43ronScheduledEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12\x37\n\x08verb_ref\x18\x02 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12\x1a\n\x08schedule\x18\x06 \x01(\tR\x08schedule\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\x9b\x03\n\x11\x41syncExecuteEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12Y\n\x10\x61sync_event_type\x18\x06 \x01(\x0e\x32/.xyz.block.ftl.console.v1.AsyncExecuteEventTypeR\x0e\x61syncEventType\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xf1\x02\n\x12PubSubPublishEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x14\n\x05topic\x18\x06 \x01(\tR\x05topic\x12\x18\n\x07request\x18\x07 \x01(\tR\x07request\x12\x19\n\x05\x65rror\x18\x08 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xa0\x03\n\x12PubSubConsumeEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12-\n\x10\x64\x65st_verb_module\x18\x03 \x01(\tH\x01R\x0e\x64\x65stVerbModule\x88\x01\x01\x12)\n\x0e\x64\x65st_verb_name\x18\x04 \x01(\tH\x02R\x0c\x64\x65stVerbName\x88\x01\x01\x12\x39\n\ntime_stamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x14\n\x05topic\x18\x07 \x01(\tR\x05topic\x12\x19\n\x05\x65rror\x18\x08 \x01(\tH\x03R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x13\n\x11_dest_verb_moduleB\x11\n\x0f_dest_verb_nameB\x08\n\x06_error\"\x7f\n\x06\x43onfig\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ConfigR\x06\x63onfig\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x8f\x01\n\x04\x44\x61ta\x12\x31\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DataR\x04\x64\x61ta\x12\x16\n\x06schema\x18\x02 \x01(\tR\x06schema\x12<\n\nreferences\x18\x03 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x87\x01\n\x08\x44\x61tabase\x12=\n\x08\x64\x61tabase\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.DatabaseR\x08\x64\x61tabase\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"w\n\x04\x45num\x12\x31\n\x04\x65num\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.EnumR\x04\x65num\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"{\n\x05Topic\x12\x34\n\x05topic\x18\x01 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.TopicR\x05topic\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x8b\x01\n\tTypeAlias\x12@\n\ttypealias\x18\x01 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeAliasR\ttypealias\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x7f\n\x06Secret\x12\x37\n\x06secret\x18\x01 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.SecretR\x06secret\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\xbf\x01\n\x04Verb\x12\x31\n\x04verb\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.VerbR\x04verb\x12\x16\n\x06schema\x18\x02 \x01(\tR\x06schema\x12.\n\x13json_request_schema\x18\x03 \x01(\tR\x11jsonRequestSchema\x12<\n\nreferences\x18\x04 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\xd1\x04\n\x06Module\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\x12\x1a\n\x08language\x18\x03 \x01(\tR\x08language\x12\x16\n\x06schema\x18\x04 \x01(\tR\x06schema\x12\x34\n\x05verbs\x18\x05 \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.VerbR\x05verbs\x12\x32\n\x04\x64\x61ta\x18\x06 \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.DataR\x04\x64\x61ta\x12:\n\x07secrets\x18\x07 \x03(\x0b\x32 .xyz.block.ftl.console.v1.SecretR\x07secrets\x12:\n\x07\x63onfigs\x18\x08 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ConfigR\x07\x63onfigs\x12@\n\tdatabases\x18\t \x03(\x0b\x32\".xyz.block.ftl.console.v1.DatabaseR\tdatabases\x12\x34\n\x05\x65nums\x18\n \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.EnumR\x05\x65nums\x12\x37\n\x06topics\x18\x0b \x03(\x0b\x32\x1f.xyz.block.ftl.console.v1.TopicR\x06topics\x12\x45\n\x0btypealiases\x18\x0c \x03(\x0b\x32#.xyz.block.ftl.console.v1.TypeAliasR\x0btypealiases\")\n\rTopologyGroup\x12\x18\n\x07modules\x18\x01 \x03(\tR\x07modules\"K\n\x08Topology\x12?\n\x06levels\x18\x01 \x03(\x0b\x32\'.xyz.block.ftl.console.v1.TopologyGroupR\x06levels\"\x13\n\x11GetModulesRequest\"\x90\x01\n\x12GetModulesResponse\x12:\n\x07modules\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ModuleR\x07modules\x12>\n\x08topology\x18\x02 \x01(\x0b\x32\".xyz.block.ftl.console.v1.TopologyR\x08topology\"\x16\n\x14StreamModulesRequest\"\x93\x01\n\x15StreamModulesResponse\x12:\n\x07modules\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ModuleR\x07modules\x12>\n\x08topology\x18\x02 \x01(\x0b\x32\".xyz.block.ftl.console.v1.TopologyR\x08topology\"\xc3\x0e\n\x10GetEventsRequest\x12K\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x31.xyz.block.ftl.console.v1.GetEventsRequest.FilterR\x07\x66ilters\x12\x14\n\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x46\n\x05order\x18\x03 \x01(\x0e\x32\x30.xyz.block.ftl.console.v1.GetEventsRequest.OrderR\x05order\x1a#\n\x0bLimitFilter\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x1aQ\n\x0eLogLevelFilter\x12?\n\tlog_level\x18\x01 \x01(\x0e\x32\".xyz.block.ftl.console.v1.LogLevelR\x08logLevel\x1a\x34\n\x10\x44\x65ploymentFilter\x12 \n\x0b\x64\x65ployments\x18\x01 \x03(\tR\x0b\x64\x65ployments\x1a+\n\rRequestFilter\x12\x1a\n\x08requests\x18\x01 \x03(\tR\x08requests\x1aW\n\x0f\x45ventTypeFilter\x12\x44\n\x0b\x65vent_types\x18\x01 \x03(\x0e\x32#.xyz.block.ftl.console.v1.EventTypeR\neventTypes\x1a\xaa\x01\n\nTimeFilter\x12>\n\nolder_than\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tolderThan\x88\x01\x01\x12>\n\nnewer_than\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tnewerThan\x88\x01\x01\x42\r\n\x0b_older_thanB\r\n\x0b_newer_than\x1as\n\x08IDFilter\x12\"\n\nlower_than\x18\x01 \x01(\x03H\x00R\tlowerThan\x88\x01\x01\x12$\n\x0bhigher_than\x18\x02 \x01(\x03H\x01R\nhigherThan\x88\x01\x01\x42\r\n\x0b_lower_thanB\x0e\n\x0c_higher_than\x1a\x99\x01\n\nCallFilter\x12\x1f\n\x0b\x64\x65st_module\x18\x01 \x01(\tR\ndestModule\x12 \n\tdest_verb\x18\x02 \x01(\tH\x00R\x08\x64\x65stVerb\x88\x01\x01\x12(\n\rsource_module\x18\x03 \x01(\tH\x01R\x0csourceModule\x88\x01\x01\x42\x0c\n\n_dest_verbB\x10\n\x0e_source_module\x1aH\n\x0cModuleFilter\x12\x16\n\x06module\x18\x01 \x01(\tR\x06module\x12\x17\n\x04verb\x18\x02 \x01(\tH\x00R\x04verb\x88\x01\x01\x42\x07\n\x05_verb\x1a\x88\x06\n\x06\x46ilter\x12N\n\x05limit\x18\x01 \x01(\x0b\x32\x36.xyz.block.ftl.console.v1.GetEventsRequest.LimitFilterH\x00R\x05limit\x12X\n\tlog_level\x18\x02 \x01(\x0b\x32\x39.xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilterH\x00R\x08logLevel\x12_\n\x0b\x64\x65ployments\x18\x03 \x01(\x0b\x32;.xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilterH\x00R\x0b\x64\x65ployments\x12V\n\x08requests\x18\x04 \x01(\x0b\x32\x38.xyz.block.ftl.console.v1.GetEventsRequest.RequestFilterH\x00R\x08requests\x12]\n\x0b\x65vent_types\x18\x05 \x01(\x0b\x32:.xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilterH\x00R\neventTypes\x12K\n\x04time\x18\x06 \x01(\x0b\x32\x35.xyz.block.ftl.console.v1.GetEventsRequest.TimeFilterH\x00R\x04time\x12\x45\n\x02id\x18\x07 \x01(\x0b\x32\x33.xyz.block.ftl.console.v1.GetEventsRequest.IDFilterH\x00R\x02id\x12K\n\x04\x63\x61ll\x18\x08 \x01(\x0b\x32\x35.xyz.block.ftl.console.v1.GetEventsRequest.CallFilterH\x00R\x04\x63\x61ll\x12Q\n\x06module\x18\t \x01(\x0b\x32\x37.xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilterH\x00R\x06moduleB\x08\n\x06\x66ilter\"=\n\x05Order\x12\x15\n\x11ORDER_UNSPECIFIED\x10\x00\x12\r\n\tORDER_ASC\x10\x01\x12\x0e\n\nORDER_DESC\x10\x02\"t\n\x11GetEventsResponse\x12\x37\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1f.xyz.block.ftl.console.v1.EventR\x06\x65vents\x12\x1b\n\x06\x63ursor\x18\x02 \x01(\x03H\x00R\x06\x63ursor\x88\x01\x01\x42\t\n\x07_cursor\"N\n\x10GetConfigRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x42\t\n\x07_module\")\n\x11GetConfigResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"d\n\x10SetConfigRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x12\x14\n\x05value\x18\x03 \x01(\x0cR\x05valueB\t\n\x07_module\")\n\x11SetConfigResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"N\n\x10GetSecretRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x42\t\n\x07_module\")\n\x11GetSecretResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"d\n\x10SetSecretRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x12\x14\n\x05value\x18\x03 \x01(\x0cR\x05valueB\t\n\x07_module\")\n\x11SetSecretResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"\xb4\x01\n\x13StreamEventsRequest\x12G\n\x0fupdate_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00R\x0eupdateInterval\x88\x01\x01\x12@\n\x05query\x18\x02 \x01(\x0b\x32*.xyz.block.ftl.console.v1.GetEventsRequestR\x05queryB\x12\n\x10_update_interval\"O\n\x14StreamEventsResponse\x12\x37\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1f.xyz.block.ftl.console.v1.EventR\x06\x65vents\"\xb1\x06\n\x05\x45vent\x12\x39\n\ntime_stamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x0e\n\x02id\x18\x02 \x01(\x03R\x02id\x12\x36\n\x03log\x18\x03 \x01(\x0b\x32\".xyz.block.ftl.console.v1.LogEventH\x00R\x03log\x12\x39\n\x04\x63\x61ll\x18\x04 \x01(\x0b\x32#.xyz.block.ftl.console.v1.CallEventH\x00R\x04\x63\x61ll\x12\x61\n\x12\x64\x65ployment_created\x18\x05 \x01(\x0b\x32\x30.xyz.block.ftl.console.v1.DeploymentCreatedEventH\x00R\x11\x64\x65ploymentCreated\x12\x61\n\x12\x64\x65ployment_updated\x18\x06 \x01(\x0b\x32\x30.xyz.block.ftl.console.v1.DeploymentUpdatedEventH\x00R\x11\x64\x65ploymentUpdated\x12\x42\n\x07ingress\x18\x07 \x01(\x0b\x32&.xyz.block.ftl.console.v1.IngressEventH\x00R\x07ingress\x12U\n\x0e\x63ron_scheduled\x18\x08 \x01(\x0b\x32,.xyz.block.ftl.console.v1.CronScheduledEventH\x00R\rcronScheduled\x12R\n\rasync_execute\x18\t \x01(\x0b\x32+.xyz.block.ftl.console.v1.AsyncExecuteEventH\x00R\x0c\x61syncExecute\x12U\n\x0epubsub_publish\x18\n \x01(\x0b\x32,.xyz.block.ftl.console.v1.PubSubPublishEventH\x00R\rpubsubPublish\x12U\n\x0epubsub_consume\x18\x0b \x01(\x0b\x32,.xyz.block.ftl.console.v1.PubSubConsumeEventH\x00R\rpubsubConsumeB\x07\n\x05\x65ntry*\xa9\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45VENT_TYPE_LOG\x10\x01\x12\x13\n\x0f\x45VENT_TYPE_CALL\x10\x02\x12!\n\x1d\x45VENT_TYPE_DEPLOYMENT_CREATED\x10\x03\x12!\n\x1d\x45VENT_TYPE_DEPLOYMENT_UPDATED\x10\x04\x12\x16\n\x12\x45VENT_TYPE_INGRESS\x10\x05\x12\x1d\n\x19\x45VENT_TYPE_CRON_SCHEDULED\x10\x06\x12\x1c\n\x18\x45VENT_TYPE_ASYNC_EXECUTE\x10\x07\x12\x1d\n\x19\x45VENT_TYPE_PUBSUB_PUBLISH\x10\x08\x12\x1d\n\x19\x45VENT_TYPE_PUBSUB_CONSUME\x10\t*\x89\x01\n\x15\x41syncExecuteEventType\x12(\n$ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED\x10\x00\x12!\n\x1d\x41SYNC_EXECUTE_EVENT_TYPE_CRON\x10\x01\x12#\n\x1f\x41SYNC_EXECUTE_EVENT_TYPE_PUBSUB\x10\x02*\x8c\x01\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x13\n\x0fLOG_LEVEL_TRACE\x10\x01\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x05\x12\x12\n\x0eLOG_LEVEL_INFO\x10\t\x12\x12\n\x0eLOG_LEVEL_WARN\x10\r\x12\x13\n\x0fLOG_LEVEL_ERROR\x10\x11\x32\xa8\x07\n\x0e\x43onsoleService\x12J\n\x04Ping\x12\x1d.xyz.block.ftl.v1.PingRequest\x1a\x1e.xyz.block.ftl.v1.PingResponse\"\x03\x90\x02\x01\x12g\n\nGetModules\x12+.xyz.block.ftl.console.v1.GetModulesRequest\x1a,.xyz.block.ftl.console.v1.GetModulesResponse\x12r\n\rStreamModules\x12..xyz.block.ftl.console.v1.StreamModulesRequest\x1a/.xyz.block.ftl.console.v1.StreamModulesResponse0\x01\x12o\n\x0cStreamEvents\x12-.xyz.block.ftl.console.v1.StreamEventsRequest\x1a..xyz.block.ftl.console.v1.StreamEventsResponse0\x01\x12\x64\n\tGetEvents\x12*.xyz.block.ftl.console.v1.GetEventsRequest\x1a+.xyz.block.ftl.console.v1.GetEventsResponse\x12\x64\n\tGetConfig\x12*.xyz.block.ftl.console.v1.GetConfigRequest\x1a+.xyz.block.ftl.console.v1.GetConfigResponse\x12\x64\n\tSetConfig\x12*.xyz.block.ftl.console.v1.SetConfigRequest\x1a+.xyz.block.ftl.console.v1.SetConfigResponse\x12\x64\n\tGetSecret\x12*.xyz.block.ftl.console.v1.GetSecretRequest\x1a+.xyz.block.ftl.console.v1.GetSecretResponse\x12\x64\n\tSetSecret\x12*.xyz.block.ftl.console.v1.SetSecretRequest\x1a+.xyz.block.ftl.console.v1.SetSecretResponseBPP\x01ZLgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1;pbconsoleb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&xyz/block/ftl/console/v1/console.proto\x12\x18xyz.block.ftl.console.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$xyz/block/ftl/schema/v1/schema.proto\x1a%xyz/block/ftl/timeline/v1/event.proto\x1a\x1axyz/block/ftl/v1/ftl.proto\"\x7f\n\x06\x43onfig\x12\x37\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.ConfigR\x06\x63onfig\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x8f\x01\n\x04\x44\x61ta\x12\x31\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.DataR\x04\x64\x61ta\x12\x16\n\x06schema\x18\x02 \x01(\tR\x06schema\x12<\n\nreferences\x18\x03 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x87\x01\n\x08\x44\x61tabase\x12=\n\x08\x64\x61tabase\x18\x01 \x01(\x0b\x32!.xyz.block.ftl.schema.v1.DatabaseR\x08\x64\x61tabase\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"w\n\x04\x45num\x12\x31\n\x04\x65num\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.EnumR\x04\x65num\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"{\n\x05Topic\x12\x34\n\x05topic\x18\x01 \x01(\x0b\x32\x1e.xyz.block.ftl.schema.v1.TopicR\x05topic\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x8b\x01\n\tTypeAlias\x12@\n\ttypealias\x18\x01 \x01(\x0b\x32\".xyz.block.ftl.schema.v1.TypeAliasR\ttypealias\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\x7f\n\x06Secret\x12\x37\n\x06secret\x18\x01 \x01(\x0b\x32\x1f.xyz.block.ftl.schema.v1.SecretR\x06secret\x12<\n\nreferences\x18\x02 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\xbf\x01\n\x04Verb\x12\x31\n\x04verb\x18\x01 \x01(\x0b\x32\x1d.xyz.block.ftl.schema.v1.VerbR\x04verb\x12\x16\n\x06schema\x18\x02 \x01(\tR\x06schema\x12.\n\x13json_request_schema\x18\x03 \x01(\tR\x11jsonRequestSchema\x12<\n\nreferences\x18\x04 \x03(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\nreferences\"\xd1\x04\n\x06Module\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\x12\x1a\n\x08language\x18\x03 \x01(\tR\x08language\x12\x16\n\x06schema\x18\x04 \x01(\tR\x06schema\x12\x34\n\x05verbs\x18\x05 \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.VerbR\x05verbs\x12\x32\n\x04\x64\x61ta\x18\x06 \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.DataR\x04\x64\x61ta\x12:\n\x07secrets\x18\x07 \x03(\x0b\x32 .xyz.block.ftl.console.v1.SecretR\x07secrets\x12:\n\x07\x63onfigs\x18\x08 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ConfigR\x07\x63onfigs\x12@\n\tdatabases\x18\t \x03(\x0b\x32\".xyz.block.ftl.console.v1.DatabaseR\tdatabases\x12\x34\n\x05\x65nums\x18\n \x03(\x0b\x32\x1e.xyz.block.ftl.console.v1.EnumR\x05\x65nums\x12\x37\n\x06topics\x18\x0b \x03(\x0b\x32\x1f.xyz.block.ftl.console.v1.TopicR\x06topics\x12\x45\n\x0btypealiases\x18\x0c \x03(\x0b\x32#.xyz.block.ftl.console.v1.TypeAliasR\x0btypealiases\")\n\rTopologyGroup\x12\x18\n\x07modules\x18\x01 \x03(\tR\x07modules\"K\n\x08Topology\x12?\n\x06levels\x18\x01 \x03(\x0b\x32\'.xyz.block.ftl.console.v1.TopologyGroupR\x06levels\"\x13\n\x11GetModulesRequest\"\x90\x01\n\x12GetModulesResponse\x12:\n\x07modules\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ModuleR\x07modules\x12>\n\x08topology\x18\x02 \x01(\x0b\x32\".xyz.block.ftl.console.v1.TopologyR\x08topology\"\x16\n\x14StreamModulesRequest\"\x93\x01\n\x15StreamModulesResponse\x12:\n\x07modules\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.console.v1.ModuleR\x07modules\x12>\n\x08topology\x18\x02 \x01(\x0b\x32\".xyz.block.ftl.console.v1.TopologyR\x08topology\"\xc5\x0e\n\x10GetEventsRequest\x12K\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x31.xyz.block.ftl.console.v1.GetEventsRequest.FilterR\x07\x66ilters\x12\x14\n\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x46\n\x05order\x18\x03 \x01(\x0e\x32\x30.xyz.block.ftl.console.v1.GetEventsRequest.OrderR\x05order\x1a#\n\x0bLimitFilter\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x1aR\n\x0eLogLevelFilter\x12@\n\tlog_level\x18\x01 \x01(\x0e\x32#.xyz.block.ftl.timeline.v1.LogLevelR\x08logLevel\x1a\x34\n\x10\x44\x65ploymentFilter\x12 \n\x0b\x64\x65ployments\x18\x01 \x03(\tR\x0b\x64\x65ployments\x1a+\n\rRequestFilter\x12\x1a\n\x08requests\x18\x01 \x03(\tR\x08requests\x1aX\n\x0f\x45ventTypeFilter\x12\x45\n\x0b\x65vent_types\x18\x01 \x03(\x0e\x32$.xyz.block.ftl.timeline.v1.EventTypeR\neventTypes\x1a\xaa\x01\n\nTimeFilter\x12>\n\nolder_than\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tolderThan\x88\x01\x01\x12>\n\nnewer_than\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tnewerThan\x88\x01\x01\x42\r\n\x0b_older_thanB\r\n\x0b_newer_than\x1as\n\x08IDFilter\x12\"\n\nlower_than\x18\x01 \x01(\x03H\x00R\tlowerThan\x88\x01\x01\x12$\n\x0bhigher_than\x18\x02 \x01(\x03H\x01R\nhigherThan\x88\x01\x01\x42\r\n\x0b_lower_thanB\x0e\n\x0c_higher_than\x1a\x99\x01\n\nCallFilter\x12\x1f\n\x0b\x64\x65st_module\x18\x01 \x01(\tR\ndestModule\x12 \n\tdest_verb\x18\x02 \x01(\tH\x00R\x08\x64\x65stVerb\x88\x01\x01\x12(\n\rsource_module\x18\x03 \x01(\tH\x01R\x0csourceModule\x88\x01\x01\x42\x0c\n\n_dest_verbB\x10\n\x0e_source_module\x1aH\n\x0cModuleFilter\x12\x16\n\x06module\x18\x01 \x01(\tR\x06module\x12\x17\n\x04verb\x18\x02 \x01(\tH\x00R\x04verb\x88\x01\x01\x42\x07\n\x05_verb\x1a\x88\x06\n\x06\x46ilter\x12N\n\x05limit\x18\x01 \x01(\x0b\x32\x36.xyz.block.ftl.console.v1.GetEventsRequest.LimitFilterH\x00R\x05limit\x12X\n\tlog_level\x18\x02 \x01(\x0b\x32\x39.xyz.block.ftl.console.v1.GetEventsRequest.LogLevelFilterH\x00R\x08logLevel\x12_\n\x0b\x64\x65ployments\x18\x03 \x01(\x0b\x32;.xyz.block.ftl.console.v1.GetEventsRequest.DeploymentFilterH\x00R\x0b\x64\x65ployments\x12V\n\x08requests\x18\x04 \x01(\x0b\x32\x38.xyz.block.ftl.console.v1.GetEventsRequest.RequestFilterH\x00R\x08requests\x12]\n\x0b\x65vent_types\x18\x05 \x01(\x0b\x32:.xyz.block.ftl.console.v1.GetEventsRequest.EventTypeFilterH\x00R\neventTypes\x12K\n\x04time\x18\x06 \x01(\x0b\x32\x35.xyz.block.ftl.console.v1.GetEventsRequest.TimeFilterH\x00R\x04time\x12\x45\n\x02id\x18\x07 \x01(\x0b\x32\x33.xyz.block.ftl.console.v1.GetEventsRequest.IDFilterH\x00R\x02id\x12K\n\x04\x63\x61ll\x18\x08 \x01(\x0b\x32\x35.xyz.block.ftl.console.v1.GetEventsRequest.CallFilterH\x00R\x04\x63\x61ll\x12Q\n\x06module\x18\t \x01(\x0b\x32\x37.xyz.block.ftl.console.v1.GetEventsRequest.ModuleFilterH\x00R\x06moduleB\x08\n\x06\x66ilter\"=\n\x05Order\x12\x15\n\x11ORDER_UNSPECIFIED\x10\x00\x12\r\n\tORDER_ASC\x10\x01\x12\x0e\n\nORDER_DESC\x10\x02\"u\n\x11GetEventsResponse\x12\x38\n\x06\x65vents\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.timeline.v1.EventR\x06\x65vents\x12\x1b\n\x06\x63ursor\x18\x02 \x01(\x03H\x00R\x06\x63ursor\x88\x01\x01\x42\t\n\x07_cursor\"N\n\x10GetConfigRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x42\t\n\x07_module\")\n\x11GetConfigResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"d\n\x10SetConfigRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x12\x14\n\x05value\x18\x03 \x01(\x0cR\x05valueB\t\n\x07_module\")\n\x11SetConfigResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"N\n\x10GetSecretRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x42\t\n\x07_module\")\n\x11GetSecretResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"d\n\x10SetSecretRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06module\x18\x02 \x01(\tH\x00R\x06module\x88\x01\x01\x12\x14\n\x05value\x18\x03 \x01(\x0cR\x05valueB\t\n\x07_module\")\n\x11SetSecretResponse\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"\xb4\x01\n\x13StreamEventsRequest\x12G\n\x0fupdate_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00R\x0eupdateInterval\x88\x01\x01\x12@\n\x05query\x18\x02 \x01(\x0b\x32*.xyz.block.ftl.console.v1.GetEventsRequestR\x05queryB\x12\n\x10_update_interval\"P\n\x14StreamEventsResponse\x12\x38\n\x06\x65vents\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.timeline.v1.EventR\x06\x65vents2\xa8\x07\n\x0e\x43onsoleService\x12J\n\x04Ping\x12\x1d.xyz.block.ftl.v1.PingRequest\x1a\x1e.xyz.block.ftl.v1.PingResponse\"\x03\x90\x02\x01\x12g\n\nGetModules\x12+.xyz.block.ftl.console.v1.GetModulesRequest\x1a,.xyz.block.ftl.console.v1.GetModulesResponse\x12r\n\rStreamModules\x12..xyz.block.ftl.console.v1.StreamModulesRequest\x1a/.xyz.block.ftl.console.v1.StreamModulesResponse0\x01\x12o\n\x0cStreamEvents\x12-.xyz.block.ftl.console.v1.StreamEventsRequest\x1a..xyz.block.ftl.console.v1.StreamEventsResponse0\x01\x12\x64\n\tGetEvents\x12*.xyz.block.ftl.console.v1.GetEventsRequest\x1a+.xyz.block.ftl.console.v1.GetEventsResponse\x12\x64\n\tGetConfig\x12*.xyz.block.ftl.console.v1.GetConfigRequest\x1a+.xyz.block.ftl.console.v1.GetConfigResponse\x12\x64\n\tSetConfig\x12*.xyz.block.ftl.console.v1.SetConfigRequest\x1a+.xyz.block.ftl.console.v1.SetConfigResponse\x12\x64\n\tGetSecret\x12*.xyz.block.ftl.console.v1.GetSecretRequest\x1a+.xyz.block.ftl.console.v1.GetSecretResponse\x12\x64\n\tSetSecret\x12*.xyz.block.ftl.console.v1.SetSecretRequest\x1a+.xyz.block.ftl.console.v1.SetSecretResponseBPP\x01ZLgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1;pbconsoleb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,114 +37,84 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'P\001ZLgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/console/v1;pbconsole' - _globals['_LOGEVENT_ATTRIBUTESENTRY']._loaded_options = None - _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_CONSOLESERVICE'].methods_by_name['Ping']._loaded_options = None _globals['_CONSOLESERVICE'].methods_by_name['Ping']._serialized_options = b'\220\002\001' - _globals['_EVENTTYPE']._serialized_start=9364 - _globals['_EVENTTYPE']._serialized_end=9661 - _globals['_ASYNCEXECUTEEVENTTYPE']._serialized_start=9664 - _globals['_ASYNCEXECUTEEVENTTYPE']._serialized_end=9801 - _globals['_LOGLEVEL']._serialized_start=9804 - _globals['_LOGLEVEL']._serialized_end=9944 - _globals['_LOGEVENT']._serialized_start=200 - _globals['_LOGEVENT']._serialized_end=638 - _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_start=541 - _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_end=602 - _globals['_CALLEVENT']._serialized_start=641 - _globals['_CALLEVENT']._serialized_end=1174 - _globals['_DEPLOYMENTCREATEDEVENT']._serialized_start=1177 - _globals['_DEPLOYMENTCREATEDEVENT']._serialized_end=1361 - _globals['_DEPLOYMENTUPDATEDEVENT']._serialized_start=1363 - _globals['_DEPLOYMENTUPDATEDEVENT']._serialized_end=1484 - _globals['_INGRESSEVENT']._serialized_start=1487 - _globals['_INGRESSEVENT']._serialized_end=2013 - _globals['_CRONSCHEDULEDEVENT']._serialized_start=2016 - _globals['_CRONSCHEDULEDEVENT']._serialized_end=2374 - _globals['_ASYNCEXECUTEEVENT']._serialized_start=2377 - _globals['_ASYNCEXECUTEEVENT']._serialized_end=2788 - _globals['_PUBSUBPUBLISHEVENT']._serialized_start=2791 - _globals['_PUBSUBPUBLISHEVENT']._serialized_end=3160 - _globals['_PUBSUBCONSUMEEVENT']._serialized_start=3163 - _globals['_PUBSUBCONSUMEEVENT']._serialized_end=3579 - _globals['_CONFIG']._serialized_start=3581 - _globals['_CONFIG']._serialized_end=3708 - _globals['_DATA']._serialized_start=3711 - _globals['_DATA']._serialized_end=3854 - _globals['_DATABASE']._serialized_start=3857 - _globals['_DATABASE']._serialized_end=3992 - _globals['_ENUM']._serialized_start=3994 - _globals['_ENUM']._serialized_end=4113 - _globals['_TOPIC']._serialized_start=4115 - _globals['_TOPIC']._serialized_end=4238 - _globals['_TYPEALIAS']._serialized_start=4241 - _globals['_TYPEALIAS']._serialized_end=4380 - _globals['_SECRET']._serialized_start=4382 - _globals['_SECRET']._serialized_end=4509 - _globals['_VERB']._serialized_start=4512 - _globals['_VERB']._serialized_end=4703 - _globals['_MODULE']._serialized_start=4706 - _globals['_MODULE']._serialized_end=5299 - _globals['_TOPOLOGYGROUP']._serialized_start=5301 - _globals['_TOPOLOGYGROUP']._serialized_end=5342 - _globals['_TOPOLOGY']._serialized_start=5344 - _globals['_TOPOLOGY']._serialized_end=5419 - _globals['_GETMODULESREQUEST']._serialized_start=5421 - _globals['_GETMODULESREQUEST']._serialized_end=5440 - _globals['_GETMODULESRESPONSE']._serialized_start=5443 - _globals['_GETMODULESRESPONSE']._serialized_end=5587 - _globals['_STREAMMODULESREQUEST']._serialized_start=5589 - _globals['_STREAMMODULESREQUEST']._serialized_end=5611 - _globals['_STREAMMODULESRESPONSE']._serialized_start=5614 - _globals['_STREAMMODULESRESPONSE']._serialized_end=5761 - _globals['_GETEVENTSREQUEST']._serialized_start=5764 - _globals['_GETEVENTSREQUEST']._serialized_end=7623 - _globals['_GETEVENTSREQUEST_LIMITFILTER']._serialized_start=5955 - _globals['_GETEVENTSREQUEST_LIMITFILTER']._serialized_end=5990 - _globals['_GETEVENTSREQUEST_LOGLEVELFILTER']._serialized_start=5992 - _globals['_GETEVENTSREQUEST_LOGLEVELFILTER']._serialized_end=6073 - _globals['_GETEVENTSREQUEST_DEPLOYMENTFILTER']._serialized_start=6075 - _globals['_GETEVENTSREQUEST_DEPLOYMENTFILTER']._serialized_end=6127 - _globals['_GETEVENTSREQUEST_REQUESTFILTER']._serialized_start=6129 - _globals['_GETEVENTSREQUEST_REQUESTFILTER']._serialized_end=6172 - _globals['_GETEVENTSREQUEST_EVENTTYPEFILTER']._serialized_start=6174 - _globals['_GETEVENTSREQUEST_EVENTTYPEFILTER']._serialized_end=6261 - _globals['_GETEVENTSREQUEST_TIMEFILTER']._serialized_start=6264 - _globals['_GETEVENTSREQUEST_TIMEFILTER']._serialized_end=6434 - _globals['_GETEVENTSREQUEST_IDFILTER']._serialized_start=6436 - _globals['_GETEVENTSREQUEST_IDFILTER']._serialized_end=6551 - _globals['_GETEVENTSREQUEST_CALLFILTER']._serialized_start=6554 - _globals['_GETEVENTSREQUEST_CALLFILTER']._serialized_end=6707 - _globals['_GETEVENTSREQUEST_MODULEFILTER']._serialized_start=6709 - _globals['_GETEVENTSREQUEST_MODULEFILTER']._serialized_end=6781 - _globals['_GETEVENTSREQUEST_FILTER']._serialized_start=6784 - _globals['_GETEVENTSREQUEST_FILTER']._serialized_end=7560 - _globals['_GETEVENTSREQUEST_ORDER']._serialized_start=7562 - _globals['_GETEVENTSREQUEST_ORDER']._serialized_end=7623 - _globals['_GETEVENTSRESPONSE']._serialized_start=7625 - _globals['_GETEVENTSRESPONSE']._serialized_end=7741 - _globals['_GETCONFIGREQUEST']._serialized_start=7743 - _globals['_GETCONFIGREQUEST']._serialized_end=7821 - _globals['_GETCONFIGRESPONSE']._serialized_start=7823 - _globals['_GETCONFIGRESPONSE']._serialized_end=7864 - _globals['_SETCONFIGREQUEST']._serialized_start=7866 - _globals['_SETCONFIGREQUEST']._serialized_end=7966 - _globals['_SETCONFIGRESPONSE']._serialized_start=7968 - _globals['_SETCONFIGRESPONSE']._serialized_end=8009 - _globals['_GETSECRETREQUEST']._serialized_start=8011 - _globals['_GETSECRETREQUEST']._serialized_end=8089 - _globals['_GETSECRETRESPONSE']._serialized_start=8091 - _globals['_GETSECRETRESPONSE']._serialized_end=8132 - _globals['_SETSECRETREQUEST']._serialized_start=8134 - _globals['_SETSECRETREQUEST']._serialized_end=8234 - _globals['_SETSECRETRESPONSE']._serialized_start=8236 - _globals['_SETSECRETRESPONSE']._serialized_end=8277 - _globals['_STREAMEVENTSREQUEST']._serialized_start=8280 - _globals['_STREAMEVENTSREQUEST']._serialized_end=8460 - _globals['_STREAMEVENTSRESPONSE']._serialized_start=8462 - _globals['_STREAMEVENTSRESPONSE']._serialized_end=8541 - _globals['_EVENT']._serialized_start=8544 - _globals['_EVENT']._serialized_end=9361 - _globals['_CONSOLESERVICE']._serialized_start=9947 - _globals['_CONSOLESERVICE']._serialized_end=10883 + _globals['_CONFIG']._serialized_start=238 + _globals['_CONFIG']._serialized_end=365 + _globals['_DATA']._serialized_start=368 + _globals['_DATA']._serialized_end=511 + _globals['_DATABASE']._serialized_start=514 + _globals['_DATABASE']._serialized_end=649 + _globals['_ENUM']._serialized_start=651 + _globals['_ENUM']._serialized_end=770 + _globals['_TOPIC']._serialized_start=772 + _globals['_TOPIC']._serialized_end=895 + _globals['_TYPEALIAS']._serialized_start=898 + _globals['_TYPEALIAS']._serialized_end=1037 + _globals['_SECRET']._serialized_start=1039 + _globals['_SECRET']._serialized_end=1166 + _globals['_VERB']._serialized_start=1169 + _globals['_VERB']._serialized_end=1360 + _globals['_MODULE']._serialized_start=1363 + _globals['_MODULE']._serialized_end=1956 + _globals['_TOPOLOGYGROUP']._serialized_start=1958 + _globals['_TOPOLOGYGROUP']._serialized_end=1999 + _globals['_TOPOLOGY']._serialized_start=2001 + _globals['_TOPOLOGY']._serialized_end=2076 + _globals['_GETMODULESREQUEST']._serialized_start=2078 + _globals['_GETMODULESREQUEST']._serialized_end=2097 + _globals['_GETMODULESRESPONSE']._serialized_start=2100 + _globals['_GETMODULESRESPONSE']._serialized_end=2244 + _globals['_STREAMMODULESREQUEST']._serialized_start=2246 + _globals['_STREAMMODULESREQUEST']._serialized_end=2268 + _globals['_STREAMMODULESRESPONSE']._serialized_start=2271 + _globals['_STREAMMODULESRESPONSE']._serialized_end=2418 + _globals['_GETEVENTSREQUEST']._serialized_start=2421 + _globals['_GETEVENTSREQUEST']._serialized_end=4282 + _globals['_GETEVENTSREQUEST_LIMITFILTER']._serialized_start=2612 + _globals['_GETEVENTSREQUEST_LIMITFILTER']._serialized_end=2647 + _globals['_GETEVENTSREQUEST_LOGLEVELFILTER']._serialized_start=2649 + _globals['_GETEVENTSREQUEST_LOGLEVELFILTER']._serialized_end=2731 + _globals['_GETEVENTSREQUEST_DEPLOYMENTFILTER']._serialized_start=2733 + _globals['_GETEVENTSREQUEST_DEPLOYMENTFILTER']._serialized_end=2785 + _globals['_GETEVENTSREQUEST_REQUESTFILTER']._serialized_start=2787 + _globals['_GETEVENTSREQUEST_REQUESTFILTER']._serialized_end=2830 + _globals['_GETEVENTSREQUEST_EVENTTYPEFILTER']._serialized_start=2832 + _globals['_GETEVENTSREQUEST_EVENTTYPEFILTER']._serialized_end=2920 + _globals['_GETEVENTSREQUEST_TIMEFILTER']._serialized_start=2923 + _globals['_GETEVENTSREQUEST_TIMEFILTER']._serialized_end=3093 + _globals['_GETEVENTSREQUEST_IDFILTER']._serialized_start=3095 + _globals['_GETEVENTSREQUEST_IDFILTER']._serialized_end=3210 + _globals['_GETEVENTSREQUEST_CALLFILTER']._serialized_start=3213 + _globals['_GETEVENTSREQUEST_CALLFILTER']._serialized_end=3366 + _globals['_GETEVENTSREQUEST_MODULEFILTER']._serialized_start=3368 + _globals['_GETEVENTSREQUEST_MODULEFILTER']._serialized_end=3440 + _globals['_GETEVENTSREQUEST_FILTER']._serialized_start=3443 + _globals['_GETEVENTSREQUEST_FILTER']._serialized_end=4219 + _globals['_GETEVENTSREQUEST_ORDER']._serialized_start=4221 + _globals['_GETEVENTSREQUEST_ORDER']._serialized_end=4282 + _globals['_GETEVENTSRESPONSE']._serialized_start=4284 + _globals['_GETEVENTSRESPONSE']._serialized_end=4401 + _globals['_GETCONFIGREQUEST']._serialized_start=4403 + _globals['_GETCONFIGREQUEST']._serialized_end=4481 + _globals['_GETCONFIGRESPONSE']._serialized_start=4483 + _globals['_GETCONFIGRESPONSE']._serialized_end=4524 + _globals['_SETCONFIGREQUEST']._serialized_start=4526 + _globals['_SETCONFIGREQUEST']._serialized_end=4626 + _globals['_SETCONFIGRESPONSE']._serialized_start=4628 + _globals['_SETCONFIGRESPONSE']._serialized_end=4669 + _globals['_GETSECRETREQUEST']._serialized_start=4671 + _globals['_GETSECRETREQUEST']._serialized_end=4749 + _globals['_GETSECRETRESPONSE']._serialized_start=4751 + _globals['_GETSECRETRESPONSE']._serialized_end=4792 + _globals['_SETSECRETREQUEST']._serialized_start=4794 + _globals['_SETSECRETREQUEST']._serialized_end=4894 + _globals['_SETSECRETRESPONSE']._serialized_start=4896 + _globals['_SETSECRETRESPONSE']._serialized_end=4937 + _globals['_STREAMEVENTSREQUEST']._serialized_start=4940 + _globals['_STREAMEVENTSREQUEST']._serialized_end=5120 + _globals['_STREAMEVENTSRESPONSE']._serialized_start=5122 + _globals['_STREAMEVENTSRESPONSE']._serialized_end=5202 + _globals['_CONSOLESERVICE']._serialized_start=5205 + _globals['_CONSOLESERVICE']._serialized_end=6141 # @@protoc_insertion_point(module_scope) diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.pyi b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.pyi index 3833f0f6a1..bfdc28ce4c 100644 --- a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.pyi +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/console/v1/console_pb2.pyi @@ -1,6 +1,7 @@ from google.protobuf import duration_pb2 as _duration_pb2 from google.protobuf import timestamp_pb2 as _timestamp_pb2 from xyz.block.ftl.schema.v1 import schema_pb2 as _schema_pb2 +from xyz.block.ftl.timeline.v1 import event_pb2 as _event_pb2 from xyz.block.ftl.v1 import ftl_pb2 as _ftl_pb2 from google.protobuf.internal import containers as _containers from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper @@ -10,234 +11,6 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map DESCRIPTOR: _descriptor.FileDescriptor -class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - EVENT_TYPE_UNSPECIFIED: _ClassVar[EventType] - EVENT_TYPE_LOG: _ClassVar[EventType] - EVENT_TYPE_CALL: _ClassVar[EventType] - EVENT_TYPE_DEPLOYMENT_CREATED: _ClassVar[EventType] - EVENT_TYPE_DEPLOYMENT_UPDATED: _ClassVar[EventType] - EVENT_TYPE_INGRESS: _ClassVar[EventType] - EVENT_TYPE_CRON_SCHEDULED: _ClassVar[EventType] - EVENT_TYPE_ASYNC_EXECUTE: _ClassVar[EventType] - EVENT_TYPE_PUBSUB_PUBLISH: _ClassVar[EventType] - EVENT_TYPE_PUBSUB_CONSUME: _ClassVar[EventType] - -class AsyncExecuteEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED: _ClassVar[AsyncExecuteEventType] - ASYNC_EXECUTE_EVENT_TYPE_CRON: _ClassVar[AsyncExecuteEventType] - ASYNC_EXECUTE_EVENT_TYPE_PUBSUB: _ClassVar[AsyncExecuteEventType] - -class LogLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOG_LEVEL_UNSPECIFIED: _ClassVar[LogLevel] - LOG_LEVEL_TRACE: _ClassVar[LogLevel] - LOG_LEVEL_DEBUG: _ClassVar[LogLevel] - LOG_LEVEL_INFO: _ClassVar[LogLevel] - LOG_LEVEL_WARN: _ClassVar[LogLevel] - LOG_LEVEL_ERROR: _ClassVar[LogLevel] -EVENT_TYPE_UNSPECIFIED: EventType -EVENT_TYPE_LOG: EventType -EVENT_TYPE_CALL: EventType -EVENT_TYPE_DEPLOYMENT_CREATED: EventType -EVENT_TYPE_DEPLOYMENT_UPDATED: EventType -EVENT_TYPE_INGRESS: EventType -EVENT_TYPE_CRON_SCHEDULED: EventType -EVENT_TYPE_ASYNC_EXECUTE: EventType -EVENT_TYPE_PUBSUB_PUBLISH: EventType -EVENT_TYPE_PUBSUB_CONSUME: EventType -ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED: AsyncExecuteEventType -ASYNC_EXECUTE_EVENT_TYPE_CRON: AsyncExecuteEventType -ASYNC_EXECUTE_EVENT_TYPE_PUBSUB: AsyncExecuteEventType -LOG_LEVEL_UNSPECIFIED: LogLevel -LOG_LEVEL_TRACE: LogLevel -LOG_LEVEL_DEBUG: LogLevel -LOG_LEVEL_INFO: LogLevel -LOG_LEVEL_WARN: LogLevel -LOG_LEVEL_ERROR: LogLevel - -class LogEvent(_message.Message): - __slots__ = ("deployment_key", "request_key", "time_stamp", "log_level", "attributes", "message", "error", "stack") - class AttributesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - LOG_LEVEL_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - STACK_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - request_key: str - time_stamp: _timestamp_pb2.Timestamp - log_level: int - attributes: _containers.ScalarMap[str, str] - message: str - error: str - stack: str - def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., log_level: _Optional[int] = ..., attributes: _Optional[_Mapping[str, str]] = ..., message: _Optional[str] = ..., error: _Optional[str] = ..., stack: _Optional[str] = ...) -> None: ... - -class CallEvent(_message.Message): - __slots__ = ("request_key", "deployment_key", "time_stamp", "source_verb_ref", "destination_verb_ref", "duration", "request", "response", "error", "stack") - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - SOURCE_VERB_REF_FIELD_NUMBER: _ClassVar[int] - DESTINATION_VERB_REF_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - REQUEST_FIELD_NUMBER: _ClassVar[int] - RESPONSE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - STACK_FIELD_NUMBER: _ClassVar[int] - request_key: str - deployment_key: str - time_stamp: _timestamp_pb2.Timestamp - source_verb_ref: _schema_pb2.Ref - destination_verb_ref: _schema_pb2.Ref - duration: _duration_pb2.Duration - request: str - response: str - error: str - stack: str - def __init__(self, request_key: _Optional[str] = ..., deployment_key: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., source_verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., destination_verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., request: _Optional[str] = ..., response: _Optional[str] = ..., error: _Optional[str] = ..., stack: _Optional[str] = ...) -> None: ... - -class DeploymentCreatedEvent(_message.Message): - __slots__ = ("key", "language", "module_name", "min_replicas", "replaced") - KEY_FIELD_NUMBER: _ClassVar[int] - LANGUAGE_FIELD_NUMBER: _ClassVar[int] - MODULE_NAME_FIELD_NUMBER: _ClassVar[int] - MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] - REPLACED_FIELD_NUMBER: _ClassVar[int] - key: str - language: str - module_name: str - min_replicas: int - replaced: str - def __init__(self, key: _Optional[str] = ..., language: _Optional[str] = ..., module_name: _Optional[str] = ..., min_replicas: _Optional[int] = ..., replaced: _Optional[str] = ...) -> None: ... - -class DeploymentUpdatedEvent(_message.Message): - __slots__ = ("key", "min_replicas", "prev_min_replicas") - KEY_FIELD_NUMBER: _ClassVar[int] - MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] - PREV_MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] - key: str - min_replicas: int - prev_min_replicas: int - def __init__(self, key: _Optional[str] = ..., min_replicas: _Optional[int] = ..., prev_min_replicas: _Optional[int] = ...) -> None: ... - -class IngressEvent(_message.Message): - __slots__ = ("deployment_key", "request_key", "verb_ref", "method", "path", "status_code", "time_stamp", "duration", "request", "request_header", "response", "response_header", "error") - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - VERB_REF_FIELD_NUMBER: _ClassVar[int] - METHOD_FIELD_NUMBER: _ClassVar[int] - PATH_FIELD_NUMBER: _ClassVar[int] - STATUS_CODE_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - REQUEST_FIELD_NUMBER: _ClassVar[int] - REQUEST_HEADER_FIELD_NUMBER: _ClassVar[int] - RESPONSE_FIELD_NUMBER: _ClassVar[int] - RESPONSE_HEADER_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - request_key: str - verb_ref: _schema_pb2.Ref - method: str - path: str - status_code: int - time_stamp: _timestamp_pb2.Timestamp - duration: _duration_pb2.Duration - request: str - request_header: str - response: str - response_header: str - error: str - def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., method: _Optional[str] = ..., path: _Optional[str] = ..., status_code: _Optional[int] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., request: _Optional[str] = ..., request_header: _Optional[str] = ..., response: _Optional[str] = ..., response_header: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... - -class CronScheduledEvent(_message.Message): - __slots__ = ("deployment_key", "verb_ref", "time_stamp", "duration", "scheduled_at", "schedule", "error") - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - VERB_REF_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - SCHEDULED_AT_FIELD_NUMBER: _ClassVar[int] - SCHEDULE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - verb_ref: _schema_pb2.Ref - time_stamp: _timestamp_pb2.Timestamp - duration: _duration_pb2.Duration - scheduled_at: _timestamp_pb2.Timestamp - schedule: str - error: str - def __init__(self, deployment_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., schedule: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... - -class AsyncExecuteEvent(_message.Message): - __slots__ = ("deployment_key", "request_key", "verb_ref", "time_stamp", "duration", "async_event_type", "error") - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - VERB_REF_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - ASYNC_EVENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - request_key: str - verb_ref: _schema_pb2.Ref - time_stamp: _timestamp_pb2.Timestamp - duration: _duration_pb2.Duration - async_event_type: AsyncExecuteEventType - error: str - def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., async_event_type: _Optional[_Union[AsyncExecuteEventType, str]] = ..., error: _Optional[str] = ...) -> None: ... - -class PubSubPublishEvent(_message.Message): - __slots__ = ("deployment_key", "request_key", "verb_ref", "time_stamp", "duration", "topic", "request", "error") - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - VERB_REF_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - TOPIC_FIELD_NUMBER: _ClassVar[int] - REQUEST_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - request_key: str - verb_ref: _schema_pb2.Ref - time_stamp: _timestamp_pb2.Timestamp - duration: _duration_pb2.Duration - topic: str - request: str - error: str - def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., topic: _Optional[str] = ..., request: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... - -class PubSubConsumeEvent(_message.Message): - __slots__ = ("deployment_key", "request_key", "dest_verb_module", "dest_verb_name", "time_stamp", "duration", "topic", "error") - DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] - REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] - DEST_VERB_MODULE_FIELD_NUMBER: _ClassVar[int] - DEST_VERB_NAME_FIELD_NUMBER: _ClassVar[int] - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - TOPIC_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - deployment_key: str - request_key: str - dest_verb_module: str - dest_verb_name: str - time_stamp: _timestamp_pb2.Timestamp - duration: _duration_pb2.Duration - topic: str - error: str - def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., dest_verb_module: _Optional[str] = ..., dest_verb_name: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., topic: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... - class Config(_message.Message): __slots__ = ("config", "references") CONFIG_FIELD_NUMBER: _ClassVar[int] @@ -390,8 +163,8 @@ class GetEventsRequest(_message.Message): class LogLevelFilter(_message.Message): __slots__ = ("log_level",) LOG_LEVEL_FIELD_NUMBER: _ClassVar[int] - log_level: LogLevel - def __init__(self, log_level: _Optional[_Union[LogLevel, str]] = ...) -> None: ... + log_level: _event_pb2.LogLevel + def __init__(self, log_level: _Optional[_Union[_event_pb2.LogLevel, str]] = ...) -> None: ... class DeploymentFilter(_message.Message): __slots__ = ("deployments",) DEPLOYMENTS_FIELD_NUMBER: _ClassVar[int] @@ -405,8 +178,8 @@ class GetEventsRequest(_message.Message): class EventTypeFilter(_message.Message): __slots__ = ("event_types",) EVENT_TYPES_FIELD_NUMBER: _ClassVar[int] - event_types: _containers.RepeatedScalarFieldContainer[EventType] - def __init__(self, event_types: _Optional[_Iterable[_Union[EventType, str]]] = ...) -> None: ... + event_types: _containers.RepeatedScalarFieldContainer[_event_pb2.EventType] + def __init__(self, event_types: _Optional[_Iterable[_Union[_event_pb2.EventType, str]]] = ...) -> None: ... class TimeFilter(_message.Message): __slots__ = ("older_than", "newer_than") OLDER_THAN_FIELD_NUMBER: _ClassVar[int] @@ -470,9 +243,9 @@ class GetEventsResponse(_message.Message): __slots__ = ("events", "cursor") EVENTS_FIELD_NUMBER: _ClassVar[int] CURSOR_FIELD_NUMBER: _ClassVar[int] - events: _containers.RepeatedCompositeFieldContainer[Event] + events: _containers.RepeatedCompositeFieldContainer[_event_pb2.Event] cursor: int - def __init__(self, events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., cursor: _Optional[int] = ...) -> None: ... + def __init__(self, events: _Optional[_Iterable[_Union[_event_pb2.Event, _Mapping]]] = ..., cursor: _Optional[int] = ...) -> None: ... class GetConfigRequest(_message.Message): __slots__ = ("name", "module") @@ -545,31 +318,5 @@ class StreamEventsRequest(_message.Message): class StreamEventsResponse(_message.Message): __slots__ = ("events",) EVENTS_FIELD_NUMBER: _ClassVar[int] - events: _containers.RepeatedCompositeFieldContainer[Event] - def __init__(self, events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ...) -> None: ... - -class Event(_message.Message): - __slots__ = ("time_stamp", "id", "log", "call", "deployment_created", "deployment_updated", "ingress", "cron_scheduled", "async_execute", "pubsub_publish", "pubsub_consume") - TIME_STAMP_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - LOG_FIELD_NUMBER: _ClassVar[int] - CALL_FIELD_NUMBER: _ClassVar[int] - DEPLOYMENT_CREATED_FIELD_NUMBER: _ClassVar[int] - DEPLOYMENT_UPDATED_FIELD_NUMBER: _ClassVar[int] - INGRESS_FIELD_NUMBER: _ClassVar[int] - CRON_SCHEDULED_FIELD_NUMBER: _ClassVar[int] - ASYNC_EXECUTE_FIELD_NUMBER: _ClassVar[int] - PUBSUB_PUBLISH_FIELD_NUMBER: _ClassVar[int] - PUBSUB_CONSUME_FIELD_NUMBER: _ClassVar[int] - time_stamp: _timestamp_pb2.Timestamp - id: int - log: LogEvent - call: CallEvent - deployment_created: DeploymentCreatedEvent - deployment_updated: DeploymentUpdatedEvent - ingress: IngressEvent - cron_scheduled: CronScheduledEvent - async_execute: AsyncExecuteEvent - pubsub_publish: PubSubPublishEvent - pubsub_consume: PubSubConsumeEvent - def __init__(self, time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., id: _Optional[int] = ..., log: _Optional[_Union[LogEvent, _Mapping]] = ..., call: _Optional[_Union[CallEvent, _Mapping]] = ..., deployment_created: _Optional[_Union[DeploymentCreatedEvent, _Mapping]] = ..., deployment_updated: _Optional[_Union[DeploymentUpdatedEvent, _Mapping]] = ..., ingress: _Optional[_Union[IngressEvent, _Mapping]] = ..., cron_scheduled: _Optional[_Union[CronScheduledEvent, _Mapping]] = ..., async_execute: _Optional[_Union[AsyncExecuteEvent, _Mapping]] = ..., pubsub_publish: _Optional[_Union[PubSubPublishEvent, _Mapping]] = ..., pubsub_consume: _Optional[_Union[PubSubConsumeEvent, _Mapping]] = ...) -> None: ... + events: _containers.RepeatedCompositeFieldContainer[_event_pb2.Event] + def __init__(self, events: _Optional[_Iterable[_Union[_event_pb2.Event, _Mapping]]] = ...) -> None: ... diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.py b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.py new file mode 100644 index 0000000000..61fdf511f7 --- /dev/null +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: xyz/block/ftl/timeline/v1/event.proto +# Protobuf Python Version: 5.28.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 28, + 3, + '', + 'xyz/block/ftl/timeline/v1/event.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from xyz.block.ftl.schema.v1 import schema_pb2 as xyz_dot_block_dot_ftl_dot_schema_dot_v1_dot_schema__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%xyz/block/ftl/timeline/v1/event.proto\x12\x19xyz.block.ftl.timeline.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$xyz/block/ftl/schema/v1/schema.proto\"\xb7\x03\n\x08LogEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x1b\n\tlog_level\x18\x04 \x01(\x05R\x08logLevel\x12S\n\nattributes\x18\x05 \x03(\x0b\x32\x33.xyz.block.ftl.timeline.v1.LogEvent.AttributesEntryR\nattributes\x12\x18\n\x07message\x18\x06 \x01(\tR\x07message\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x12\x19\n\x05stack\x18\x08 \x01(\tH\x02R\x05stack\x88\x01\x01\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_errorB\x08\n\x06_stack\"\x95\x04\n\tCallEvent\x12$\n\x0brequest_key\x18\x01 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12%\n\x0e\x64\x65ployment_key\x18\x02 \x01(\tR\rdeploymentKey\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12I\n\x0fsource_verb_ref\x18\x0b \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefH\x01R\rsourceVerbRef\x88\x01\x01\x12N\n\x14\x64\x65stination_verb_ref\x18\x0c \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x12\x64\x65stinationVerbRef\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x18\n\x07request\x18\x07 \x01(\tR\x07request\x12\x1a\n\x08response\x18\x08 \x01(\tR\x08response\x12\x19\n\x05\x65rror\x18\t \x01(\tH\x02R\x05\x65rror\x88\x01\x01\x12\x19\n\x05stack\x18\n \x01(\tH\x03R\x05stack\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x12\n\x10_source_verb_refB\x08\n\x06_errorB\x08\n\x06_stackJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\xb8\x01\n\x16\x44\x65ploymentCreatedEvent\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x1a\n\x08language\x18\x02 \x01(\tR\x08language\x12\x1f\n\x0bmodule_name\x18\x03 \x01(\tR\nmoduleName\x12!\n\x0cmin_replicas\x18\x04 \x01(\x05R\x0bminReplicas\x12\x1f\n\x08replaced\x18\x05 \x01(\tH\x00R\x08replaced\x88\x01\x01\x42\x0b\n\t_replaced\"y\n\x16\x44\x65ploymentUpdatedEvent\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12!\n\x0cmin_replicas\x18\x02 \x01(\x05R\x0bminReplicas\x12*\n\x11prev_min_replicas\x18\x03 \x01(\x05R\x0fprevMinReplicas\"\x8e\x04\n\x0cIngressEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x16\n\x06method\x18\x04 \x01(\tR\x06method\x12\x12\n\x04path\x18\x05 \x01(\tR\x04path\x12\x1f\n\x0bstatus_code\x18\x07 \x01(\x05R\nstatusCode\x12\x39\n\ntime_stamp\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x18\n\x07request\x18\n \x01(\tR\x07request\x12%\n\x0erequest_header\x18\x0b \x01(\tR\rrequestHeader\x12\x1a\n\x08response\x18\x0c \x01(\tR\x08response\x12\'\n\x0fresponse_header\x18\r \x01(\tR\x0eresponseHeader\x12\x19\n\x05\x65rror\x18\x0e \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xe6\x02\n\x12\x43ronScheduledEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12\x37\n\x08verb_ref\x18\x02 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12=\n\x0cscheduled_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0bscheduledAt\x12\x1a\n\x08schedule\x18\x06 \x01(\tR\x08schedule\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\x9c\x03\n\x11\x41syncExecuteEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12Z\n\x10\x61sync_event_type\x18\x06 \x01(\x0e\x32\x30.xyz.block.ftl.timeline.v1.AsyncExecuteEventTypeR\x0e\x61syncEventType\x12\x19\n\x05\x65rror\x18\x07 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xf1\x02\n\x12PubSubPublishEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12\x37\n\x08verb_ref\x18\x03 \x01(\x0b\x32\x1c.xyz.block.ftl.schema.v1.RefR\x07verbRef\x12\x39\n\ntime_stamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x14\n\x05topic\x18\x06 \x01(\tR\x05topic\x12\x18\n\x07request\x18\x07 \x01(\tR\x07request\x12\x19\n\x05\x65rror\x18\x08 \x01(\tH\x01R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x08\n\x06_error\"\xa0\x03\n\x12PubSubConsumeEvent\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12$\n\x0brequest_key\x18\x02 \x01(\tH\x00R\nrequestKey\x88\x01\x01\x12-\n\x10\x64\x65st_verb_module\x18\x03 \x01(\tH\x01R\x0e\x64\x65stVerbModule\x88\x01\x01\x12)\n\x0e\x64\x65st_verb_name\x18\x04 \x01(\tH\x02R\x0c\x64\x65stVerbName\x88\x01\x01\x12\x39\n\ntime_stamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x14\n\x05topic\x18\x07 \x01(\tR\x05topic\x12\x19\n\x05\x65rror\x18\x08 \x01(\tH\x03R\x05\x65rror\x88\x01\x01\x42\x0e\n\x0c_request_keyB\x13\n\x11_dest_verb_moduleB\x11\n\x0f_dest_verb_nameB\x08\n\x06_error\"\xba\x06\n\x05\x45vent\x12\x39\n\ntime_stamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimeStamp\x12\x0e\n\x02id\x18\x02 \x01(\x03R\x02id\x12\x37\n\x03log\x18\x03 \x01(\x0b\x32#.xyz.block.ftl.timeline.v1.LogEventH\x00R\x03log\x12:\n\x04\x63\x61ll\x18\x04 \x01(\x0b\x32$.xyz.block.ftl.timeline.v1.CallEventH\x00R\x04\x63\x61ll\x12\x62\n\x12\x64\x65ployment_created\x18\x05 \x01(\x0b\x32\x31.xyz.block.ftl.timeline.v1.DeploymentCreatedEventH\x00R\x11\x64\x65ploymentCreated\x12\x62\n\x12\x64\x65ployment_updated\x18\x06 \x01(\x0b\x32\x31.xyz.block.ftl.timeline.v1.DeploymentUpdatedEventH\x00R\x11\x64\x65ploymentUpdated\x12\x43\n\x07ingress\x18\x07 \x01(\x0b\x32\'.xyz.block.ftl.timeline.v1.IngressEventH\x00R\x07ingress\x12V\n\x0e\x63ron_scheduled\x18\x08 \x01(\x0b\x32-.xyz.block.ftl.timeline.v1.CronScheduledEventH\x00R\rcronScheduled\x12S\n\rasync_execute\x18\t \x01(\x0b\x32,.xyz.block.ftl.timeline.v1.AsyncExecuteEventH\x00R\x0c\x61syncExecute\x12V\n\x0epubsub_publish\x18\n \x01(\x0b\x32-.xyz.block.ftl.timeline.v1.PubSubPublishEventH\x00R\rpubsubPublish\x12V\n\x0epubsub_consume\x18\x0b \x01(\x0b\x32-.xyz.block.ftl.timeline.v1.PubSubConsumeEventH\x00R\rpubsubConsumeB\x07\n\x05\x65ntry*\xa9\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45VENT_TYPE_LOG\x10\x01\x12\x13\n\x0f\x45VENT_TYPE_CALL\x10\x02\x12!\n\x1d\x45VENT_TYPE_DEPLOYMENT_CREATED\x10\x03\x12!\n\x1d\x45VENT_TYPE_DEPLOYMENT_UPDATED\x10\x04\x12\x16\n\x12\x45VENT_TYPE_INGRESS\x10\x05\x12\x1d\n\x19\x45VENT_TYPE_CRON_SCHEDULED\x10\x06\x12\x1c\n\x18\x45VENT_TYPE_ASYNC_EXECUTE\x10\x07\x12\x1d\n\x19\x45VENT_TYPE_PUBSUB_PUBLISH\x10\x08\x12\x1d\n\x19\x45VENT_TYPE_PUBSUB_CONSUME\x10\t*\x89\x01\n\x15\x41syncExecuteEventType\x12(\n$ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED\x10\x00\x12!\n\x1d\x41SYNC_EXECUTE_EVENT_TYPE_CRON\x10\x01\x12#\n\x1f\x41SYNC_EXECUTE_EVENT_TYPE_PUBSUB\x10\x02*\x8c\x01\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\x13\n\x0fLOG_LEVEL_TRACE\x10\x01\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x05\x12\x12\n\x0eLOG_LEVEL_INFO\x10\t\x12\x12\n\x0eLOG_LEVEL_WARN\x10\r\x12\x13\n\x0fLOG_LEVEL_ERROR\x10\x11\x42RP\x01ZNgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xyz.block.ftl.timeline.v1.event_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'P\001ZNgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1' + _globals['_LOGEVENT_ATTRIBUTESENTRY']._loaded_options = None + _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_EVENTTYPE']._serialized_start=4385 + _globals['_EVENTTYPE']._serialized_end=4682 + _globals['_ASYNCEXECUTEEVENTTYPE']._serialized_start=4685 + _globals['_ASYNCEXECUTEEVENTTYPE']._serialized_end=4822 + _globals['_LOGLEVEL']._serialized_start=4825 + _globals['_LOGLEVEL']._serialized_end=4965 + _globals['_LOGEVENT']._serialized_start=172 + _globals['_LOGEVENT']._serialized_end=611 + _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_start=514 + _globals['_LOGEVENT_ATTRIBUTESENTRY']._serialized_end=575 + _globals['_CALLEVENT']._serialized_start=614 + _globals['_CALLEVENT']._serialized_end=1147 + _globals['_DEPLOYMENTCREATEDEVENT']._serialized_start=1150 + _globals['_DEPLOYMENTCREATEDEVENT']._serialized_end=1334 + _globals['_DEPLOYMENTUPDATEDEVENT']._serialized_start=1336 + _globals['_DEPLOYMENTUPDATEDEVENT']._serialized_end=1457 + _globals['_INGRESSEVENT']._serialized_start=1460 + _globals['_INGRESSEVENT']._serialized_end=1986 + _globals['_CRONSCHEDULEDEVENT']._serialized_start=1989 + _globals['_CRONSCHEDULEDEVENT']._serialized_end=2347 + _globals['_ASYNCEXECUTEEVENT']._serialized_start=2350 + _globals['_ASYNCEXECUTEEVENT']._serialized_end=2762 + _globals['_PUBSUBPUBLISHEVENT']._serialized_start=2765 + _globals['_PUBSUBPUBLISHEVENT']._serialized_end=3134 + _globals['_PUBSUBCONSUMEEVENT']._serialized_start=3137 + _globals['_PUBSUBCONSUMEEVENT']._serialized_end=3553 + _globals['_EVENT']._serialized_start=3556 + _globals['_EVENT']._serialized_end=4382 +# @@protoc_insertion_point(module_scope) diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.pyi b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.pyi new file mode 100644 index 0000000000..b87ae577f4 --- /dev/null +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/event_pb2.pyi @@ -0,0 +1,264 @@ +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from xyz.block.ftl.schema.v1 import schema_pb2 as _schema_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + EVENT_TYPE_UNSPECIFIED: _ClassVar[EventType] + EVENT_TYPE_LOG: _ClassVar[EventType] + EVENT_TYPE_CALL: _ClassVar[EventType] + EVENT_TYPE_DEPLOYMENT_CREATED: _ClassVar[EventType] + EVENT_TYPE_DEPLOYMENT_UPDATED: _ClassVar[EventType] + EVENT_TYPE_INGRESS: _ClassVar[EventType] + EVENT_TYPE_CRON_SCHEDULED: _ClassVar[EventType] + EVENT_TYPE_ASYNC_EXECUTE: _ClassVar[EventType] + EVENT_TYPE_PUBSUB_PUBLISH: _ClassVar[EventType] + EVENT_TYPE_PUBSUB_CONSUME: _ClassVar[EventType] + +class AsyncExecuteEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED: _ClassVar[AsyncExecuteEventType] + ASYNC_EXECUTE_EVENT_TYPE_CRON: _ClassVar[AsyncExecuteEventType] + ASYNC_EXECUTE_EVENT_TYPE_PUBSUB: _ClassVar[AsyncExecuteEventType] + +class LogLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOG_LEVEL_UNSPECIFIED: _ClassVar[LogLevel] + LOG_LEVEL_TRACE: _ClassVar[LogLevel] + LOG_LEVEL_DEBUG: _ClassVar[LogLevel] + LOG_LEVEL_INFO: _ClassVar[LogLevel] + LOG_LEVEL_WARN: _ClassVar[LogLevel] + LOG_LEVEL_ERROR: _ClassVar[LogLevel] +EVENT_TYPE_UNSPECIFIED: EventType +EVENT_TYPE_LOG: EventType +EVENT_TYPE_CALL: EventType +EVENT_TYPE_DEPLOYMENT_CREATED: EventType +EVENT_TYPE_DEPLOYMENT_UPDATED: EventType +EVENT_TYPE_INGRESS: EventType +EVENT_TYPE_CRON_SCHEDULED: EventType +EVENT_TYPE_ASYNC_EXECUTE: EventType +EVENT_TYPE_PUBSUB_PUBLISH: EventType +EVENT_TYPE_PUBSUB_CONSUME: EventType +ASYNC_EXECUTE_EVENT_TYPE_UNSPECIFIED: AsyncExecuteEventType +ASYNC_EXECUTE_EVENT_TYPE_CRON: AsyncExecuteEventType +ASYNC_EXECUTE_EVENT_TYPE_PUBSUB: AsyncExecuteEventType +LOG_LEVEL_UNSPECIFIED: LogLevel +LOG_LEVEL_TRACE: LogLevel +LOG_LEVEL_DEBUG: LogLevel +LOG_LEVEL_INFO: LogLevel +LOG_LEVEL_WARN: LogLevel +LOG_LEVEL_ERROR: LogLevel + +class LogEvent(_message.Message): + __slots__ = ("deployment_key", "request_key", "time_stamp", "log_level", "attributes", "message", "error", "stack") + class AttributesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + LOG_LEVEL_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + STACK_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + request_key: str + time_stamp: _timestamp_pb2.Timestamp + log_level: int + attributes: _containers.ScalarMap[str, str] + message: str + error: str + stack: str + def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., log_level: _Optional[int] = ..., attributes: _Optional[_Mapping[str, str]] = ..., message: _Optional[str] = ..., error: _Optional[str] = ..., stack: _Optional[str] = ...) -> None: ... + +class CallEvent(_message.Message): + __slots__ = ("request_key", "deployment_key", "time_stamp", "source_verb_ref", "destination_verb_ref", "duration", "request", "response", "error", "stack") + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + SOURCE_VERB_REF_FIELD_NUMBER: _ClassVar[int] + DESTINATION_VERB_REF_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + REQUEST_FIELD_NUMBER: _ClassVar[int] + RESPONSE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + STACK_FIELD_NUMBER: _ClassVar[int] + request_key: str + deployment_key: str + time_stamp: _timestamp_pb2.Timestamp + source_verb_ref: _schema_pb2.Ref + destination_verb_ref: _schema_pb2.Ref + duration: _duration_pb2.Duration + request: str + response: str + error: str + stack: str + def __init__(self, request_key: _Optional[str] = ..., deployment_key: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., source_verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., destination_verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., request: _Optional[str] = ..., response: _Optional[str] = ..., error: _Optional[str] = ..., stack: _Optional[str] = ...) -> None: ... + +class DeploymentCreatedEvent(_message.Message): + __slots__ = ("key", "language", "module_name", "min_replicas", "replaced") + KEY_FIELD_NUMBER: _ClassVar[int] + LANGUAGE_FIELD_NUMBER: _ClassVar[int] + MODULE_NAME_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + REPLACED_FIELD_NUMBER: _ClassVar[int] + key: str + language: str + module_name: str + min_replicas: int + replaced: str + def __init__(self, key: _Optional[str] = ..., language: _Optional[str] = ..., module_name: _Optional[str] = ..., min_replicas: _Optional[int] = ..., replaced: _Optional[str] = ...) -> None: ... + +class DeploymentUpdatedEvent(_message.Message): + __slots__ = ("key", "min_replicas", "prev_min_replicas") + KEY_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + PREV_MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + key: str + min_replicas: int + prev_min_replicas: int + def __init__(self, key: _Optional[str] = ..., min_replicas: _Optional[int] = ..., prev_min_replicas: _Optional[int] = ...) -> None: ... + +class IngressEvent(_message.Message): + __slots__ = ("deployment_key", "request_key", "verb_ref", "method", "path", "status_code", "time_stamp", "duration", "request", "request_header", "response", "response_header", "error") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + VERB_REF_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + STATUS_CODE_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + REQUEST_FIELD_NUMBER: _ClassVar[int] + REQUEST_HEADER_FIELD_NUMBER: _ClassVar[int] + RESPONSE_FIELD_NUMBER: _ClassVar[int] + RESPONSE_HEADER_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + request_key: str + verb_ref: _schema_pb2.Ref + method: str + path: str + status_code: int + time_stamp: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + request: str + request_header: str + response: str + response_header: str + error: str + def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., method: _Optional[str] = ..., path: _Optional[str] = ..., status_code: _Optional[int] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., request: _Optional[str] = ..., request_header: _Optional[str] = ..., response: _Optional[str] = ..., response_header: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... + +class CronScheduledEvent(_message.Message): + __slots__ = ("deployment_key", "verb_ref", "time_stamp", "duration", "scheduled_at", "schedule", "error") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + VERB_REF_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + SCHEDULED_AT_FIELD_NUMBER: _ClassVar[int] + SCHEDULE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + verb_ref: _schema_pb2.Ref + time_stamp: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + scheduled_at: _timestamp_pb2.Timestamp + schedule: str + error: str + def __init__(self, deployment_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., scheduled_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., schedule: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... + +class AsyncExecuteEvent(_message.Message): + __slots__ = ("deployment_key", "request_key", "verb_ref", "time_stamp", "duration", "async_event_type", "error") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + VERB_REF_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + ASYNC_EVENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + request_key: str + verb_ref: _schema_pb2.Ref + time_stamp: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + async_event_type: AsyncExecuteEventType + error: str + def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., async_event_type: _Optional[_Union[AsyncExecuteEventType, str]] = ..., error: _Optional[str] = ...) -> None: ... + +class PubSubPublishEvent(_message.Message): + __slots__ = ("deployment_key", "request_key", "verb_ref", "time_stamp", "duration", "topic", "request", "error") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + VERB_REF_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + TOPIC_FIELD_NUMBER: _ClassVar[int] + REQUEST_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + request_key: str + verb_ref: _schema_pb2.Ref + time_stamp: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + topic: str + request: str + error: str + def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., verb_ref: _Optional[_Union[_schema_pb2.Ref, _Mapping]] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., topic: _Optional[str] = ..., request: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... + +class PubSubConsumeEvent(_message.Message): + __slots__ = ("deployment_key", "request_key", "dest_verb_module", "dest_verb_name", "time_stamp", "duration", "topic", "error") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + REQUEST_KEY_FIELD_NUMBER: _ClassVar[int] + DEST_VERB_MODULE_FIELD_NUMBER: _ClassVar[int] + DEST_VERB_NAME_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + TOPIC_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + request_key: str + dest_verb_module: str + dest_verb_name: str + time_stamp: _timestamp_pb2.Timestamp + duration: _duration_pb2.Duration + topic: str + error: str + def __init__(self, deployment_key: _Optional[str] = ..., request_key: _Optional[str] = ..., dest_verb_module: _Optional[str] = ..., dest_verb_name: _Optional[str] = ..., time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., topic: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ... + +class Event(_message.Message): + __slots__ = ("time_stamp", "id", "log", "call", "deployment_created", "deployment_updated", "ingress", "cron_scheduled", "async_execute", "pubsub_publish", "pubsub_consume") + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + LOG_FIELD_NUMBER: _ClassVar[int] + CALL_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_CREATED_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_UPDATED_FIELD_NUMBER: _ClassVar[int] + INGRESS_FIELD_NUMBER: _ClassVar[int] + CRON_SCHEDULED_FIELD_NUMBER: _ClassVar[int] + ASYNC_EXECUTE_FIELD_NUMBER: _ClassVar[int] + PUBSUB_PUBLISH_FIELD_NUMBER: _ClassVar[int] + PUBSUB_CONSUME_FIELD_NUMBER: _ClassVar[int] + time_stamp: _timestamp_pb2.Timestamp + id: int + log: LogEvent + call: CallEvent + deployment_created: DeploymentCreatedEvent + deployment_updated: DeploymentUpdatedEvent + ingress: IngressEvent + cron_scheduled: CronScheduledEvent + async_execute: AsyncExecuteEvent + pubsub_publish: PubSubPublishEvent + pubsub_consume: PubSubConsumeEvent + def __init__(self, time_stamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., id: _Optional[int] = ..., log: _Optional[_Union[LogEvent, _Mapping]] = ..., call: _Optional[_Union[CallEvent, _Mapping]] = ..., deployment_created: _Optional[_Union[DeploymentCreatedEvent, _Mapping]] = ..., deployment_updated: _Optional[_Union[DeploymentUpdatedEvent, _Mapping]] = ..., ingress: _Optional[_Union[IngressEvent, _Mapping]] = ..., cron_scheduled: _Optional[_Union[CronScheduledEvent, _Mapping]] = ..., async_execute: _Optional[_Union[AsyncExecuteEvent, _Mapping]] = ..., pubsub_publish: _Optional[_Union[PubSubPublishEvent, _Mapping]] = ..., pubsub_consume: _Optional[_Union[PubSubConsumeEvent, _Mapping]] = ...) -> None: ... diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.py b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.py new file mode 100644 index 0000000000..d9234d2d8d --- /dev/null +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: xyz/block/ftl/timeline/v1/timeline.proto +# Protobuf Python Version: 5.28.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 28, + 3, + '', + 'xyz/block/ftl/timeline/v1/timeline.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from xyz.block.ftl.timeline.v1 import event_pb2 as xyz_dot_block_dot_ftl_dot_timeline_dot_v1_dot_event__pb2 +from xyz.block.ftl.v1 import ftl_pb2 as xyz_dot_block_dot_ftl_dot_v1_dot_ftl__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(xyz/block/ftl/timeline/v1/timeline.proto\x12\x19xyz.block.ftl.timeline.v1\x1a%xyz/block/ftl/timeline/v1/event.proto\x1a\x1axyz/block/ftl/v1/ftl.proto\"\xd4\x01\n\x12GetTimelineRequest\x12%\n\x0e\x64\x65ployment_key\x18\x01 \x01(\tR\rdeploymentKey\x12\x1e\n\x08since_id\x18\x02 \x01(\x03H\x00R\x07sinceId\x88\x01\x01\x12\x19\n\x05limit\x18\x03 \x01(\x05H\x01R\x05limit\x88\x01\x01\x12\x45\n\x0b\x65vent_types\x18\x04 \x03(\x0e\x32$.xyz.block.ftl.timeline.v1.EventTypeR\neventTypesB\x0b\n\t_since_idB\x08\n\x06_limit\"O\n\x13GetTimelineResponse\x12\x38\n\x06\x65vents\x18\x01 \x03(\x0b\x32 .xyz.block.ftl.timeline.v1.EventR\x06\x65vents\"~\n\x16\x44\x65leteOldEventsRequest\x12\x43\n\nevent_type\x18\x01 \x01(\x0e\x32$.xyz.block.ftl.timeline.v1.EventTypeR\teventType\x12\x1f\n\x0b\x61ge_seconds\x18\x02 \x01(\x03R\nageSeconds\">\n\x17\x44\x65leteOldEventsResponse\x12#\n\rdeleted_count\x18\x01 \x01(\x03R\x0c\x64\x65letedCount2\xcc\x02\n\x0fTimelineService\x12J\n\x04Ping\x12\x1d.xyz.block.ftl.v1.PingRequest\x1a\x1e.xyz.block.ftl.v1.PingResponse\"\x03\x90\x02\x01\x12q\n\x0bGetTimeline\x12-.xyz.block.ftl.timeline.v1.GetTimelineRequest\x1a..xyz.block.ftl.timeline.v1.GetTimelineResponse\"\x03\x90\x02\x01\x12z\n\x0f\x44\x65leteOldEvents\x12\x31.xyz.block.ftl.timeline.v1.DeleteOldEventsRequest\x1a\x32.xyz.block.ftl.timeline.v1.DeleteOldEventsResponse\"\x00\x42RP\x01ZNgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'xyz.block.ftl.timeline.v1.timeline_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'P\001ZNgithub.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/timeline/v1;timelinev1' + _globals['_TIMELINESERVICE'].methods_by_name['Ping']._loaded_options = None + _globals['_TIMELINESERVICE'].methods_by_name['Ping']._serialized_options = b'\220\002\001' + _globals['_TIMELINESERVICE'].methods_by_name['GetTimeline']._loaded_options = None + _globals['_TIMELINESERVICE'].methods_by_name['GetTimeline']._serialized_options = b'\220\002\001' + _globals['_GETTIMELINEREQUEST']._serialized_start=139 + _globals['_GETTIMELINEREQUEST']._serialized_end=351 + _globals['_GETTIMELINERESPONSE']._serialized_start=353 + _globals['_GETTIMELINERESPONSE']._serialized_end=432 + _globals['_DELETEOLDEVENTSREQUEST']._serialized_start=434 + _globals['_DELETEOLDEVENTSREQUEST']._serialized_end=560 + _globals['_DELETEOLDEVENTSRESPONSE']._serialized_start=562 + _globals['_DELETEOLDEVENTSRESPONSE']._serialized_end=624 + _globals['_TIMELINESERVICE']._serialized_start=627 + _globals['_TIMELINESERVICE']._serialized_end=959 +# @@protoc_insertion_point(module_scope) diff --git a/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.pyi b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.pyi new file mode 100644 index 0000000000..053f6774a4 --- /dev/null +++ b/python-runtime/ftl/src/ftl/protos/xyz/block/ftl/timeline/v1/timeline_pb2.pyi @@ -0,0 +1,40 @@ +from xyz.block.ftl.timeline.v1 import event_pb2 as _event_pb2 +from xyz.block.ftl.v1 import ftl_pb2 as _ftl_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetTimelineRequest(_message.Message): + __slots__ = ("deployment_key", "since_id", "limit", "event_types") + DEPLOYMENT_KEY_FIELD_NUMBER: _ClassVar[int] + SINCE_ID_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + EVENT_TYPES_FIELD_NUMBER: _ClassVar[int] + deployment_key: str + since_id: int + limit: int + event_types: _containers.RepeatedScalarFieldContainer[_event_pb2.EventType] + def __init__(self, deployment_key: _Optional[str] = ..., since_id: _Optional[int] = ..., limit: _Optional[int] = ..., event_types: _Optional[_Iterable[_Union[_event_pb2.EventType, str]]] = ...) -> None: ... + +class GetTimelineResponse(_message.Message): + __slots__ = ("events",) + EVENTS_FIELD_NUMBER: _ClassVar[int] + events: _containers.RepeatedCompositeFieldContainer[_event_pb2.Event] + def __init__(self, events: _Optional[_Iterable[_Union[_event_pb2.Event, _Mapping]]] = ...) -> None: ... + +class DeleteOldEventsRequest(_message.Message): + __slots__ = ("event_type", "age_seconds") + EVENT_TYPE_FIELD_NUMBER: _ClassVar[int] + AGE_SECONDS_FIELD_NUMBER: _ClassVar[int] + event_type: _event_pb2.EventType + age_seconds: int + def __init__(self, event_type: _Optional[_Union[_event_pb2.EventType, str]] = ..., age_seconds: _Optional[int] = ...) -> None: ... + +class DeleteOldEventsResponse(_message.Message): + __slots__ = ("deleted_count",) + DELETED_COUNT_FIELD_NUMBER: _ClassVar[int] + deleted_count: int + def __init__(self, deleted_count: _Optional[int] = ...) -> None: ...