From 975fdc5e60c72a5593e9a061b2a057f32505865c Mon Sep 17 00:00:00 2001 From: Eduwer Camacaro Date: Mon, 17 Feb 2025 14:14:24 -0500 Subject: [PATCH] list metric run --- lhctl/internal/metrics.go | 27 + local-dev/configs/server-1.config | 2 +- schemas/internal/command.proto | 10 +- schemas/littlehorse/service.proto | 11 + sdk-go/lhproto/service.pb.go | 1622 +++++++++-------- sdk-go/lhproto/service_grpc.pb.go | 37 + .../common/proto/ListMetricRunRequest.java | 586 ++++++ .../proto/ListMetricRunRequestOrBuilder.java | 24 + .../sdk/common/proto/LittleHorseGrpc.java | 76 +- .../sdk/common/proto/MetricRunList.java | 759 ++++++++ .../common/proto/MetricRunListOrBuilder.java | 33 + .../littlehorse/sdk/common/proto/Service.java | 351 ++-- sdk-js/src/proto/service.ts | 119 +- sdk-python/littlehorse/model/service_pb2.py | 14 +- sdk-python/littlehorse/model/service_pb2.pyi | 12 + .../littlehorse/model/service_pb2_grpc.py | 43 + .../common/model/AggregateMetricsModel.java | 18 +- .../model/RepartitionWindowedMetricModel.java | 11 +- .../global/metrics/PartitionMetricModel.java | 3 +- .../model/getable/objectId/MetricIdModel.java | 6 + .../getable/objectId/MetricRunIdModel.java | 5 +- .../common/proto/AggregateMetrics.java | 305 +++- .../proto/AggregateMetricsOrBuilder.java | 31 +- .../common/proto/CommandOuterClass.java | 186 +- .../proto/RepartitionWindowedMetric.java | 257 +-- .../RepartitionWindowedMetricOrBuilder.java | 23 +- .../littlehorse/server/LHServerListener.java | 11 + .../ObjectIdScanBoundaryStrategy.java | 8 +- .../ListMetricRunRequestModel.java | 66 + .../ListMetricRunReply.java | 23 + .../streams/topology/core/MetricsUpdater.java | 5 +- .../core/processors/CommandProcessor.java | 4 +- .../metrics/PartitionMetricModelTest.java | 2 - 33 files changed, 3347 insertions(+), 1343 deletions(-) create mode 100644 sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequest.java create mode 100644 sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequestOrBuilder.java create mode 100644 sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunList.java create mode 100644 sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunListOrBuilder.java create mode 100644 server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicrequests/ListMetricRunRequestModel.java create mode 100644 server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicsearchreplies/ListMetricRunReply.java diff --git a/lhctl/internal/metrics.go b/lhctl/internal/metrics.go index 85d3619c8..afbb40cf4 100644 --- a/lhctl/internal/metrics.go +++ b/lhctl/internal/metrics.go @@ -44,6 +44,33 @@ func toType(metricType string) lhproto.MetricType { panic("Unrecognized metric type " + metricType) } } + +var listMetricRuns = &cobra.Command{ + Use: "metricRun ", + Short: "List all MetricRun's for a given Metric Id.", + Long: ``, + Args: cobra.ExactArgs(2), + Run: func(cmd *cobra.Command, args []string) { + measurable := args[0] + metricType := args[1] + + metricId := &lhproto.MetricId{ + Measurable: toMeasurable(measurable), + Type: toType(metricType), + } + + req := &lhproto.ListMetricRunRequest{ + MetricId: metricId, + } + + littlehorse.PrintResp(getGlobalClient(cmd).ListMetricRuns( + requestContext(cmd), + req, + )) + }, +} + func init() { putCmd.AddCommand(putMetricCmd) + listCmd.AddCommand(listMetricRuns) } diff --git a/local-dev/configs/server-1.config b/local-dev/configs/server-1.config index f75106066..22ab01f28 100644 --- a/local-dev/configs/server-1.config +++ b/local-dev/configs/server-1.config @@ -2,7 +2,7 @@ LHS_KAFKA_BOOTSTRAP_SERVERS=localhost:9092 LHS_CLUSTER_ID=my-cluster LHS_INSTANCE_ID=1 LHS_REPLICATION_FACTOR=1 -LHS_CLUSTER_PARTITIONS=1 +LHS_CLUSTER_PARTITIONS=21 LHS_STATE_DIR=/tmp/kafkaState LHS_STREAMS_NUM_WARMUP_REPLICAS=8 LHS_STREAMS_NUM_STANDBY_REPLICAS=0 diff --git a/schemas/internal/command.proto b/schemas/internal/command.proto index 3099dd448..7e86dcfb2 100644 --- a/schemas/internal/command.proto +++ b/schemas/internal/command.proto @@ -113,8 +113,9 @@ message AggregateTaskMetrics { } message AggregateMetrics { - repeated RepartitionWindowedMetric windowed_metrics = 1; - TenantId tenant_id = 2; + MetricId metric_id = 1; + repeated RepartitionWindowedMetric windowed_metrics = 2; + TenantId tenant_id = 3; } message WfMetricUpdate { @@ -259,7 +260,6 @@ message DeleteTaskWorkerGroupRequest { } message RepartitionWindowedMetric { - MetricId metric_id = 1; - double value = 2; - google.protobuf.Timestamp window_start = 3; + double value = 1; + google.protobuf.Timestamp window_start = 2; } diff --git a/schemas/littlehorse/service.proto b/schemas/littlehorse/service.proto index d42323b60..0f8c96ce7 100644 --- a/schemas/littlehorse/service.proto +++ b/schemas/littlehorse/service.proto @@ -296,6 +296,8 @@ service LittleHorse { // Gets the version of the LH Server. rpc GetServerVersion(google.protobuf.Empty) returns (ServerVersion) {} + + rpc ListMetricRuns(ListMetricRunRequest) returns (MetricRunList) {} } // Returns the UserTaskDef with a given name and the highest version number. @@ -1450,3 +1452,12 @@ message ServerVersion { // but rather a release candidate or experimental pre-release. optional string pre_release_identifier = 4; } + + +message MetricRunList { + repeated MetricRun results = 1; +} + +message ListMetricRunRequest { + MetricId metric_id = 1; +} \ No newline at end of file diff --git a/sdk-go/lhproto/service.pb.go b/sdk-go/lhproto/service.pb.go index 9ad9e55e5..957cb8b13 100644 --- a/sdk-go/lhproto/service.pb.go +++ b/sdk-go/lhproto/service.pb.go @@ -6138,6 +6138,100 @@ func (x *ServerVersion) GetPreReleaseIdentifier() string { return "" } +type MetricRunList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Results []*MetricRun `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` +} + +func (x *MetricRunList) Reset() { + *x = MetricRunList{} + if protoimpl.UnsafeEnabled { + mi := &file_service_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MetricRunList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetricRunList) ProtoMessage() {} + +func (x *MetricRunList) ProtoReflect() protoreflect.Message { + mi := &file_service_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetricRunList.ProtoReflect.Descriptor instead. +func (*MetricRunList) Descriptor() ([]byte, []int) { + return file_service_proto_rawDescGZIP(), []int{86} +} + +func (x *MetricRunList) GetResults() []*MetricRun { + if x != nil { + return x.Results + } + return nil +} + +type ListMetricRunRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MetricId *MetricId `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"` +} + +func (x *ListMetricRunRequest) Reset() { + *x = ListMetricRunRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListMetricRunRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMetricRunRequest) ProtoMessage() {} + +func (x *ListMetricRunRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListMetricRunRequest.ProtoReflect.Descriptor instead. +func (*ListMetricRunRequest) Descriptor() ([]byte, []int) { + return file_service_proto_rawDescGZIP(), []int{87} +} + +func (x *ListMetricRunRequest) GetMetricId() *MetricId { + if x != nil { + return x.MetricId + } + return nil +} + var File_service_proto protoreflect.FileDescriptor var file_service_proto_rawDesc = []byte{ @@ -7169,409 +7263,423 @@ var file_service_proto_rawDesc = []byte{ 0x52, 0x14, 0x70, 0x72, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x2a, 0x50, 0x0a, 0x11, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4c, 0x4c, - 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x49, - 0x4e, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x53, 0x10, 0x02, 0x32, 0xf1, 0x30, 0x0a, 0x0b, 0x4c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x44, 0x65, 0x66, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, 0x16, 0x2e, 0x6c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, - 0x49, 0x64, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, - 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, - 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x49, - 0x64, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x66, 0x69, 0x65, 0x72, 0x22, 0x41, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x07, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x4a, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x49, 0x64, 0x2a, 0x50, 0x0a, 0x11, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4c, 0x4c, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x49, 0x4e, + 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x53, 0x10, 0x02, 0x32, 0xc4, 0x31, 0x0a, 0x0b, 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x48, 0x6f, 0x72, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x44, 0x65, 0x66, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x50, 0x75, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, + 0x64, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x27, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, - 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, - 0x66, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, - 0x75, 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, - 0x53, 0x70, 0x65, 0x63, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x50, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x15, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x1a, 0x13, 0x2e, - 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, - 0x65, 0x63, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, - 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, + 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x49, 0x64, + 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x22, + 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x50, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, + 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, + 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, + 0x70, 0x65, 0x63, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x50, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x57, + 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x15, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, - 0x63, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x57, 0x66, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x22, 0x00, 0x12, 0x50, - 0x0a, 0x0e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, - 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, - 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, - 0x65, 0x66, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x1a, 0x18, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, - 0x65, 0x66, 0x12, 0x28, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, - 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x05, 0x52, 0x75, 0x6e, 0x57, - 0x66, 0x12, 0x19, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, - 0x52, 0x75, 0x6e, 0x57, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, - 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x57, 0x66, - 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x57, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, - 0x65, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x28, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1d, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x12, 0x2e, 0x6c, 0x69, + 0x63, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x66, + 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, + 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x57, 0x66, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x22, 0x00, 0x12, 0x50, 0x0a, + 0x0e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, + 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, + 0x66, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x1a, 0x18, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, + 0x66, 0x12, 0x28, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, + 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, + 0x73, 0x6b, 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x05, 0x52, 0x75, 0x6e, 0x57, 0x66, + 0x12, 0x19, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, + 0x75, 0x6e, 0x57, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, - 0x00, 0x12, 0x48, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x75, 0x6e, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, - 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, - 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, + 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x57, 0x66, 0x12, + 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x57, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x65, + 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x28, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x57, + 0x66, 0x52, 0x75, 0x6e, 0x12, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x12, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x75, 0x6e, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x18, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, + 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x58, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, + 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x17, 0x53, 0x61, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x75, 0x6e, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x16, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, + 0x6e, 0x49, 0x64, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x1a, + 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x15, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, + 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, + 0x5a, 0x0a, 0x12, 0x41, 0x77, 0x61, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x66, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, + 0x66, 0x49, 0x64, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x66, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, + 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, + 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, + 0x6e, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, + 0x52, 0x75, 0x6e, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x27, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, + 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, + 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, + 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, + 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6b, + 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, + 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, + 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, + 0x67, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x6c, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, + 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, 0x53, + 0x74, 0x6f, 0x70, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x58, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x57, 0x66, 0x52, 0x75, 0x6e, + 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6d, 0x65, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, - 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x63, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x12, 0x23, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, + 0x63, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, + 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x44, 0x65, 0x66, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, + 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x62, 0x0a, 0x17, 0x53, 0x61, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3c, - 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x12, 0x16, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x75, 0x6e, 0x49, 0x64, 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, - 0x1a, 0x14, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x15, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, - 0x12, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, - 0x12, 0x5a, 0x0a, 0x12, 0x41, 0x77, 0x61, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x41, 0x77, 0x61, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x44, 0x65, 0x66, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x66, 0x49, 0x64, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x44, 0x65, 0x66, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, - 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, - 0x75, 0x6e, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, - 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, - 0x66, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, - 0x6b, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x44, 0x65, 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x66, - 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, - 0x66, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x23, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, - 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, - 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x08, 0x50, 0x6f, 0x6c, - 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x75, 0x6e, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, - 0x53, 0x74, 0x6f, 0x70, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x66, 0x52, 0x75, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x57, 0x66, 0x52, 0x75, - 0x6e, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, - 0x52, 0x65, 0x73, 0x63, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x12, - 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x63, 0x75, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x1f, 0x2e, 0x6c, 0x69, 0x74, 0x74, - 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, - 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x44, 0x65, 0x66, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, - 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, - 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, - 0x44, 0x65, 0x66, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, - 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x44, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, - 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6e, - 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x28, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x61, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x27, 0x2e, - 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x44, 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x66, 0x53, 0x70, - 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, - 0x26, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, - 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, - 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x44, 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, - 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, - 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, - 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, - 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x57, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x57, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x54, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, - 0x65, 0x2e, 0x50, 0x75, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, - 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x15, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x13, 0x2e, - 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x50, 0x75, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, - 0x73, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x00, - 0x12, 0x42, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, - 0x12, 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, - 0x61, 0x6c, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x06, 0x57, 0x68, 0x6f, 0x61, 0x6d, 0x69, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, - 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x00, - 0x12, 0x48, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6c, - 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x42, 0x4d, 0x0a, 0x1f, 0x69, 0x6f, - 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x73, 0x64, 0x6b, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x09, 0x2e, 0x3b, 0x6c, 0x68, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x1c, 0x4c, 0x69, 0x74, - 0x74, 0x6c, 0x65, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x64, 0x6b, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x54, 0x0a, + 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, + 0x65, 0x66, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, + 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x12, 0x2a, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, + 0x69, 0x70, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, 0x12, 0x28, 0x2e, + 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x57, 0x66, 0x52, 0x75, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x00, 0x12, 0x61, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x27, 0x2e, 0x6c, + 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, + 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x66, 0x53, 0x70, 0x65, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x26, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, + 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, + 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x57, 0x66, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, + 0x44, 0x65, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x74, + 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x57, + 0x66, 0x53, 0x70, 0x65, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x6c, + 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, + 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x57, 0x66, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x54, 0x65, 0x6e, 0x61, + 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x2e, 0x50, 0x75, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, + 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x54, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x15, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x1a, 0x13, 0x2e, 0x6c, + 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x50, 0x75, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, + 0x65, 0x2e, 0x50, 0x75, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x00, 0x12, + 0x42, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, + 0x18, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, + 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, + 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, + 0x6c, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x06, 0x57, 0x68, 0x6f, 0x61, 0x6d, 0x69, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, + 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x75, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x42, 0x4d, 0x0a, 0x1f, + 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x73, + 0x64, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x09, 0x2e, 0x3b, 0x6c, 0x68, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x1c, 0x4c, + 0x69, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x6f, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x64, 0x6b, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -7587,7 +7695,7 @@ func file_service_proto_rawDescGZIP() []byte { } var file_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_service_proto_msgTypes = make([]protoimpl.MessageInfo, 90) +var file_service_proto_msgTypes = make([]protoimpl.MessageInfo, 92) var file_service_proto_goTypes = []interface{}{ (AllowedUpdateType)(0), // 0: littlehorse.AllowedUpdateType (SearchNodeRunRequest_NodeType)(0), // 1: littlehorse.SearchNodeRunRequest.NodeType @@ -7677,360 +7785,368 @@ var file_service_proto_goTypes = []interface{}{ (*MigrateWfSpecRequest)(nil), // 85: littlehorse.MigrateWfSpecRequest (*GetLatestWfSpecRequest)(nil), // 86: littlehorse.GetLatestWfSpecRequest (*ServerVersion)(nil), // 87: littlehorse.ServerVersion - nil, // 88: littlehorse.PutWfSpecRequest.ThreadSpecsEntry - nil, // 89: littlehorse.RunWfRequest.VariablesEntry - nil, // 90: littlehorse.ScheduleWfRequest.VariablesEntry - nil, // 91: littlehorse.TaskWorkerGroup.TaskWorkersEntry - (*WorkflowRetentionPolicy)(nil), // 92: littlehorse.WorkflowRetentionPolicy - (*WfSpec_ParentWfSpecReference)(nil), // 93: littlehorse.WfSpec.ParentWfSpecReference - (MeasurableObject)(0), // 94: littlehorse.MeasurableObject - (MetricType)(0), // 95: littlehorse.MetricType - (*VariableDef)(nil), // 96: littlehorse.VariableDef - (*TaskDefOutputSchema)(nil), // 97: littlehorse.TaskDefOutputSchema - (VariableType)(0), // 98: littlehorse.VariableType - (*UserTaskField)(nil), // 99: littlehorse.UserTaskField - (*ExternalEventRetentionPolicy)(nil), // 100: littlehorse.ExternalEventRetentionPolicy - (*WfRunId)(nil), // 101: littlehorse.WfRunId - (*ExternalEventDefId)(nil), // 102: littlehorse.ExternalEventDefId - (*VariableValue)(nil), // 103: littlehorse.VariableValue - (*ExternalEventId)(nil), // 104: littlehorse.ExternalEventId - (*ScheduledWfRunId)(nil), // 105: littlehorse.ScheduledWfRunId - (*TaskDefId)(nil), // 106: littlehorse.TaskDefId - (*UserTaskDefId)(nil), // 107: littlehorse.UserTaskDefId - (*WfSpecId)(nil), // 108: littlehorse.WfSpecId - (*WorkflowEventDefId)(nil), // 109: littlehorse.WorkflowEventDefId - (*WorkflowEventId)(nil), // 110: littlehorse.WorkflowEventId - (LHStatus)(0), // 111: littlehorse.LHStatus - (*timestamppb.Timestamp)(nil), // 112: google.protobuf.Timestamp - (TaskStatus)(0), // 113: littlehorse.TaskStatus - (*TaskRunId)(nil), // 114: littlehorse.TaskRunId - (*NodeRunId)(nil), // 115: littlehorse.NodeRunId - (UserTaskRunStatus)(0), // 116: littlehorse.UserTaskRunStatus - (*UserTaskRunId)(nil), // 117: littlehorse.UserTaskRunId - (*VariableId)(nil), // 118: littlehorse.VariableId - (*TenantId)(nil), // 119: littlehorse.TenantId - (*PrincipalId)(nil), // 120: littlehorse.PrincipalId - (*NodeRun)(nil), // 121: littlehorse.NodeRun - (*Variable)(nil), // 122: littlehorse.Variable - (*ExternalEvent)(nil), // 123: littlehorse.ExternalEvent - (*WorkflowEvent)(nil), // 124: littlehorse.WorkflowEvent - (*VarNameAndVal)(nil), // 125: littlehorse.VarNameAndVal - (*TaskRunSource)(nil), // 126: littlehorse.TaskRunSource - (*LHTaskError)(nil), // 127: littlehorse.LHTaskError - (*LHTaskException)(nil), // 128: littlehorse.LHTaskException - (MetricsWindowLength)(0), // 129: littlehorse.MetricsWindowLength - (*UserTaskRun)(nil), // 130: littlehorse.UserTaskRun - (*TaskWorkerGroupId)(nil), // 131: littlehorse.TaskWorkerGroupId - (*TaskRun)(nil), // 132: littlehorse.TaskRun - (*WfSpecVersionMigration)(nil), // 133: littlehorse.WfSpecVersionMigration - (*ThreadSpec)(nil), // 134: littlehorse.ThreadSpec - (*AssignUserTaskRunRequest)(nil), // 135: littlehorse.AssignUserTaskRunRequest - (*CompleteUserTaskRunRequest)(nil), // 136: littlehorse.CompleteUserTaskRunRequest - (*CancelUserTaskRunRequest)(nil), // 137: littlehorse.CancelUserTaskRunRequest - (*SaveUserTaskRunProgressRequest)(nil), // 138: littlehorse.SaveUserTaskRunProgressRequest - (*DeletePrincipalRequest)(nil), // 139: littlehorse.DeletePrincipalRequest - (*PutTenantRequest)(nil), // 140: littlehorse.PutTenantRequest - (*PutPrincipalRequest)(nil), // 141: littlehorse.PutPrincipalRequest - (*emptypb.Empty)(nil), // 142: google.protobuf.Empty - (*TaskDef)(nil), // 143: littlehorse.TaskDef - (*ExternalEventDef)(nil), // 144: littlehorse.ExternalEventDef - (*WorkflowEventDef)(nil), // 145: littlehorse.WorkflowEventDef - (*WfSpec)(nil), // 146: littlehorse.WfSpec - (*Metric)(nil), // 147: littlehorse.Metric - (*UserTaskDef)(nil), // 148: littlehorse.UserTaskDef - (*WfRun)(nil), // 149: littlehorse.WfRun - (*ScheduledWfRun)(nil), // 150: littlehorse.ScheduledWfRun - (*Tenant)(nil), // 151: littlehorse.Tenant - (*Principal)(nil), // 152: littlehorse.Principal + (*MetricRunList)(nil), // 88: littlehorse.MetricRunList + (*ListMetricRunRequest)(nil), // 89: littlehorse.ListMetricRunRequest + nil, // 90: littlehorse.PutWfSpecRequest.ThreadSpecsEntry + nil, // 91: littlehorse.RunWfRequest.VariablesEntry + nil, // 92: littlehorse.ScheduleWfRequest.VariablesEntry + nil, // 93: littlehorse.TaskWorkerGroup.TaskWorkersEntry + (*WorkflowRetentionPolicy)(nil), // 94: littlehorse.WorkflowRetentionPolicy + (*WfSpec_ParentWfSpecReference)(nil), // 95: littlehorse.WfSpec.ParentWfSpecReference + (MeasurableObject)(0), // 96: littlehorse.MeasurableObject + (MetricType)(0), // 97: littlehorse.MetricType + (*VariableDef)(nil), // 98: littlehorse.VariableDef + (*TaskDefOutputSchema)(nil), // 99: littlehorse.TaskDefOutputSchema + (VariableType)(0), // 100: littlehorse.VariableType + (*UserTaskField)(nil), // 101: littlehorse.UserTaskField + (*ExternalEventRetentionPolicy)(nil), // 102: littlehorse.ExternalEventRetentionPolicy + (*WfRunId)(nil), // 103: littlehorse.WfRunId + (*ExternalEventDefId)(nil), // 104: littlehorse.ExternalEventDefId + (*VariableValue)(nil), // 105: littlehorse.VariableValue + (*ExternalEventId)(nil), // 106: littlehorse.ExternalEventId + (*ScheduledWfRunId)(nil), // 107: littlehorse.ScheduledWfRunId + (*TaskDefId)(nil), // 108: littlehorse.TaskDefId + (*UserTaskDefId)(nil), // 109: littlehorse.UserTaskDefId + (*WfSpecId)(nil), // 110: littlehorse.WfSpecId + (*WorkflowEventDefId)(nil), // 111: littlehorse.WorkflowEventDefId + (*WorkflowEventId)(nil), // 112: littlehorse.WorkflowEventId + (LHStatus)(0), // 113: littlehorse.LHStatus + (*timestamppb.Timestamp)(nil), // 114: google.protobuf.Timestamp + (TaskStatus)(0), // 115: littlehorse.TaskStatus + (*TaskRunId)(nil), // 116: littlehorse.TaskRunId + (*NodeRunId)(nil), // 117: littlehorse.NodeRunId + (UserTaskRunStatus)(0), // 118: littlehorse.UserTaskRunStatus + (*UserTaskRunId)(nil), // 119: littlehorse.UserTaskRunId + (*VariableId)(nil), // 120: littlehorse.VariableId + (*TenantId)(nil), // 121: littlehorse.TenantId + (*PrincipalId)(nil), // 122: littlehorse.PrincipalId + (*NodeRun)(nil), // 123: littlehorse.NodeRun + (*Variable)(nil), // 124: littlehorse.Variable + (*ExternalEvent)(nil), // 125: littlehorse.ExternalEvent + (*WorkflowEvent)(nil), // 126: littlehorse.WorkflowEvent + (*VarNameAndVal)(nil), // 127: littlehorse.VarNameAndVal + (*TaskRunSource)(nil), // 128: littlehorse.TaskRunSource + (*LHTaskError)(nil), // 129: littlehorse.LHTaskError + (*LHTaskException)(nil), // 130: littlehorse.LHTaskException + (MetricsWindowLength)(0), // 131: littlehorse.MetricsWindowLength + (*UserTaskRun)(nil), // 132: littlehorse.UserTaskRun + (*TaskWorkerGroupId)(nil), // 133: littlehorse.TaskWorkerGroupId + (*TaskRun)(nil), // 134: littlehorse.TaskRun + (*WfSpecVersionMigration)(nil), // 135: littlehorse.WfSpecVersionMigration + (*MetricRun)(nil), // 136: littlehorse.MetricRun + (*MetricId)(nil), // 137: littlehorse.MetricId + (*ThreadSpec)(nil), // 138: littlehorse.ThreadSpec + (*AssignUserTaskRunRequest)(nil), // 139: littlehorse.AssignUserTaskRunRequest + (*CompleteUserTaskRunRequest)(nil), // 140: littlehorse.CompleteUserTaskRunRequest + (*CancelUserTaskRunRequest)(nil), // 141: littlehorse.CancelUserTaskRunRequest + (*SaveUserTaskRunProgressRequest)(nil), // 142: littlehorse.SaveUserTaskRunProgressRequest + (*DeletePrincipalRequest)(nil), // 143: littlehorse.DeletePrincipalRequest + (*PutTenantRequest)(nil), // 144: littlehorse.PutTenantRequest + (*PutPrincipalRequest)(nil), // 145: littlehorse.PutPrincipalRequest + (*emptypb.Empty)(nil), // 146: google.protobuf.Empty + (*TaskDef)(nil), // 147: littlehorse.TaskDef + (*ExternalEventDef)(nil), // 148: littlehorse.ExternalEventDef + (*WorkflowEventDef)(nil), // 149: littlehorse.WorkflowEventDef + (*WfSpec)(nil), // 150: littlehorse.WfSpec + (*Metric)(nil), // 151: littlehorse.Metric + (*UserTaskDef)(nil), // 152: littlehorse.UserTaskDef + (*WfRun)(nil), // 153: littlehorse.WfRun + (*ScheduledWfRun)(nil), // 154: littlehorse.ScheduledWfRun + (*Tenant)(nil), // 155: littlehorse.Tenant + (*Principal)(nil), // 156: littlehorse.Principal } var file_service_proto_depIdxs = []int32{ - 88, // 0: littlehorse.PutWfSpecRequest.thread_specs:type_name -> littlehorse.PutWfSpecRequest.ThreadSpecsEntry - 92, // 1: littlehorse.PutWfSpecRequest.retention_policy:type_name -> littlehorse.WorkflowRetentionPolicy - 93, // 2: littlehorse.PutWfSpecRequest.parent_wf_spec:type_name -> littlehorse.WfSpec.ParentWfSpecReference + 90, // 0: littlehorse.PutWfSpecRequest.thread_specs:type_name -> littlehorse.PutWfSpecRequest.ThreadSpecsEntry + 94, // 1: littlehorse.PutWfSpecRequest.retention_policy:type_name -> littlehorse.WorkflowRetentionPolicy + 95, // 2: littlehorse.PutWfSpecRequest.parent_wf_spec:type_name -> littlehorse.WfSpec.ParentWfSpecReference 0, // 3: littlehorse.PutWfSpecRequest.allowed_updates:type_name -> littlehorse.AllowedUpdateType - 94, // 4: littlehorse.PutMetricRequest.measurable:type_name -> littlehorse.MeasurableObject - 95, // 5: littlehorse.PutMetricRequest.type:type_name -> littlehorse.MetricType - 96, // 6: littlehorse.PutTaskDefRequest.input_vars:type_name -> littlehorse.VariableDef - 97, // 7: littlehorse.PutTaskDefRequest.output_schema:type_name -> littlehorse.TaskDefOutputSchema - 98, // 8: littlehorse.PutWorkflowEventDefRequest.type:type_name -> littlehorse.VariableType - 99, // 9: littlehorse.PutUserTaskDefRequest.fields:type_name -> littlehorse.UserTaskField - 100, // 10: littlehorse.PutExternalEventDefRequest.retention_policy:type_name -> littlehorse.ExternalEventRetentionPolicy - 101, // 11: littlehorse.PutExternalEventRequest.wf_run_id:type_name -> littlehorse.WfRunId - 102, // 12: littlehorse.PutExternalEventRequest.external_event_def_id:type_name -> littlehorse.ExternalEventDefId - 103, // 13: littlehorse.PutExternalEventRequest.content:type_name -> littlehorse.VariableValue - 104, // 14: littlehorse.DeleteExternalEventRequest.id:type_name -> littlehorse.ExternalEventId - 105, // 15: littlehorse.DeleteScheduledWfRunRequest.id:type_name -> littlehorse.ScheduledWfRunId - 101, // 16: littlehorse.DeleteWfRunRequest.id:type_name -> littlehorse.WfRunId - 106, // 17: littlehorse.DeleteTaskDefRequest.id:type_name -> littlehorse.TaskDefId - 107, // 18: littlehorse.DeleteUserTaskDefRequest.id:type_name -> littlehorse.UserTaskDefId - 108, // 19: littlehorse.DeleteWfSpecRequest.id:type_name -> littlehorse.WfSpecId - 102, // 20: littlehorse.DeleteExternalEventDefRequest.id:type_name -> littlehorse.ExternalEventDefId - 109, // 21: littlehorse.DeleteWorkflowEventDefRequest.id:type_name -> littlehorse.WorkflowEventDefId - 89, // 22: littlehorse.RunWfRequest.variables:type_name -> littlehorse.RunWfRequest.VariablesEntry - 101, // 23: littlehorse.RunWfRequest.parent_wf_run_id:type_name -> littlehorse.WfRunId - 90, // 24: littlehorse.ScheduleWfRequest.variables:type_name -> littlehorse.ScheduleWfRequest.VariablesEntry - 101, // 25: littlehorse.ScheduleWfRequest.parent_wf_run_id:type_name -> littlehorse.WfRunId - 103, // 26: littlehorse.VariableMatch.value:type_name -> littlehorse.VariableValue - 101, // 27: littlehorse.AwaitWorkflowEventRequest.wf_run_id:type_name -> littlehorse.WfRunId - 109, // 28: littlehorse.AwaitWorkflowEventRequest.event_def_ids:type_name -> littlehorse.WorkflowEventDefId - 110, // 29: littlehorse.AwaitWorkflowEventRequest.workflow_events_to_ignore:type_name -> littlehorse.WorkflowEventId - 111, // 30: littlehorse.SearchWfRunRequest.status:type_name -> littlehorse.LHStatus - 112, // 31: littlehorse.SearchWfRunRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 32: littlehorse.SearchWfRunRequest.latest_start:type_name -> google.protobuf.Timestamp + 96, // 4: littlehorse.PutMetricRequest.measurable:type_name -> littlehorse.MeasurableObject + 97, // 5: littlehorse.PutMetricRequest.type:type_name -> littlehorse.MetricType + 98, // 6: littlehorse.PutTaskDefRequest.input_vars:type_name -> littlehorse.VariableDef + 99, // 7: littlehorse.PutTaskDefRequest.output_schema:type_name -> littlehorse.TaskDefOutputSchema + 100, // 8: littlehorse.PutWorkflowEventDefRequest.type:type_name -> littlehorse.VariableType + 101, // 9: littlehorse.PutUserTaskDefRequest.fields:type_name -> littlehorse.UserTaskField + 102, // 10: littlehorse.PutExternalEventDefRequest.retention_policy:type_name -> littlehorse.ExternalEventRetentionPolicy + 103, // 11: littlehorse.PutExternalEventRequest.wf_run_id:type_name -> littlehorse.WfRunId + 104, // 12: littlehorse.PutExternalEventRequest.external_event_def_id:type_name -> littlehorse.ExternalEventDefId + 105, // 13: littlehorse.PutExternalEventRequest.content:type_name -> littlehorse.VariableValue + 106, // 14: littlehorse.DeleteExternalEventRequest.id:type_name -> littlehorse.ExternalEventId + 107, // 15: littlehorse.DeleteScheduledWfRunRequest.id:type_name -> littlehorse.ScheduledWfRunId + 103, // 16: littlehorse.DeleteWfRunRequest.id:type_name -> littlehorse.WfRunId + 108, // 17: littlehorse.DeleteTaskDefRequest.id:type_name -> littlehorse.TaskDefId + 109, // 18: littlehorse.DeleteUserTaskDefRequest.id:type_name -> littlehorse.UserTaskDefId + 110, // 19: littlehorse.DeleteWfSpecRequest.id:type_name -> littlehorse.WfSpecId + 104, // 20: littlehorse.DeleteExternalEventDefRequest.id:type_name -> littlehorse.ExternalEventDefId + 111, // 21: littlehorse.DeleteWorkflowEventDefRequest.id:type_name -> littlehorse.WorkflowEventDefId + 91, // 22: littlehorse.RunWfRequest.variables:type_name -> littlehorse.RunWfRequest.VariablesEntry + 103, // 23: littlehorse.RunWfRequest.parent_wf_run_id:type_name -> littlehorse.WfRunId + 92, // 24: littlehorse.ScheduleWfRequest.variables:type_name -> littlehorse.ScheduleWfRequest.VariablesEntry + 103, // 25: littlehorse.ScheduleWfRequest.parent_wf_run_id:type_name -> littlehorse.WfRunId + 105, // 26: littlehorse.VariableMatch.value:type_name -> littlehorse.VariableValue + 103, // 27: littlehorse.AwaitWorkflowEventRequest.wf_run_id:type_name -> littlehorse.WfRunId + 111, // 28: littlehorse.AwaitWorkflowEventRequest.event_def_ids:type_name -> littlehorse.WorkflowEventDefId + 112, // 29: littlehorse.AwaitWorkflowEventRequest.workflow_events_to_ignore:type_name -> littlehorse.WorkflowEventId + 113, // 30: littlehorse.SearchWfRunRequest.status:type_name -> littlehorse.LHStatus + 114, // 31: littlehorse.SearchWfRunRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 32: littlehorse.SearchWfRunRequest.latest_start:type_name -> google.protobuf.Timestamp 20, // 33: littlehorse.SearchWfRunRequest.variable_filters:type_name -> littlehorse.VariableMatch - 101, // 34: littlehorse.WfRunIdList.results:type_name -> littlehorse.WfRunId - 113, // 35: littlehorse.SearchTaskRunRequest.status:type_name -> littlehorse.TaskStatus - 112, // 36: littlehorse.SearchTaskRunRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 37: littlehorse.SearchTaskRunRequest.latest_start:type_name -> google.protobuf.Timestamp - 114, // 38: littlehorse.TaskRunIdList.results:type_name -> littlehorse.TaskRunId - 112, // 39: littlehorse.SearchNodeRunRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 40: littlehorse.SearchNodeRunRequest.latest_start:type_name -> google.protobuf.Timestamp + 103, // 34: littlehorse.WfRunIdList.results:type_name -> littlehorse.WfRunId + 115, // 35: littlehorse.SearchTaskRunRequest.status:type_name -> littlehorse.TaskStatus + 114, // 36: littlehorse.SearchTaskRunRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 37: littlehorse.SearchTaskRunRequest.latest_start:type_name -> google.protobuf.Timestamp + 116, // 38: littlehorse.TaskRunIdList.results:type_name -> littlehorse.TaskRunId + 114, // 39: littlehorse.SearchNodeRunRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 40: littlehorse.SearchNodeRunRequest.latest_start:type_name -> google.protobuf.Timestamp 1, // 41: littlehorse.SearchNodeRunRequest.node_type:type_name -> littlehorse.SearchNodeRunRequest.NodeType - 111, // 42: littlehorse.SearchNodeRunRequest.status:type_name -> littlehorse.LHStatus - 115, // 43: littlehorse.NodeRunIdList.results:type_name -> littlehorse.NodeRunId - 116, // 44: littlehorse.SearchUserTaskRunRequest.status:type_name -> littlehorse.UserTaskRunStatus - 112, // 45: littlehorse.SearchUserTaskRunRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 46: littlehorse.SearchUserTaskRunRequest.latest_start:type_name -> google.protobuf.Timestamp - 117, // 47: littlehorse.UserTaskRunIdList.results:type_name -> littlehorse.UserTaskRunId - 103, // 48: littlehorse.SearchVariableRequest.value:type_name -> littlehorse.VariableValue - 118, // 49: littlehorse.VariableIdList.results:type_name -> littlehorse.VariableId - 106, // 50: littlehorse.TaskDefIdList.results:type_name -> littlehorse.TaskDefId - 107, // 51: littlehorse.UserTaskDefIdList.results:type_name -> littlehorse.UserTaskDefId - 108, // 52: littlehorse.WfSpecIdList.results:type_name -> littlehorse.WfSpecId - 102, // 53: littlehorse.ExternalEventDefIdList.results:type_name -> littlehorse.ExternalEventDefId - 109, // 54: littlehorse.WorkflowEventDefIdList.results:type_name -> littlehorse.WorkflowEventDefId - 119, // 55: littlehorse.TenantIdList.results:type_name -> littlehorse.TenantId - 112, // 56: littlehorse.SearchPrincipalRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 57: littlehorse.SearchPrincipalRequest.latest_start:type_name -> google.protobuf.Timestamp - 120, // 58: littlehorse.PrincipalIdList.results:type_name -> littlehorse.PrincipalId - 112, // 59: littlehorse.SearchExternalEventRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 60: littlehorse.SearchExternalEventRequest.latest_start:type_name -> google.protobuf.Timestamp - 102, // 61: littlehorse.SearchExternalEventRequest.external_event_def_id:type_name -> littlehorse.ExternalEventDefId - 104, // 62: littlehorse.ExternalEventIdList.results:type_name -> littlehorse.ExternalEventId - 112, // 63: littlehorse.SearchWorkflowEventRequest.earliest_start:type_name -> google.protobuf.Timestamp - 112, // 64: littlehorse.SearchWorkflowEventRequest.latest_start:type_name -> google.protobuf.Timestamp - 109, // 65: littlehorse.SearchWorkflowEventRequest.workflow_event_def_id:type_name -> littlehorse.WorkflowEventDefId - 110, // 66: littlehorse.WorkflowEventIdList.results:type_name -> littlehorse.WorkflowEventId - 101, // 67: littlehorse.ListNodeRunsRequest.wf_run_id:type_name -> littlehorse.WfRunId - 121, // 68: littlehorse.NodeRunList.results:type_name -> littlehorse.NodeRun - 101, // 69: littlehorse.ListVariablesRequest.wf_run_id:type_name -> littlehorse.WfRunId - 122, // 70: littlehorse.VariableList.results:type_name -> littlehorse.Variable - 101, // 71: littlehorse.ListExternalEventsRequest.wf_run_id:type_name -> littlehorse.WfRunId - 123, // 72: littlehorse.ExternalEventList.results:type_name -> littlehorse.ExternalEvent - 101, // 73: littlehorse.ListWorkflowEventsRequest.wf_run_id:type_name -> littlehorse.WfRunId - 124, // 74: littlehorse.WorkflowEventList.results:type_name -> littlehorse.WorkflowEvent - 106, // 75: littlehorse.RegisterTaskWorkerRequest.task_def_id:type_name -> littlehorse.TaskDefId - 106, // 76: littlehorse.TaskWorkerHeartBeatRequest.task_def_id:type_name -> littlehorse.TaskDefId + 113, // 42: littlehorse.SearchNodeRunRequest.status:type_name -> littlehorse.LHStatus + 117, // 43: littlehorse.NodeRunIdList.results:type_name -> littlehorse.NodeRunId + 118, // 44: littlehorse.SearchUserTaskRunRequest.status:type_name -> littlehorse.UserTaskRunStatus + 114, // 45: littlehorse.SearchUserTaskRunRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 46: littlehorse.SearchUserTaskRunRequest.latest_start:type_name -> google.protobuf.Timestamp + 119, // 47: littlehorse.UserTaskRunIdList.results:type_name -> littlehorse.UserTaskRunId + 105, // 48: littlehorse.SearchVariableRequest.value:type_name -> littlehorse.VariableValue + 120, // 49: littlehorse.VariableIdList.results:type_name -> littlehorse.VariableId + 108, // 50: littlehorse.TaskDefIdList.results:type_name -> littlehorse.TaskDefId + 109, // 51: littlehorse.UserTaskDefIdList.results:type_name -> littlehorse.UserTaskDefId + 110, // 52: littlehorse.WfSpecIdList.results:type_name -> littlehorse.WfSpecId + 104, // 53: littlehorse.ExternalEventDefIdList.results:type_name -> littlehorse.ExternalEventDefId + 111, // 54: littlehorse.WorkflowEventDefIdList.results:type_name -> littlehorse.WorkflowEventDefId + 121, // 55: littlehorse.TenantIdList.results:type_name -> littlehorse.TenantId + 114, // 56: littlehorse.SearchPrincipalRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 57: littlehorse.SearchPrincipalRequest.latest_start:type_name -> google.protobuf.Timestamp + 122, // 58: littlehorse.PrincipalIdList.results:type_name -> littlehorse.PrincipalId + 114, // 59: littlehorse.SearchExternalEventRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 60: littlehorse.SearchExternalEventRequest.latest_start:type_name -> google.protobuf.Timestamp + 104, // 61: littlehorse.SearchExternalEventRequest.external_event_def_id:type_name -> littlehorse.ExternalEventDefId + 106, // 62: littlehorse.ExternalEventIdList.results:type_name -> littlehorse.ExternalEventId + 114, // 63: littlehorse.SearchWorkflowEventRequest.earliest_start:type_name -> google.protobuf.Timestamp + 114, // 64: littlehorse.SearchWorkflowEventRequest.latest_start:type_name -> google.protobuf.Timestamp + 111, // 65: littlehorse.SearchWorkflowEventRequest.workflow_event_def_id:type_name -> littlehorse.WorkflowEventDefId + 112, // 66: littlehorse.WorkflowEventIdList.results:type_name -> littlehorse.WorkflowEventId + 103, // 67: littlehorse.ListNodeRunsRequest.wf_run_id:type_name -> littlehorse.WfRunId + 123, // 68: littlehorse.NodeRunList.results:type_name -> littlehorse.NodeRun + 103, // 69: littlehorse.ListVariablesRequest.wf_run_id:type_name -> littlehorse.WfRunId + 124, // 70: littlehorse.VariableList.results:type_name -> littlehorse.Variable + 103, // 71: littlehorse.ListExternalEventsRequest.wf_run_id:type_name -> littlehorse.WfRunId + 125, // 72: littlehorse.ExternalEventList.results:type_name -> littlehorse.ExternalEvent + 103, // 73: littlehorse.ListWorkflowEventsRequest.wf_run_id:type_name -> littlehorse.WfRunId + 126, // 74: littlehorse.WorkflowEventList.results:type_name -> littlehorse.WorkflowEvent + 108, // 75: littlehorse.RegisterTaskWorkerRequest.task_def_id:type_name -> littlehorse.TaskDefId + 108, // 76: littlehorse.TaskWorkerHeartBeatRequest.task_def_id:type_name -> littlehorse.TaskDefId 61, // 77: littlehorse.RegisterTaskWorkerResponse.your_hosts:type_name -> littlehorse.LHHostInfo - 106, // 78: littlehorse.PollTaskRequest.task_def_id:type_name -> littlehorse.TaskDefId - 114, // 79: littlehorse.ScheduledTask.task_run_id:type_name -> littlehorse.TaskRunId - 106, // 80: littlehorse.ScheduledTask.task_def_id:type_name -> littlehorse.TaskDefId - 125, // 81: littlehorse.ScheduledTask.variables:type_name -> littlehorse.VarNameAndVal - 112, // 82: littlehorse.ScheduledTask.created_at:type_name -> google.protobuf.Timestamp - 126, // 83: littlehorse.ScheduledTask.source:type_name -> littlehorse.TaskRunSource + 108, // 78: littlehorse.PollTaskRequest.task_def_id:type_name -> littlehorse.TaskDefId + 116, // 79: littlehorse.ScheduledTask.task_run_id:type_name -> littlehorse.TaskRunId + 108, // 80: littlehorse.ScheduledTask.task_def_id:type_name -> littlehorse.TaskDefId + 127, // 81: littlehorse.ScheduledTask.variables:type_name -> littlehorse.VarNameAndVal + 114, // 82: littlehorse.ScheduledTask.created_at:type_name -> google.protobuf.Timestamp + 128, // 83: littlehorse.ScheduledTask.source:type_name -> littlehorse.TaskRunSource 63, // 84: littlehorse.PollTaskResponse.result:type_name -> littlehorse.ScheduledTask - 114, // 85: littlehorse.ReportTaskRun.task_run_id:type_name -> littlehorse.TaskRunId - 112, // 86: littlehorse.ReportTaskRun.time:type_name -> google.protobuf.Timestamp - 113, // 87: littlehorse.ReportTaskRun.status:type_name -> littlehorse.TaskStatus - 103, // 88: littlehorse.ReportTaskRun.log_output:type_name -> littlehorse.VariableValue - 103, // 89: littlehorse.ReportTaskRun.output:type_name -> littlehorse.VariableValue - 127, // 90: littlehorse.ReportTaskRun.error:type_name -> littlehorse.LHTaskError - 128, // 91: littlehorse.ReportTaskRun.exception:type_name -> littlehorse.LHTaskException - 101, // 92: littlehorse.StopWfRunRequest.wf_run_id:type_name -> littlehorse.WfRunId - 101, // 93: littlehorse.ResumeWfRunRequest.wf_run_id:type_name -> littlehorse.WfRunId - 101, // 94: littlehorse.RescueThreadRunRequest.wf_run_id:type_name -> littlehorse.WfRunId - 112, // 95: littlehorse.TaskDefMetricsQueryRequest.window_start:type_name -> google.protobuf.Timestamp - 129, // 96: littlehorse.TaskDefMetricsQueryRequest.window_type:type_name -> littlehorse.MetricsWindowLength - 106, // 97: littlehorse.ListTaskMetricsRequest.task_def_id:type_name -> littlehorse.TaskDefId - 112, // 98: littlehorse.ListTaskMetricsRequest.last_window_start:type_name -> google.protobuf.Timestamp - 129, // 99: littlehorse.ListTaskMetricsRequest.window_length:type_name -> littlehorse.MetricsWindowLength + 116, // 85: littlehorse.ReportTaskRun.task_run_id:type_name -> littlehorse.TaskRunId + 114, // 86: littlehorse.ReportTaskRun.time:type_name -> google.protobuf.Timestamp + 115, // 87: littlehorse.ReportTaskRun.status:type_name -> littlehorse.TaskStatus + 105, // 88: littlehorse.ReportTaskRun.log_output:type_name -> littlehorse.VariableValue + 105, // 89: littlehorse.ReportTaskRun.output:type_name -> littlehorse.VariableValue + 129, // 90: littlehorse.ReportTaskRun.error:type_name -> littlehorse.LHTaskError + 130, // 91: littlehorse.ReportTaskRun.exception:type_name -> littlehorse.LHTaskException + 103, // 92: littlehorse.StopWfRunRequest.wf_run_id:type_name -> littlehorse.WfRunId + 103, // 93: littlehorse.ResumeWfRunRequest.wf_run_id:type_name -> littlehorse.WfRunId + 103, // 94: littlehorse.RescueThreadRunRequest.wf_run_id:type_name -> littlehorse.WfRunId + 114, // 95: littlehorse.TaskDefMetricsQueryRequest.window_start:type_name -> google.protobuf.Timestamp + 131, // 96: littlehorse.TaskDefMetricsQueryRequest.window_type:type_name -> littlehorse.MetricsWindowLength + 108, // 97: littlehorse.ListTaskMetricsRequest.task_def_id:type_name -> littlehorse.TaskDefId + 114, // 98: littlehorse.ListTaskMetricsRequest.last_window_start:type_name -> google.protobuf.Timestamp + 131, // 99: littlehorse.ListTaskMetricsRequest.window_length:type_name -> littlehorse.MetricsWindowLength 75, // 100: littlehorse.ListTaskMetricsResponse.results:type_name -> littlehorse.TaskDefMetrics - 108, // 101: littlehorse.WfSpecMetricsQueryRequest.wf_spec_id:type_name -> littlehorse.WfSpecId - 112, // 102: littlehorse.WfSpecMetricsQueryRequest.window_start:type_name -> google.protobuf.Timestamp - 129, // 103: littlehorse.WfSpecMetricsQueryRequest.window_length:type_name -> littlehorse.MetricsWindowLength - 108, // 104: littlehorse.ListWfMetricsRequest.wf_spec_id:type_name -> littlehorse.WfSpecId - 112, // 105: littlehorse.ListWfMetricsRequest.last_window_start:type_name -> google.protobuf.Timestamp - 129, // 106: littlehorse.ListWfMetricsRequest.window_length:type_name -> littlehorse.MetricsWindowLength + 110, // 101: littlehorse.WfSpecMetricsQueryRequest.wf_spec_id:type_name -> littlehorse.WfSpecId + 114, // 102: littlehorse.WfSpecMetricsQueryRequest.window_start:type_name -> google.protobuf.Timestamp + 131, // 103: littlehorse.WfSpecMetricsQueryRequest.window_length:type_name -> littlehorse.MetricsWindowLength + 110, // 104: littlehorse.ListWfMetricsRequest.wf_spec_id:type_name -> littlehorse.WfSpecId + 114, // 105: littlehorse.ListWfMetricsRequest.last_window_start:type_name -> google.protobuf.Timestamp + 131, // 106: littlehorse.ListWfMetricsRequest.window_length:type_name -> littlehorse.MetricsWindowLength 76, // 107: littlehorse.ListWfMetricsResponse.results:type_name -> littlehorse.WfSpecMetrics - 106, // 108: littlehorse.TaskDefMetrics.task_def_id:type_name -> littlehorse.TaskDefId - 112, // 109: littlehorse.TaskDefMetrics.window_start:type_name -> google.protobuf.Timestamp - 129, // 110: littlehorse.TaskDefMetrics.type:type_name -> littlehorse.MetricsWindowLength - 108, // 111: littlehorse.WfSpecMetrics.wf_spec_id:type_name -> littlehorse.WfSpecId - 112, // 112: littlehorse.WfSpecMetrics.window_start:type_name -> google.protobuf.Timestamp - 129, // 113: littlehorse.WfSpecMetrics.type:type_name -> littlehorse.MetricsWindowLength - 101, // 114: littlehorse.ListUserTaskRunRequest.wf_run_id:type_name -> littlehorse.WfRunId - 130, // 115: littlehorse.UserTaskRunList.results:type_name -> littlehorse.UserTaskRun - 105, // 116: littlehorse.ScheduledWfRunIdList.results:type_name -> littlehorse.ScheduledWfRunId - 112, // 117: littlehorse.TaskWorkerMetadata.latest_heartbeat:type_name -> google.protobuf.Timestamp + 108, // 108: littlehorse.TaskDefMetrics.task_def_id:type_name -> littlehorse.TaskDefId + 114, // 109: littlehorse.TaskDefMetrics.window_start:type_name -> google.protobuf.Timestamp + 131, // 110: littlehorse.TaskDefMetrics.type:type_name -> littlehorse.MetricsWindowLength + 110, // 111: littlehorse.WfSpecMetrics.wf_spec_id:type_name -> littlehorse.WfSpecId + 114, // 112: littlehorse.WfSpecMetrics.window_start:type_name -> google.protobuf.Timestamp + 131, // 113: littlehorse.WfSpecMetrics.type:type_name -> littlehorse.MetricsWindowLength + 103, // 114: littlehorse.ListUserTaskRunRequest.wf_run_id:type_name -> littlehorse.WfRunId + 132, // 115: littlehorse.UserTaskRunList.results:type_name -> littlehorse.UserTaskRun + 107, // 116: littlehorse.ScheduledWfRunIdList.results:type_name -> littlehorse.ScheduledWfRunId + 114, // 117: littlehorse.TaskWorkerMetadata.latest_heartbeat:type_name -> google.protobuf.Timestamp 61, // 118: littlehorse.TaskWorkerMetadata.hosts:type_name -> littlehorse.LHHostInfo - 131, // 119: littlehorse.TaskWorkerGroup.id:type_name -> littlehorse.TaskWorkerGroupId - 112, // 120: littlehorse.TaskWorkerGroup.created_at:type_name -> google.protobuf.Timestamp - 91, // 121: littlehorse.TaskWorkerGroup.task_workers:type_name -> littlehorse.TaskWorkerGroup.TaskWorkersEntry - 101, // 122: littlehorse.ListTaskRunsRequest.wf_run_id:type_name -> littlehorse.WfRunId - 132, // 123: littlehorse.TaskRunList.results:type_name -> littlehorse.TaskRun - 108, // 124: littlehorse.MigrateWfSpecRequest.old_wf_spec:type_name -> littlehorse.WfSpecId - 133, // 125: littlehorse.MigrateWfSpecRequest.migration:type_name -> littlehorse.WfSpecVersionMigration - 134, // 126: littlehorse.PutWfSpecRequest.ThreadSpecsEntry.value:type_name -> littlehorse.ThreadSpec - 103, // 127: littlehorse.RunWfRequest.VariablesEntry.value:type_name -> littlehorse.VariableValue - 103, // 128: littlehorse.ScheduleWfRequest.VariablesEntry.value:type_name -> littlehorse.VariableValue - 81, // 129: littlehorse.TaskWorkerGroup.TaskWorkersEntry.value:type_name -> littlehorse.TaskWorkerMetadata - 5, // 130: littlehorse.LittleHorse.PutTaskDef:input_type -> littlehorse.PutTaskDefRequest - 106, // 131: littlehorse.LittleHorse.GetTaskDef:input_type -> littlehorse.TaskDefId - 106, // 132: littlehorse.LittleHorse.GetTaskWorkerGroup:input_type -> littlehorse.TaskDefId - 8, // 133: littlehorse.LittleHorse.PutExternalEventDef:input_type -> littlehorse.PutExternalEventDefRequest - 102, // 134: littlehorse.LittleHorse.GetExternalEventDef:input_type -> littlehorse.ExternalEventDefId - 6, // 135: littlehorse.LittleHorse.PutWorkflowEventDef:input_type -> littlehorse.PutWorkflowEventDefRequest - 3, // 136: littlehorse.LittleHorse.PutWfSpec:input_type -> littlehorse.PutWfSpecRequest - 4, // 137: littlehorse.LittleHorse.PutMetric:input_type -> littlehorse.PutMetricRequest - 108, // 138: littlehorse.LittleHorse.GetWfSpec:input_type -> littlehorse.WfSpecId - 86, // 139: littlehorse.LittleHorse.GetLatestWfSpec:input_type -> littlehorse.GetLatestWfSpecRequest - 85, // 140: littlehorse.LittleHorse.MigrateWfSpec:input_type -> littlehorse.MigrateWfSpecRequest - 7, // 141: littlehorse.LittleHorse.PutUserTaskDef:input_type -> littlehorse.PutUserTaskDefRequest - 107, // 142: littlehorse.LittleHorse.GetUserTaskDef:input_type -> littlehorse.UserTaskDefId - 2, // 143: littlehorse.LittleHorse.GetLatestUserTaskDef:input_type -> littlehorse.GetLatestUserTaskDefRequest - 18, // 144: littlehorse.LittleHorse.RunWf:input_type -> littlehorse.RunWfRequest - 19, // 145: littlehorse.LittleHorse.ScheduleWf:input_type -> littlehorse.ScheduleWfRequest - 80, // 146: littlehorse.LittleHorse.SearchScheduledWfRun:input_type -> littlehorse.SearchScheduledWfRunRequest - 105, // 147: littlehorse.LittleHorse.GetScheduledWfRun:input_type -> littlehorse.ScheduledWfRunId - 101, // 148: littlehorse.LittleHorse.GetWfRun:input_type -> littlehorse.WfRunId - 117, // 149: littlehorse.LittleHorse.GetUserTaskRun:input_type -> littlehorse.UserTaskRunId - 135, // 150: littlehorse.LittleHorse.AssignUserTaskRun:input_type -> littlehorse.AssignUserTaskRunRequest - 136, // 151: littlehorse.LittleHorse.CompleteUserTaskRun:input_type -> littlehorse.CompleteUserTaskRunRequest - 137, // 152: littlehorse.LittleHorse.CancelUserTaskRun:input_type -> littlehorse.CancelUserTaskRunRequest - 138, // 153: littlehorse.LittleHorse.SaveUserTaskRunProgress:input_type -> littlehorse.SaveUserTaskRunProgressRequest - 77, // 154: littlehorse.LittleHorse.ListUserTaskRuns:input_type -> littlehorse.ListUserTaskRunRequest - 115, // 155: littlehorse.LittleHorse.GetNodeRun:input_type -> littlehorse.NodeRunId - 50, // 156: littlehorse.LittleHorse.ListNodeRuns:input_type -> littlehorse.ListNodeRunsRequest - 114, // 157: littlehorse.LittleHorse.GetTaskRun:input_type -> littlehorse.TaskRunId - 83, // 158: littlehorse.LittleHorse.ListTaskRuns:input_type -> littlehorse.ListTaskRunsRequest - 118, // 159: littlehorse.LittleHorse.GetVariable:input_type -> littlehorse.VariableId - 52, // 160: littlehorse.LittleHorse.ListVariables:input_type -> littlehorse.ListVariablesRequest - 9, // 161: littlehorse.LittleHorse.PutExternalEvent:input_type -> littlehorse.PutExternalEventRequest - 104, // 162: littlehorse.LittleHorse.GetExternalEvent:input_type -> littlehorse.ExternalEventId - 21, // 163: littlehorse.LittleHorse.AwaitWorkflowEvent:input_type -> littlehorse.AwaitWorkflowEventRequest - 109, // 164: littlehorse.LittleHorse.GetWorkflowEventDef:input_type -> littlehorse.WorkflowEventDefId - 110, // 165: littlehorse.LittleHorse.GetWorkflowEvent:input_type -> littlehorse.WorkflowEventId - 54, // 166: littlehorse.LittleHorse.ListExternalEvents:input_type -> littlehorse.ListExternalEventsRequest - 56, // 167: littlehorse.LittleHorse.ListWorkflowEvents:input_type -> littlehorse.ListWorkflowEventsRequest - 22, // 168: littlehorse.LittleHorse.SearchWfRun:input_type -> littlehorse.SearchWfRunRequest - 26, // 169: littlehorse.LittleHorse.SearchNodeRun:input_type -> littlehorse.SearchNodeRunRequest - 24, // 170: littlehorse.LittleHorse.SearchTaskRun:input_type -> littlehorse.SearchTaskRunRequest - 28, // 171: littlehorse.LittleHorse.SearchUserTaskRun:input_type -> littlehorse.SearchUserTaskRunRequest - 30, // 172: littlehorse.LittleHorse.SearchVariable:input_type -> littlehorse.SearchVariableRequest - 46, // 173: littlehorse.LittleHorse.SearchExternalEvent:input_type -> littlehorse.SearchExternalEventRequest - 48, // 174: littlehorse.LittleHorse.SearchWorkflowEvent:input_type -> littlehorse.SearchWorkflowEventRequest - 32, // 175: littlehorse.LittleHorse.SearchTaskDef:input_type -> littlehorse.SearchTaskDefRequest - 34, // 176: littlehorse.LittleHorse.SearchUserTaskDef:input_type -> littlehorse.SearchUserTaskDefRequest - 36, // 177: littlehorse.LittleHorse.SearchWfSpec:input_type -> littlehorse.SearchWfSpecRequest - 38, // 178: littlehorse.LittleHorse.SearchExternalEventDef:input_type -> littlehorse.SearchExternalEventDefRequest - 40, // 179: littlehorse.LittleHorse.SearchWorkflowEventDef:input_type -> littlehorse.SearchWorkflowEventDefRequest - 42, // 180: littlehorse.LittleHorse.SearchTenant:input_type -> littlehorse.SearchTenantRequest - 44, // 181: littlehorse.LittleHorse.SearchPrincipal:input_type -> littlehorse.SearchPrincipalRequest - 58, // 182: littlehorse.LittleHorse.RegisterTaskWorker:input_type -> littlehorse.RegisterTaskWorkerRequest - 62, // 183: littlehorse.LittleHorse.PollTask:input_type -> littlehorse.PollTaskRequest - 65, // 184: littlehorse.LittleHorse.ReportTask:input_type -> littlehorse.ReportTaskRun - 66, // 185: littlehorse.LittleHorse.StopWfRun:input_type -> littlehorse.StopWfRunRequest - 67, // 186: littlehorse.LittleHorse.ResumeWfRun:input_type -> littlehorse.ResumeWfRunRequest - 68, // 187: littlehorse.LittleHorse.RescueThreadRun:input_type -> littlehorse.RescueThreadRunRequest - 12, // 188: littlehorse.LittleHorse.DeleteWfRun:input_type -> littlehorse.DeleteWfRunRequest - 13, // 189: littlehorse.LittleHorse.DeleteTaskDef:input_type -> littlehorse.DeleteTaskDefRequest - 15, // 190: littlehorse.LittleHorse.DeleteWfSpec:input_type -> littlehorse.DeleteWfSpecRequest - 14, // 191: littlehorse.LittleHorse.DeleteUserTaskDef:input_type -> littlehorse.DeleteUserTaskDefRequest - 16, // 192: littlehorse.LittleHorse.DeleteExternalEventDef:input_type -> littlehorse.DeleteExternalEventDefRequest - 17, // 193: littlehorse.LittleHorse.DeleteWorkflowEventDef:input_type -> littlehorse.DeleteWorkflowEventDefRequest - 139, // 194: littlehorse.LittleHorse.DeletePrincipal:input_type -> littlehorse.DeletePrincipalRequest - 11, // 195: littlehorse.LittleHorse.DeleteScheduledWfRun:input_type -> littlehorse.DeleteScheduledWfRunRequest - 69, // 196: littlehorse.LittleHorse.GetTaskDefMetricsWindow:input_type -> littlehorse.TaskDefMetricsQueryRequest - 72, // 197: littlehorse.LittleHorse.GetWfSpecMetricsWindow:input_type -> littlehorse.WfSpecMetricsQueryRequest - 70, // 198: littlehorse.LittleHorse.ListTaskDefMetrics:input_type -> littlehorse.ListTaskMetricsRequest - 73, // 199: littlehorse.LittleHorse.ListWfSpecMetrics:input_type -> littlehorse.ListWfMetricsRequest - 140, // 200: littlehorse.LittleHorse.PutTenant:input_type -> littlehorse.PutTenantRequest - 119, // 201: littlehorse.LittleHorse.GetTenant:input_type -> littlehorse.TenantId - 141, // 202: littlehorse.LittleHorse.PutPrincipal:input_type -> littlehorse.PutPrincipalRequest - 120, // 203: littlehorse.LittleHorse.GetPrincipal:input_type -> littlehorse.PrincipalId - 142, // 204: littlehorse.LittleHorse.Whoami:input_type -> google.protobuf.Empty - 142, // 205: littlehorse.LittleHorse.GetServerVersion:input_type -> google.protobuf.Empty - 143, // 206: littlehorse.LittleHorse.PutTaskDef:output_type -> littlehorse.TaskDef - 143, // 207: littlehorse.LittleHorse.GetTaskDef:output_type -> littlehorse.TaskDef - 82, // 208: littlehorse.LittleHorse.GetTaskWorkerGroup:output_type -> littlehorse.TaskWorkerGroup - 144, // 209: littlehorse.LittleHorse.PutExternalEventDef:output_type -> littlehorse.ExternalEventDef - 144, // 210: littlehorse.LittleHorse.GetExternalEventDef:output_type -> littlehorse.ExternalEventDef - 145, // 211: littlehorse.LittleHorse.PutWorkflowEventDef:output_type -> littlehorse.WorkflowEventDef - 146, // 212: littlehorse.LittleHorse.PutWfSpec:output_type -> littlehorse.WfSpec - 147, // 213: littlehorse.LittleHorse.PutMetric:output_type -> littlehorse.Metric - 146, // 214: littlehorse.LittleHorse.GetWfSpec:output_type -> littlehorse.WfSpec - 146, // 215: littlehorse.LittleHorse.GetLatestWfSpec:output_type -> littlehorse.WfSpec - 146, // 216: littlehorse.LittleHorse.MigrateWfSpec:output_type -> littlehorse.WfSpec - 148, // 217: littlehorse.LittleHorse.PutUserTaskDef:output_type -> littlehorse.UserTaskDef - 148, // 218: littlehorse.LittleHorse.GetUserTaskDef:output_type -> littlehorse.UserTaskDef - 148, // 219: littlehorse.LittleHorse.GetLatestUserTaskDef:output_type -> littlehorse.UserTaskDef - 149, // 220: littlehorse.LittleHorse.RunWf:output_type -> littlehorse.WfRun - 150, // 221: littlehorse.LittleHorse.ScheduleWf:output_type -> littlehorse.ScheduledWfRun - 79, // 222: littlehorse.LittleHorse.SearchScheduledWfRun:output_type -> littlehorse.ScheduledWfRunIdList - 150, // 223: littlehorse.LittleHorse.GetScheduledWfRun:output_type -> littlehorse.ScheduledWfRun - 149, // 224: littlehorse.LittleHorse.GetWfRun:output_type -> littlehorse.WfRun - 130, // 225: littlehorse.LittleHorse.GetUserTaskRun:output_type -> littlehorse.UserTaskRun - 142, // 226: littlehorse.LittleHorse.AssignUserTaskRun:output_type -> google.protobuf.Empty - 142, // 227: littlehorse.LittleHorse.CompleteUserTaskRun:output_type -> google.protobuf.Empty - 142, // 228: littlehorse.LittleHorse.CancelUserTaskRun:output_type -> google.protobuf.Empty - 130, // 229: littlehorse.LittleHorse.SaveUserTaskRunProgress:output_type -> littlehorse.UserTaskRun - 78, // 230: littlehorse.LittleHorse.ListUserTaskRuns:output_type -> littlehorse.UserTaskRunList - 121, // 231: littlehorse.LittleHorse.GetNodeRun:output_type -> littlehorse.NodeRun - 51, // 232: littlehorse.LittleHorse.ListNodeRuns:output_type -> littlehorse.NodeRunList - 132, // 233: littlehorse.LittleHorse.GetTaskRun:output_type -> littlehorse.TaskRun - 84, // 234: littlehorse.LittleHorse.ListTaskRuns:output_type -> littlehorse.TaskRunList - 122, // 235: littlehorse.LittleHorse.GetVariable:output_type -> littlehorse.Variable - 53, // 236: littlehorse.LittleHorse.ListVariables:output_type -> littlehorse.VariableList - 123, // 237: littlehorse.LittleHorse.PutExternalEvent:output_type -> littlehorse.ExternalEvent - 123, // 238: littlehorse.LittleHorse.GetExternalEvent:output_type -> littlehorse.ExternalEvent - 124, // 239: littlehorse.LittleHorse.AwaitWorkflowEvent:output_type -> littlehorse.WorkflowEvent - 145, // 240: littlehorse.LittleHorse.GetWorkflowEventDef:output_type -> littlehorse.WorkflowEventDef - 124, // 241: littlehorse.LittleHorse.GetWorkflowEvent:output_type -> littlehorse.WorkflowEvent - 55, // 242: littlehorse.LittleHorse.ListExternalEvents:output_type -> littlehorse.ExternalEventList - 57, // 243: littlehorse.LittleHorse.ListWorkflowEvents:output_type -> littlehorse.WorkflowEventList - 23, // 244: littlehorse.LittleHorse.SearchWfRun:output_type -> littlehorse.WfRunIdList - 27, // 245: littlehorse.LittleHorse.SearchNodeRun:output_type -> littlehorse.NodeRunIdList - 25, // 246: littlehorse.LittleHorse.SearchTaskRun:output_type -> littlehorse.TaskRunIdList - 29, // 247: littlehorse.LittleHorse.SearchUserTaskRun:output_type -> littlehorse.UserTaskRunIdList - 31, // 248: littlehorse.LittleHorse.SearchVariable:output_type -> littlehorse.VariableIdList - 47, // 249: littlehorse.LittleHorse.SearchExternalEvent:output_type -> littlehorse.ExternalEventIdList - 49, // 250: littlehorse.LittleHorse.SearchWorkflowEvent:output_type -> littlehorse.WorkflowEventIdList - 33, // 251: littlehorse.LittleHorse.SearchTaskDef:output_type -> littlehorse.TaskDefIdList - 35, // 252: littlehorse.LittleHorse.SearchUserTaskDef:output_type -> littlehorse.UserTaskDefIdList - 37, // 253: littlehorse.LittleHorse.SearchWfSpec:output_type -> littlehorse.WfSpecIdList - 39, // 254: littlehorse.LittleHorse.SearchExternalEventDef:output_type -> littlehorse.ExternalEventDefIdList - 41, // 255: littlehorse.LittleHorse.SearchWorkflowEventDef:output_type -> littlehorse.WorkflowEventDefIdList - 43, // 256: littlehorse.LittleHorse.SearchTenant:output_type -> littlehorse.TenantIdList - 45, // 257: littlehorse.LittleHorse.SearchPrincipal:output_type -> littlehorse.PrincipalIdList - 60, // 258: littlehorse.LittleHorse.RegisterTaskWorker:output_type -> littlehorse.RegisterTaskWorkerResponse - 64, // 259: littlehorse.LittleHorse.PollTask:output_type -> littlehorse.PollTaskResponse - 142, // 260: littlehorse.LittleHorse.ReportTask:output_type -> google.protobuf.Empty - 142, // 261: littlehorse.LittleHorse.StopWfRun:output_type -> google.protobuf.Empty - 142, // 262: littlehorse.LittleHorse.ResumeWfRun:output_type -> google.protobuf.Empty - 149, // 263: littlehorse.LittleHorse.RescueThreadRun:output_type -> littlehorse.WfRun - 142, // 264: littlehorse.LittleHorse.DeleteWfRun:output_type -> google.protobuf.Empty - 142, // 265: littlehorse.LittleHorse.DeleteTaskDef:output_type -> google.protobuf.Empty - 142, // 266: littlehorse.LittleHorse.DeleteWfSpec:output_type -> google.protobuf.Empty - 142, // 267: littlehorse.LittleHorse.DeleteUserTaskDef:output_type -> google.protobuf.Empty - 142, // 268: littlehorse.LittleHorse.DeleteExternalEventDef:output_type -> google.protobuf.Empty - 142, // 269: littlehorse.LittleHorse.DeleteWorkflowEventDef:output_type -> google.protobuf.Empty - 142, // 270: littlehorse.LittleHorse.DeletePrincipal:output_type -> google.protobuf.Empty - 142, // 271: littlehorse.LittleHorse.DeleteScheduledWfRun:output_type -> google.protobuf.Empty - 75, // 272: littlehorse.LittleHorse.GetTaskDefMetricsWindow:output_type -> littlehorse.TaskDefMetrics - 76, // 273: littlehorse.LittleHorse.GetWfSpecMetricsWindow:output_type -> littlehorse.WfSpecMetrics - 71, // 274: littlehorse.LittleHorse.ListTaskDefMetrics:output_type -> littlehorse.ListTaskMetricsResponse - 74, // 275: littlehorse.LittleHorse.ListWfSpecMetrics:output_type -> littlehorse.ListWfMetricsResponse - 151, // 276: littlehorse.LittleHorse.PutTenant:output_type -> littlehorse.Tenant - 151, // 277: littlehorse.LittleHorse.GetTenant:output_type -> littlehorse.Tenant - 152, // 278: littlehorse.LittleHorse.PutPrincipal:output_type -> littlehorse.Principal - 152, // 279: littlehorse.LittleHorse.GetPrincipal:output_type -> littlehorse.Principal - 152, // 280: littlehorse.LittleHorse.Whoami:output_type -> littlehorse.Principal - 87, // 281: littlehorse.LittleHorse.GetServerVersion:output_type -> littlehorse.ServerVersion - 206, // [206:282] is the sub-list for method output_type - 130, // [130:206] is the sub-list for method input_type - 130, // [130:130] is the sub-list for extension type_name - 130, // [130:130] is the sub-list for extension extendee - 0, // [0:130] is the sub-list for field type_name + 133, // 119: littlehorse.TaskWorkerGroup.id:type_name -> littlehorse.TaskWorkerGroupId + 114, // 120: littlehorse.TaskWorkerGroup.created_at:type_name -> google.protobuf.Timestamp + 93, // 121: littlehorse.TaskWorkerGroup.task_workers:type_name -> littlehorse.TaskWorkerGroup.TaskWorkersEntry + 103, // 122: littlehorse.ListTaskRunsRequest.wf_run_id:type_name -> littlehorse.WfRunId + 134, // 123: littlehorse.TaskRunList.results:type_name -> littlehorse.TaskRun + 110, // 124: littlehorse.MigrateWfSpecRequest.old_wf_spec:type_name -> littlehorse.WfSpecId + 135, // 125: littlehorse.MigrateWfSpecRequest.migration:type_name -> littlehorse.WfSpecVersionMigration + 136, // 126: littlehorse.MetricRunList.results:type_name -> littlehorse.MetricRun + 137, // 127: littlehorse.ListMetricRunRequest.metric_id:type_name -> littlehorse.MetricId + 138, // 128: littlehorse.PutWfSpecRequest.ThreadSpecsEntry.value:type_name -> littlehorse.ThreadSpec + 105, // 129: littlehorse.RunWfRequest.VariablesEntry.value:type_name -> littlehorse.VariableValue + 105, // 130: littlehorse.ScheduleWfRequest.VariablesEntry.value:type_name -> littlehorse.VariableValue + 81, // 131: littlehorse.TaskWorkerGroup.TaskWorkersEntry.value:type_name -> littlehorse.TaskWorkerMetadata + 5, // 132: littlehorse.LittleHorse.PutTaskDef:input_type -> littlehorse.PutTaskDefRequest + 108, // 133: littlehorse.LittleHorse.GetTaskDef:input_type -> littlehorse.TaskDefId + 108, // 134: littlehorse.LittleHorse.GetTaskWorkerGroup:input_type -> littlehorse.TaskDefId + 8, // 135: littlehorse.LittleHorse.PutExternalEventDef:input_type -> littlehorse.PutExternalEventDefRequest + 104, // 136: littlehorse.LittleHorse.GetExternalEventDef:input_type -> littlehorse.ExternalEventDefId + 6, // 137: littlehorse.LittleHorse.PutWorkflowEventDef:input_type -> littlehorse.PutWorkflowEventDefRequest + 3, // 138: littlehorse.LittleHorse.PutWfSpec:input_type -> littlehorse.PutWfSpecRequest + 4, // 139: littlehorse.LittleHorse.PutMetric:input_type -> littlehorse.PutMetricRequest + 110, // 140: littlehorse.LittleHorse.GetWfSpec:input_type -> littlehorse.WfSpecId + 86, // 141: littlehorse.LittleHorse.GetLatestWfSpec:input_type -> littlehorse.GetLatestWfSpecRequest + 85, // 142: littlehorse.LittleHorse.MigrateWfSpec:input_type -> littlehorse.MigrateWfSpecRequest + 7, // 143: littlehorse.LittleHorse.PutUserTaskDef:input_type -> littlehorse.PutUserTaskDefRequest + 109, // 144: littlehorse.LittleHorse.GetUserTaskDef:input_type -> littlehorse.UserTaskDefId + 2, // 145: littlehorse.LittleHorse.GetLatestUserTaskDef:input_type -> littlehorse.GetLatestUserTaskDefRequest + 18, // 146: littlehorse.LittleHorse.RunWf:input_type -> littlehorse.RunWfRequest + 19, // 147: littlehorse.LittleHorse.ScheduleWf:input_type -> littlehorse.ScheduleWfRequest + 80, // 148: littlehorse.LittleHorse.SearchScheduledWfRun:input_type -> littlehorse.SearchScheduledWfRunRequest + 107, // 149: littlehorse.LittleHorse.GetScheduledWfRun:input_type -> littlehorse.ScheduledWfRunId + 103, // 150: littlehorse.LittleHorse.GetWfRun:input_type -> littlehorse.WfRunId + 119, // 151: littlehorse.LittleHorse.GetUserTaskRun:input_type -> littlehorse.UserTaskRunId + 139, // 152: littlehorse.LittleHorse.AssignUserTaskRun:input_type -> littlehorse.AssignUserTaskRunRequest + 140, // 153: littlehorse.LittleHorse.CompleteUserTaskRun:input_type -> littlehorse.CompleteUserTaskRunRequest + 141, // 154: littlehorse.LittleHorse.CancelUserTaskRun:input_type -> littlehorse.CancelUserTaskRunRequest + 142, // 155: littlehorse.LittleHorse.SaveUserTaskRunProgress:input_type -> littlehorse.SaveUserTaskRunProgressRequest + 77, // 156: littlehorse.LittleHorse.ListUserTaskRuns:input_type -> littlehorse.ListUserTaskRunRequest + 117, // 157: littlehorse.LittleHorse.GetNodeRun:input_type -> littlehorse.NodeRunId + 50, // 158: littlehorse.LittleHorse.ListNodeRuns:input_type -> littlehorse.ListNodeRunsRequest + 116, // 159: littlehorse.LittleHorse.GetTaskRun:input_type -> littlehorse.TaskRunId + 83, // 160: littlehorse.LittleHorse.ListTaskRuns:input_type -> littlehorse.ListTaskRunsRequest + 120, // 161: littlehorse.LittleHorse.GetVariable:input_type -> littlehorse.VariableId + 52, // 162: littlehorse.LittleHorse.ListVariables:input_type -> littlehorse.ListVariablesRequest + 9, // 163: littlehorse.LittleHorse.PutExternalEvent:input_type -> littlehorse.PutExternalEventRequest + 106, // 164: littlehorse.LittleHorse.GetExternalEvent:input_type -> littlehorse.ExternalEventId + 21, // 165: littlehorse.LittleHorse.AwaitWorkflowEvent:input_type -> littlehorse.AwaitWorkflowEventRequest + 111, // 166: littlehorse.LittleHorse.GetWorkflowEventDef:input_type -> littlehorse.WorkflowEventDefId + 112, // 167: littlehorse.LittleHorse.GetWorkflowEvent:input_type -> littlehorse.WorkflowEventId + 54, // 168: littlehorse.LittleHorse.ListExternalEvents:input_type -> littlehorse.ListExternalEventsRequest + 56, // 169: littlehorse.LittleHorse.ListWorkflowEvents:input_type -> littlehorse.ListWorkflowEventsRequest + 22, // 170: littlehorse.LittleHorse.SearchWfRun:input_type -> littlehorse.SearchWfRunRequest + 26, // 171: littlehorse.LittleHorse.SearchNodeRun:input_type -> littlehorse.SearchNodeRunRequest + 24, // 172: littlehorse.LittleHorse.SearchTaskRun:input_type -> littlehorse.SearchTaskRunRequest + 28, // 173: littlehorse.LittleHorse.SearchUserTaskRun:input_type -> littlehorse.SearchUserTaskRunRequest + 30, // 174: littlehorse.LittleHorse.SearchVariable:input_type -> littlehorse.SearchVariableRequest + 46, // 175: littlehorse.LittleHorse.SearchExternalEvent:input_type -> littlehorse.SearchExternalEventRequest + 48, // 176: littlehorse.LittleHorse.SearchWorkflowEvent:input_type -> littlehorse.SearchWorkflowEventRequest + 32, // 177: littlehorse.LittleHorse.SearchTaskDef:input_type -> littlehorse.SearchTaskDefRequest + 34, // 178: littlehorse.LittleHorse.SearchUserTaskDef:input_type -> littlehorse.SearchUserTaskDefRequest + 36, // 179: littlehorse.LittleHorse.SearchWfSpec:input_type -> littlehorse.SearchWfSpecRequest + 38, // 180: littlehorse.LittleHorse.SearchExternalEventDef:input_type -> littlehorse.SearchExternalEventDefRequest + 40, // 181: littlehorse.LittleHorse.SearchWorkflowEventDef:input_type -> littlehorse.SearchWorkflowEventDefRequest + 42, // 182: littlehorse.LittleHorse.SearchTenant:input_type -> littlehorse.SearchTenantRequest + 44, // 183: littlehorse.LittleHorse.SearchPrincipal:input_type -> littlehorse.SearchPrincipalRequest + 58, // 184: littlehorse.LittleHorse.RegisterTaskWorker:input_type -> littlehorse.RegisterTaskWorkerRequest + 62, // 185: littlehorse.LittleHorse.PollTask:input_type -> littlehorse.PollTaskRequest + 65, // 186: littlehorse.LittleHorse.ReportTask:input_type -> littlehorse.ReportTaskRun + 66, // 187: littlehorse.LittleHorse.StopWfRun:input_type -> littlehorse.StopWfRunRequest + 67, // 188: littlehorse.LittleHorse.ResumeWfRun:input_type -> littlehorse.ResumeWfRunRequest + 68, // 189: littlehorse.LittleHorse.RescueThreadRun:input_type -> littlehorse.RescueThreadRunRequest + 12, // 190: littlehorse.LittleHorse.DeleteWfRun:input_type -> littlehorse.DeleteWfRunRequest + 13, // 191: littlehorse.LittleHorse.DeleteTaskDef:input_type -> littlehorse.DeleteTaskDefRequest + 15, // 192: littlehorse.LittleHorse.DeleteWfSpec:input_type -> littlehorse.DeleteWfSpecRequest + 14, // 193: littlehorse.LittleHorse.DeleteUserTaskDef:input_type -> littlehorse.DeleteUserTaskDefRequest + 16, // 194: littlehorse.LittleHorse.DeleteExternalEventDef:input_type -> littlehorse.DeleteExternalEventDefRequest + 17, // 195: littlehorse.LittleHorse.DeleteWorkflowEventDef:input_type -> littlehorse.DeleteWorkflowEventDefRequest + 143, // 196: littlehorse.LittleHorse.DeletePrincipal:input_type -> littlehorse.DeletePrincipalRequest + 11, // 197: littlehorse.LittleHorse.DeleteScheduledWfRun:input_type -> littlehorse.DeleteScheduledWfRunRequest + 69, // 198: littlehorse.LittleHorse.GetTaskDefMetricsWindow:input_type -> littlehorse.TaskDefMetricsQueryRequest + 72, // 199: littlehorse.LittleHorse.GetWfSpecMetricsWindow:input_type -> littlehorse.WfSpecMetricsQueryRequest + 70, // 200: littlehorse.LittleHorse.ListTaskDefMetrics:input_type -> littlehorse.ListTaskMetricsRequest + 73, // 201: littlehorse.LittleHorse.ListWfSpecMetrics:input_type -> littlehorse.ListWfMetricsRequest + 144, // 202: littlehorse.LittleHorse.PutTenant:input_type -> littlehorse.PutTenantRequest + 121, // 203: littlehorse.LittleHorse.GetTenant:input_type -> littlehorse.TenantId + 145, // 204: littlehorse.LittleHorse.PutPrincipal:input_type -> littlehorse.PutPrincipalRequest + 122, // 205: littlehorse.LittleHorse.GetPrincipal:input_type -> littlehorse.PrincipalId + 146, // 206: littlehorse.LittleHorse.Whoami:input_type -> google.protobuf.Empty + 146, // 207: littlehorse.LittleHorse.GetServerVersion:input_type -> google.protobuf.Empty + 89, // 208: littlehorse.LittleHorse.ListMetricRuns:input_type -> littlehorse.ListMetricRunRequest + 147, // 209: littlehorse.LittleHorse.PutTaskDef:output_type -> littlehorse.TaskDef + 147, // 210: littlehorse.LittleHorse.GetTaskDef:output_type -> littlehorse.TaskDef + 82, // 211: littlehorse.LittleHorse.GetTaskWorkerGroup:output_type -> littlehorse.TaskWorkerGroup + 148, // 212: littlehorse.LittleHorse.PutExternalEventDef:output_type -> littlehorse.ExternalEventDef + 148, // 213: littlehorse.LittleHorse.GetExternalEventDef:output_type -> littlehorse.ExternalEventDef + 149, // 214: littlehorse.LittleHorse.PutWorkflowEventDef:output_type -> littlehorse.WorkflowEventDef + 150, // 215: littlehorse.LittleHorse.PutWfSpec:output_type -> littlehorse.WfSpec + 151, // 216: littlehorse.LittleHorse.PutMetric:output_type -> littlehorse.Metric + 150, // 217: littlehorse.LittleHorse.GetWfSpec:output_type -> littlehorse.WfSpec + 150, // 218: littlehorse.LittleHorse.GetLatestWfSpec:output_type -> littlehorse.WfSpec + 150, // 219: littlehorse.LittleHorse.MigrateWfSpec:output_type -> littlehorse.WfSpec + 152, // 220: littlehorse.LittleHorse.PutUserTaskDef:output_type -> littlehorse.UserTaskDef + 152, // 221: littlehorse.LittleHorse.GetUserTaskDef:output_type -> littlehorse.UserTaskDef + 152, // 222: littlehorse.LittleHorse.GetLatestUserTaskDef:output_type -> littlehorse.UserTaskDef + 153, // 223: littlehorse.LittleHorse.RunWf:output_type -> littlehorse.WfRun + 154, // 224: littlehorse.LittleHorse.ScheduleWf:output_type -> littlehorse.ScheduledWfRun + 79, // 225: littlehorse.LittleHorse.SearchScheduledWfRun:output_type -> littlehorse.ScheduledWfRunIdList + 154, // 226: littlehorse.LittleHorse.GetScheduledWfRun:output_type -> littlehorse.ScheduledWfRun + 153, // 227: littlehorse.LittleHorse.GetWfRun:output_type -> littlehorse.WfRun + 132, // 228: littlehorse.LittleHorse.GetUserTaskRun:output_type -> littlehorse.UserTaskRun + 146, // 229: littlehorse.LittleHorse.AssignUserTaskRun:output_type -> google.protobuf.Empty + 146, // 230: littlehorse.LittleHorse.CompleteUserTaskRun:output_type -> google.protobuf.Empty + 146, // 231: littlehorse.LittleHorse.CancelUserTaskRun:output_type -> google.protobuf.Empty + 132, // 232: littlehorse.LittleHorse.SaveUserTaskRunProgress:output_type -> littlehorse.UserTaskRun + 78, // 233: littlehorse.LittleHorse.ListUserTaskRuns:output_type -> littlehorse.UserTaskRunList + 123, // 234: littlehorse.LittleHorse.GetNodeRun:output_type -> littlehorse.NodeRun + 51, // 235: littlehorse.LittleHorse.ListNodeRuns:output_type -> littlehorse.NodeRunList + 134, // 236: littlehorse.LittleHorse.GetTaskRun:output_type -> littlehorse.TaskRun + 84, // 237: littlehorse.LittleHorse.ListTaskRuns:output_type -> littlehorse.TaskRunList + 124, // 238: littlehorse.LittleHorse.GetVariable:output_type -> littlehorse.Variable + 53, // 239: littlehorse.LittleHorse.ListVariables:output_type -> littlehorse.VariableList + 125, // 240: littlehorse.LittleHorse.PutExternalEvent:output_type -> littlehorse.ExternalEvent + 125, // 241: littlehorse.LittleHorse.GetExternalEvent:output_type -> littlehorse.ExternalEvent + 126, // 242: littlehorse.LittleHorse.AwaitWorkflowEvent:output_type -> littlehorse.WorkflowEvent + 149, // 243: littlehorse.LittleHorse.GetWorkflowEventDef:output_type -> littlehorse.WorkflowEventDef + 126, // 244: littlehorse.LittleHorse.GetWorkflowEvent:output_type -> littlehorse.WorkflowEvent + 55, // 245: littlehorse.LittleHorse.ListExternalEvents:output_type -> littlehorse.ExternalEventList + 57, // 246: littlehorse.LittleHorse.ListWorkflowEvents:output_type -> littlehorse.WorkflowEventList + 23, // 247: littlehorse.LittleHorse.SearchWfRun:output_type -> littlehorse.WfRunIdList + 27, // 248: littlehorse.LittleHorse.SearchNodeRun:output_type -> littlehorse.NodeRunIdList + 25, // 249: littlehorse.LittleHorse.SearchTaskRun:output_type -> littlehorse.TaskRunIdList + 29, // 250: littlehorse.LittleHorse.SearchUserTaskRun:output_type -> littlehorse.UserTaskRunIdList + 31, // 251: littlehorse.LittleHorse.SearchVariable:output_type -> littlehorse.VariableIdList + 47, // 252: littlehorse.LittleHorse.SearchExternalEvent:output_type -> littlehorse.ExternalEventIdList + 49, // 253: littlehorse.LittleHorse.SearchWorkflowEvent:output_type -> littlehorse.WorkflowEventIdList + 33, // 254: littlehorse.LittleHorse.SearchTaskDef:output_type -> littlehorse.TaskDefIdList + 35, // 255: littlehorse.LittleHorse.SearchUserTaskDef:output_type -> littlehorse.UserTaskDefIdList + 37, // 256: littlehorse.LittleHorse.SearchWfSpec:output_type -> littlehorse.WfSpecIdList + 39, // 257: littlehorse.LittleHorse.SearchExternalEventDef:output_type -> littlehorse.ExternalEventDefIdList + 41, // 258: littlehorse.LittleHorse.SearchWorkflowEventDef:output_type -> littlehorse.WorkflowEventDefIdList + 43, // 259: littlehorse.LittleHorse.SearchTenant:output_type -> littlehorse.TenantIdList + 45, // 260: littlehorse.LittleHorse.SearchPrincipal:output_type -> littlehorse.PrincipalIdList + 60, // 261: littlehorse.LittleHorse.RegisterTaskWorker:output_type -> littlehorse.RegisterTaskWorkerResponse + 64, // 262: littlehorse.LittleHorse.PollTask:output_type -> littlehorse.PollTaskResponse + 146, // 263: littlehorse.LittleHorse.ReportTask:output_type -> google.protobuf.Empty + 146, // 264: littlehorse.LittleHorse.StopWfRun:output_type -> google.protobuf.Empty + 146, // 265: littlehorse.LittleHorse.ResumeWfRun:output_type -> google.protobuf.Empty + 153, // 266: littlehorse.LittleHorse.RescueThreadRun:output_type -> littlehorse.WfRun + 146, // 267: littlehorse.LittleHorse.DeleteWfRun:output_type -> google.protobuf.Empty + 146, // 268: littlehorse.LittleHorse.DeleteTaskDef:output_type -> google.protobuf.Empty + 146, // 269: littlehorse.LittleHorse.DeleteWfSpec:output_type -> google.protobuf.Empty + 146, // 270: littlehorse.LittleHorse.DeleteUserTaskDef:output_type -> google.protobuf.Empty + 146, // 271: littlehorse.LittleHorse.DeleteExternalEventDef:output_type -> google.protobuf.Empty + 146, // 272: littlehorse.LittleHorse.DeleteWorkflowEventDef:output_type -> google.protobuf.Empty + 146, // 273: littlehorse.LittleHorse.DeletePrincipal:output_type -> google.protobuf.Empty + 146, // 274: littlehorse.LittleHorse.DeleteScheduledWfRun:output_type -> google.protobuf.Empty + 75, // 275: littlehorse.LittleHorse.GetTaskDefMetricsWindow:output_type -> littlehorse.TaskDefMetrics + 76, // 276: littlehorse.LittleHorse.GetWfSpecMetricsWindow:output_type -> littlehorse.WfSpecMetrics + 71, // 277: littlehorse.LittleHorse.ListTaskDefMetrics:output_type -> littlehorse.ListTaskMetricsResponse + 74, // 278: littlehorse.LittleHorse.ListWfSpecMetrics:output_type -> littlehorse.ListWfMetricsResponse + 155, // 279: littlehorse.LittleHorse.PutTenant:output_type -> littlehorse.Tenant + 155, // 280: littlehorse.LittleHorse.GetTenant:output_type -> littlehorse.Tenant + 156, // 281: littlehorse.LittleHorse.PutPrincipal:output_type -> littlehorse.Principal + 156, // 282: littlehorse.LittleHorse.GetPrincipal:output_type -> littlehorse.Principal + 156, // 283: littlehorse.LittleHorse.Whoami:output_type -> littlehorse.Principal + 87, // 284: littlehorse.LittleHorse.GetServerVersion:output_type -> littlehorse.ServerVersion + 88, // 285: littlehorse.LittleHorse.ListMetricRuns:output_type -> littlehorse.MetricRunList + 209, // [209:286] is the sub-list for method output_type + 132, // [132:209] is the sub-list for method input_type + 132, // [132:132] is the sub-list for extension type_name + 132, // [132:132] is the sub-list for extension extendee + 0, // [0:132] is the sub-list for field type_name } func init() { file_service_proto_init() } @@ -9086,6 +9202,30 @@ func file_service_proto_init() { return nil } } + file_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricRunList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListMetricRunRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_service_proto_msgTypes[1].OneofWrappers = []interface{}{} file_service_proto_msgTypes[3].OneofWrappers = []interface{}{} @@ -9151,7 +9291,7 @@ func file_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_proto_rawDesc, NumEnums: 2, - NumMessages: 90, + NumMessages: 92, NumExtensions: 0, NumServices: 1, }, diff --git a/sdk-go/lhproto/service_grpc.pb.go b/sdk-go/lhproto/service_grpc.pb.go index 83823b570..adf16b5a8 100644 --- a/sdk-go/lhproto/service_grpc.pb.go +++ b/sdk-go/lhproto/service_grpc.pb.go @@ -96,6 +96,7 @@ const ( LittleHorse_GetPrincipal_FullMethodName = "/littlehorse.LittleHorse/GetPrincipal" LittleHorse_Whoami_FullMethodName = "/littlehorse.LittleHorse/Whoami" LittleHorse_GetServerVersion_FullMethodName = "/littlehorse.LittleHorse/GetServerVersion" + LittleHorse_ListMetricRuns_FullMethodName = "/littlehorse.LittleHorse/ListMetricRuns" ) // LittleHorseClient is the client API for LittleHorse service. @@ -308,6 +309,7 @@ type LittleHorseClient interface { Whoami(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Principal, error) // Gets the version of the LH Server. GetServerVersion(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ServerVersion, error) + ListMetricRuns(ctx context.Context, in *ListMetricRunRequest, opts ...grpc.CallOption) (*MetricRunList, error) } type littleHorseClient struct { @@ -1024,6 +1026,15 @@ func (c *littleHorseClient) GetServerVersion(ctx context.Context, in *emptypb.Em return out, nil } +func (c *littleHorseClient) ListMetricRuns(ctx context.Context, in *ListMetricRunRequest, opts ...grpc.CallOption) (*MetricRunList, error) { + out := new(MetricRunList) + err := c.cc.Invoke(ctx, LittleHorse_ListMetricRuns_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // LittleHorseServer is the server API for LittleHorse service. // All implementations must embed UnimplementedLittleHorseServer // for forward compatibility @@ -1234,6 +1245,7 @@ type LittleHorseServer interface { Whoami(context.Context, *emptypb.Empty) (*Principal, error) // Gets the version of the LH Server. GetServerVersion(context.Context, *emptypb.Empty) (*ServerVersion, error) + ListMetricRuns(context.Context, *ListMetricRunRequest) (*MetricRunList, error) mustEmbedUnimplementedLittleHorseServer() } @@ -1469,6 +1481,9 @@ func (UnimplementedLittleHorseServer) Whoami(context.Context, *emptypb.Empty) (* func (UnimplementedLittleHorseServer) GetServerVersion(context.Context, *emptypb.Empty) (*ServerVersion, error) { return nil, status.Errorf(codes.Unimplemented, "method GetServerVersion not implemented") } +func (UnimplementedLittleHorseServer) ListMetricRuns(context.Context, *ListMetricRunRequest) (*MetricRunList, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListMetricRuns not implemented") +} func (UnimplementedLittleHorseServer) mustEmbedUnimplementedLittleHorseServer() {} // UnsafeLittleHorseServer may be embedded to opt out of forward compatibility for this service. @@ -2858,6 +2873,24 @@ func _LittleHorse_GetServerVersion_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _LittleHorse_ListMetricRuns_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListMetricRunRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LittleHorseServer).ListMetricRuns(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: LittleHorse_ListMetricRuns_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LittleHorseServer).ListMetricRuns(ctx, req.(*ListMetricRunRequest)) + } + return interceptor(ctx, in, info, handler) +} + // LittleHorse_ServiceDesc is the grpc.ServiceDesc for LittleHorse service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -3165,6 +3198,10 @@ var LittleHorse_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetServerVersion", Handler: _LittleHorse_GetServerVersion_Handler, }, + { + MethodName: "ListMetricRuns", + Handler: _LittleHorse_ListMetricRuns_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequest.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequest.java new file mode 100644 index 000000000..68ac929d3 --- /dev/null +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequest.java @@ -0,0 +1,586 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto + +package io.littlehorse.sdk.common.proto; + +/** + * Protobuf type {@code littlehorse.ListMetricRunRequest} + */ +public final class ListMetricRunRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:littlehorse.ListMetricRunRequest) + ListMetricRunRequestOrBuilder { +private static final long serialVersionUID = 0L; + // Use ListMetricRunRequest.newBuilder() to construct. + private ListMetricRunRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ListMetricRunRequest() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ListMetricRunRequest(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_ListMetricRunRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_ListMetricRunRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.littlehorse.sdk.common.proto.ListMetricRunRequest.class, io.littlehorse.sdk.common.proto.ListMetricRunRequest.Builder.class); + } + + public static final int METRIC_ID_FIELD_NUMBER = 1; + private io.littlehorse.sdk.common.proto.MetricId metricId_; + /** + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + @java.lang.Override + public boolean hasMetricId() { + return metricId_ != null; + } + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricId getMetricId() { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (metricId_ != null) { + output.writeMessage(1, getMetricId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (metricId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getMetricId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof io.littlehorse.sdk.common.proto.ListMetricRunRequest)) { + return super.equals(obj); + } + io.littlehorse.sdk.common.proto.ListMetricRunRequest other = (io.littlehorse.sdk.common.proto.ListMetricRunRequest) obj; + + if (hasMetricId() != other.hasMetricId()) return false; + if (hasMetricId()) { + if (!getMetricId() + .equals(other.getMetricId())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasMetricId()) { + hash = (37 * hash) + METRIC_ID_FIELD_NUMBER; + hash = (53 * hash) + getMetricId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(io.littlehorse.sdk.common.proto.ListMetricRunRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code littlehorse.ListMetricRunRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:littlehorse.ListMetricRunRequest) + io.littlehorse.sdk.common.proto.ListMetricRunRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_ListMetricRunRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_ListMetricRunRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.littlehorse.sdk.common.proto.ListMetricRunRequest.class, io.littlehorse.sdk.common.proto.ListMetricRunRequest.Builder.class); + } + + // Construct using io.littlehorse.sdk.common.proto.ListMetricRunRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + metricId_ = null; + if (metricIdBuilder_ != null) { + metricIdBuilder_.dispose(); + metricIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_ListMetricRunRequest_descriptor; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.ListMetricRunRequest getDefaultInstanceForType() { + return io.littlehorse.sdk.common.proto.ListMetricRunRequest.getDefaultInstance(); + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.ListMetricRunRequest build() { + io.littlehorse.sdk.common.proto.ListMetricRunRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.ListMetricRunRequest buildPartial() { + io.littlehorse.sdk.common.proto.ListMetricRunRequest result = new io.littlehorse.sdk.common.proto.ListMetricRunRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(io.littlehorse.sdk.common.proto.ListMetricRunRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.metricId_ = metricIdBuilder_ == null + ? metricId_ + : metricIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof io.littlehorse.sdk.common.proto.ListMetricRunRequest) { + return mergeFrom((io.littlehorse.sdk.common.proto.ListMetricRunRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(io.littlehorse.sdk.common.proto.ListMetricRunRequest other) { + if (other == io.littlehorse.sdk.common.proto.ListMetricRunRequest.getDefaultInstance()) return this; + if (other.hasMetricId()) { + mergeMetricId(other.getMetricId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getMetricIdFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private io.littlehorse.sdk.common.proto.MetricId metricId_; + private com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> metricIdBuilder_; + /** + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + public boolean hasMetricId() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + public io.littlehorse.sdk.common.proto.MetricId getMetricId() { + if (metricIdBuilder_ == null) { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } else { + return metricIdBuilder_.getMessage(); + } + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder setMetricId(io.littlehorse.sdk.common.proto.MetricId value) { + if (metricIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + metricId_ = value; + } else { + metricIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder setMetricId( + io.littlehorse.sdk.common.proto.MetricId.Builder builderForValue) { + if (metricIdBuilder_ == null) { + metricId_ = builderForValue.build(); + } else { + metricIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder mergeMetricId(io.littlehorse.sdk.common.proto.MetricId value) { + if (metricIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + metricId_ != null && + metricId_ != io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance()) { + getMetricIdBuilder().mergeFrom(value); + } else { + metricId_ = value; + } + } else { + metricIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder clearMetricId() { + bitField0_ = (bitField0_ & ~0x00000001); + metricId_ = null; + if (metricIdBuilder_ != null) { + metricIdBuilder_.dispose(); + metricIdBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public io.littlehorse.sdk.common.proto.MetricId.Builder getMetricIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getMetricIdFieldBuilder().getBuilder(); + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { + if (metricIdBuilder_ != null) { + return metricIdBuilder_.getMessageOrBuilder(); + } else { + return metricId_ == null ? + io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> + getMetricIdFieldBuilder() { + if (metricIdBuilder_ == null) { + metricIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder>( + getMetricId(), + getParentForChildren(), + isClean()); + metricId_ = null; + } + return metricIdBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:littlehorse.ListMetricRunRequest) + } + + // @@protoc_insertion_point(class_scope:littlehorse.ListMetricRunRequest) + private static final io.littlehorse.sdk.common.proto.ListMetricRunRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new io.littlehorse.sdk.common.proto.ListMetricRunRequest(); + } + + public static io.littlehorse.sdk.common.proto.ListMetricRunRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ListMetricRunRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.ListMetricRunRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequestOrBuilder.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequestOrBuilder.java new file mode 100644 index 000000000..679d5a963 --- /dev/null +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/ListMetricRunRequestOrBuilder.java @@ -0,0 +1,24 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto + +package io.littlehorse.sdk.common.proto; + +public interface ListMetricRunRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:littlehorse.ListMetricRunRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + boolean hasMetricId(); + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + io.littlehorse.sdk.common.proto.MetricId getMetricId(); + /** + * .littlehorse.MetricId metric_id = 1; + */ + io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder(); +} diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/LittleHorseGrpc.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/LittleHorseGrpc.java index 5fd213529..d7f625e0e 100644 --- a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/LittleHorseGrpc.java +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/LittleHorseGrpc.java @@ -2371,6 +2371,37 @@ io.littlehorse.sdk.common.proto.ServerVersion> getGetServerVersionMethod() { return getGetServerVersionMethod; } + private static volatile io.grpc.MethodDescriptor getListMetricRunsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "ListMetricRuns", + requestType = io.littlehorse.sdk.common.proto.ListMetricRunRequest.class, + responseType = io.littlehorse.sdk.common.proto.MetricRunList.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getListMetricRunsMethod() { + io.grpc.MethodDescriptor getListMetricRunsMethod; + if ((getListMetricRunsMethod = LittleHorseGrpc.getListMetricRunsMethod) == null) { + synchronized (LittleHorseGrpc.class) { + if ((getListMetricRunsMethod = LittleHorseGrpc.getListMetricRunsMethod) == null) { + LittleHorseGrpc.getListMetricRunsMethod = getListMetricRunsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListMetricRuns")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + io.littlehorse.sdk.common.proto.ListMetricRunRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + io.littlehorse.sdk.common.proto.MetricRunList.getDefaultInstance())) + .setSchemaDescriptor(new LittleHorseMethodDescriptorSupplier("ListMetricRuns")) + .build(); + } + } + } + return getListMetricRunsMethod; + } + /** * Creates a new async stub that supports all call types for the service */ @@ -3217,6 +3248,13 @@ default void getServerVersion(com.google.protobuf.Empty request, io.grpc.stub.StreamObserver responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetServerVersionMethod(), responseObserver); } + + /** + */ + default void listMetricRuns(io.littlehorse.sdk.common.proto.ListMetricRunRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListMetricRunsMethod(), responseObserver); + } } /** @@ -4120,6 +4158,14 @@ public void getServerVersion(com.google.protobuf.Empty request, io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetServerVersionMethod(), getCallOptions()), request, responseObserver); } + + /** + */ + public void listMetricRuns(io.littlehorse.sdk.common.proto.ListMetricRunRequest request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getListMetricRunsMethod(), getCallOptions()), request, responseObserver); + } } /** @@ -4925,6 +4971,13 @@ public io.littlehorse.sdk.common.proto.ServerVersion getServerVersion(com.google return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetServerVersionMethod(), getCallOptions(), request); } + + /** + */ + public io.littlehorse.sdk.common.proto.MetricRunList listMetricRuns(io.littlehorse.sdk.common.proto.ListMetricRunRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getListMetricRunsMethod(), getCallOptions(), request); + } } /** @@ -5805,6 +5858,14 @@ public com.google.common.util.concurrent.ListenableFuture listMetricRuns( + io.littlehorse.sdk.common.proto.ListMetricRunRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getListMetricRunsMethod(), getCallOptions()), request); + } } private static final int METHODID_PUT_TASK_DEF = 0; @@ -5882,7 +5943,8 @@ public com.google.common.util.concurrent.ListenableFuture implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -6201,6 +6263,10 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv serviceImpl.getServerVersion((com.google.protobuf.Empty) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_LIST_METRIC_RUNS: + serviceImpl.listMetricRuns((io.littlehorse.sdk.common.proto.ListMetricRunRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; default: throw new AssertionError(); } @@ -6754,6 +6820,13 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser com.google.protobuf.Empty, io.littlehorse.sdk.common.proto.ServerVersion>( service, METHODID_GET_SERVER_VERSION))) + .addMethod( + getListMetricRunsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + io.littlehorse.sdk.common.proto.ListMetricRunRequest, + io.littlehorse.sdk.common.proto.MetricRunList>( + service, METHODID_LIST_METRIC_RUNS))) .build(); } @@ -6878,6 +6951,7 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getGetPrincipalMethod()) .addMethod(getWhoamiMethod()) .addMethod(getGetServerVersionMethod()) + .addMethod(getListMetricRunsMethod()) .build(); } } diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunList.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunList.java new file mode 100644 index 000000000..41f36e0a5 --- /dev/null +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunList.java @@ -0,0 +1,759 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto + +package io.littlehorse.sdk.common.proto; + +/** + * Protobuf type {@code littlehorse.MetricRunList} + */ +public final class MetricRunList extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:littlehorse.MetricRunList) + MetricRunListOrBuilder { +private static final long serialVersionUID = 0L; + // Use MetricRunList.newBuilder() to construct. + private MetricRunList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MetricRunList() { + results_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MetricRunList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_MetricRunList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_MetricRunList_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.littlehorse.sdk.common.proto.MetricRunList.class, io.littlehorse.sdk.common.proto.MetricRunList.Builder.class); + } + + public static final int RESULTS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List results_; + /** + * repeated .littlehorse.MetricRun results = 1; + */ + @java.lang.Override + public java.util.List getResultsList() { + return results_; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + @java.lang.Override + public java.util.List + getResultsOrBuilderList() { + return results_; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + @java.lang.Override + public int getResultsCount() { + return results_.size(); + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRun getResults(int index) { + return results_.get(index); + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRunOrBuilder getResultsOrBuilder( + int index) { + return results_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < results_.size(); i++) { + output.writeMessage(1, results_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < results_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, results_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof io.littlehorse.sdk.common.proto.MetricRunList)) { + return super.equals(obj); + } + io.littlehorse.sdk.common.proto.MetricRunList other = (io.littlehorse.sdk.common.proto.MetricRunList) obj; + + if (!getResultsList() + .equals(other.getResultsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getResultsCount() > 0) { + hash = (37 * hash) + RESULTS_FIELD_NUMBER; + hash = (53 * hash) + getResultsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static io.littlehorse.sdk.common.proto.MetricRunList parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static io.littlehorse.sdk.common.proto.MetricRunList parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static io.littlehorse.sdk.common.proto.MetricRunList parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(io.littlehorse.sdk.common.proto.MetricRunList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code littlehorse.MetricRunList} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:littlehorse.MetricRunList) + io.littlehorse.sdk.common.proto.MetricRunListOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_MetricRunList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_MetricRunList_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.littlehorse.sdk.common.proto.MetricRunList.class, io.littlehorse.sdk.common.proto.MetricRunList.Builder.class); + } + + // Construct using io.littlehorse.sdk.common.proto.MetricRunList.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + } else { + results_ = null; + resultsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return io.littlehorse.sdk.common.proto.Service.internal_static_littlehorse_MetricRunList_descriptor; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRunList getDefaultInstanceForType() { + return io.littlehorse.sdk.common.proto.MetricRunList.getDefaultInstance(); + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRunList build() { + io.littlehorse.sdk.common.proto.MetricRunList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRunList buildPartial() { + io.littlehorse.sdk.common.proto.MetricRunList result = new io.littlehorse.sdk.common.proto.MetricRunList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(io.littlehorse.sdk.common.proto.MetricRunList result) { + if (resultsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + results_ = java.util.Collections.unmodifiableList(results_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.results_ = results_; + } else { + result.results_ = resultsBuilder_.build(); + } + } + + private void buildPartial0(io.littlehorse.sdk.common.proto.MetricRunList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof io.littlehorse.sdk.common.proto.MetricRunList) { + return mergeFrom((io.littlehorse.sdk.common.proto.MetricRunList)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(io.littlehorse.sdk.common.proto.MetricRunList other) { + if (other == io.littlehorse.sdk.common.proto.MetricRunList.getDefaultInstance()) return this; + if (resultsBuilder_ == null) { + if (!other.results_.isEmpty()) { + if (results_.isEmpty()) { + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureResultsIsMutable(); + results_.addAll(other.results_); + } + onChanged(); + } + } else { + if (!other.results_.isEmpty()) { + if (resultsBuilder_.isEmpty()) { + resultsBuilder_.dispose(); + resultsBuilder_ = null; + results_ = other.results_; + bitField0_ = (bitField0_ & ~0x00000001); + resultsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getResultsFieldBuilder() : null; + } else { + resultsBuilder_.addAllMessages(other.results_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + io.littlehorse.sdk.common.proto.MetricRun m = + input.readMessage( + io.littlehorse.sdk.common.proto.MetricRun.parser(), + extensionRegistry); + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(m); + } else { + resultsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List results_ = + java.util.Collections.emptyList(); + private void ensureResultsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + results_ = new java.util.ArrayList(results_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricRun, io.littlehorse.sdk.common.proto.MetricRun.Builder, io.littlehorse.sdk.common.proto.MetricRunOrBuilder> resultsBuilder_; + + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public java.util.List getResultsList() { + if (resultsBuilder_ == null) { + return java.util.Collections.unmodifiableList(results_); + } else { + return resultsBuilder_.getMessageList(); + } + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public int getResultsCount() { + if (resultsBuilder_ == null) { + return results_.size(); + } else { + return resultsBuilder_.getCount(); + } + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public io.littlehorse.sdk.common.proto.MetricRun getResults(int index) { + if (resultsBuilder_ == null) { + return results_.get(index); + } else { + return resultsBuilder_.getMessage(index); + } + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder setResults( + int index, io.littlehorse.sdk.common.proto.MetricRun value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.set(index, value); + onChanged(); + } else { + resultsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder setResults( + int index, io.littlehorse.sdk.common.proto.MetricRun.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.set(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder addResults(io.littlehorse.sdk.common.proto.MetricRun value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(value); + onChanged(); + } else { + resultsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder addResults( + int index, io.littlehorse.sdk.common.proto.MetricRun value) { + if (resultsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureResultsIsMutable(); + results_.add(index, value); + onChanged(); + } else { + resultsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder addResults( + io.littlehorse.sdk.common.proto.MetricRun.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder addResults( + int index, io.littlehorse.sdk.common.proto.MetricRun.Builder builderForValue) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.add(index, builderForValue.build()); + onChanged(); + } else { + resultsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder addAllResults( + java.lang.Iterable values) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, results_); + onChanged(); + } else { + resultsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder clearResults() { + if (resultsBuilder_ == null) { + results_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + resultsBuilder_.clear(); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public Builder removeResults(int index) { + if (resultsBuilder_ == null) { + ensureResultsIsMutable(); + results_.remove(index); + onChanged(); + } else { + resultsBuilder_.remove(index); + } + return this; + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public io.littlehorse.sdk.common.proto.MetricRun.Builder getResultsBuilder( + int index) { + return getResultsFieldBuilder().getBuilder(index); + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public io.littlehorse.sdk.common.proto.MetricRunOrBuilder getResultsOrBuilder( + int index) { + if (resultsBuilder_ == null) { + return results_.get(index); } else { + return resultsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public java.util.List + getResultsOrBuilderList() { + if (resultsBuilder_ != null) { + return resultsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(results_); + } + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public io.littlehorse.sdk.common.proto.MetricRun.Builder addResultsBuilder() { + return getResultsFieldBuilder().addBuilder( + io.littlehorse.sdk.common.proto.MetricRun.getDefaultInstance()); + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public io.littlehorse.sdk.common.proto.MetricRun.Builder addResultsBuilder( + int index) { + return getResultsFieldBuilder().addBuilder( + index, io.littlehorse.sdk.common.proto.MetricRun.getDefaultInstance()); + } + /** + * repeated .littlehorse.MetricRun results = 1; + */ + public java.util.List + getResultsBuilderList() { + return getResultsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricRun, io.littlehorse.sdk.common.proto.MetricRun.Builder, io.littlehorse.sdk.common.proto.MetricRunOrBuilder> + getResultsFieldBuilder() { + if (resultsBuilder_ == null) { + resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricRun, io.littlehorse.sdk.common.proto.MetricRun.Builder, io.littlehorse.sdk.common.proto.MetricRunOrBuilder>( + results_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + results_ = null; + } + return resultsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:littlehorse.MetricRunList) + } + + // @@protoc_insertion_point(class_scope:littlehorse.MetricRunList) + private static final io.littlehorse.sdk.common.proto.MetricRunList DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new io.littlehorse.sdk.common.proto.MetricRunList(); + } + + public static io.littlehorse.sdk.common.proto.MetricRunList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MetricRunList parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricRunList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunListOrBuilder.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunListOrBuilder.java new file mode 100644 index 000000000..b9bfb4ad6 --- /dev/null +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/MetricRunListOrBuilder.java @@ -0,0 +1,33 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service.proto + +package io.littlehorse.sdk.common.proto; + +public interface MetricRunListOrBuilder extends + // @@protoc_insertion_point(interface_extends:littlehorse.MetricRunList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .littlehorse.MetricRun results = 1; + */ + java.util.List + getResultsList(); + /** + * repeated .littlehorse.MetricRun results = 1; + */ + io.littlehorse.sdk.common.proto.MetricRun getResults(int index); + /** + * repeated .littlehorse.MetricRun results = 1; + */ + int getResultsCount(); + /** + * repeated .littlehorse.MetricRun results = 1; + */ + java.util.List + getResultsOrBuilderList(); + /** + * repeated .littlehorse.MetricRun results = 1; + */ + io.littlehorse.sdk.common.proto.MetricRunOrBuilder getResultsOrBuilder( + int index); +} diff --git a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/Service.java b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/Service.java index 283fd5ea6..4a922b6f0 100644 --- a/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/Service.java +++ b/sdk-java/src/main/java/io/littlehorse/sdk/common/proto/Service.java @@ -464,6 +464,16 @@ public static void registerAllExtensions( static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_littlehorse_ServerVersion_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_littlehorse_MetricRunList_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_littlehorse_MetricRunList_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_littlehorse_ListMetricRunRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_littlehorse_ListMetricRunRequest_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -812,168 +822,173 @@ public static void registerAllExtensions( "ion\022\025\n\rmajor_version\030\001 \001(\005\022\025\n\rminor_vers" + "ion\030\002 \001(\005\022\025\n\rpatch_version\030\003 \001(\005\022#\n\026pre_" + "release_identifier\030\004 \001(\tH\000\210\001\001B\031\n\027_pre_re" + - "lease_identifier*P\n\021AllowedUpdateType\022\017\n" + - "\013ALL_UPDATES\020\000\022\032\n\026MINOR_REVISION_UPDATES" + - "\020\001\022\016\n\nNO_UPDATES\020\0022\3610\n\013LittleHorse\022D\n\nPu" + - "tTaskDef\022\036.littlehorse.PutTaskDefRequest" + - "\032\024.littlehorse.TaskDef\"\000\022<\n\nGetTaskDef\022\026" + - ".littlehorse.TaskDefId\032\024.littlehorse.Tas" + - "kDef\"\000\022L\n\022GetTaskWorkerGroup\022\026.littlehor" + - "se.TaskDefId\032\034.littlehorse.TaskWorkerGro" + - "up\"\000\022_\n\023PutExternalEventDef\022\'.littlehors" + - "e.PutExternalEventDefRequest\032\035.littlehor" + - "se.ExternalEventDef\"\000\022W\n\023GetExternalEven" + - "tDef\022\037.littlehorse.ExternalEventDefId\032\035." + - "littlehorse.ExternalEventDef\"\000\022_\n\023PutWor" + - "kflowEventDef\022\'.littlehorse.PutWorkflowE" + - "ventDefRequest\032\035.littlehorse.WorkflowEve" + - "ntDef\"\000\022A\n\tPutWfSpec\022\035.littlehorse.PutWf" + - "SpecRequest\032\023.littlehorse.WfSpec\"\000\022A\n\tPu" + - "tMetric\022\035.littlehorse.PutMetricRequest\032\023" + - ".littlehorse.Metric\"\000\0229\n\tGetWfSpec\022\025.lit" + - "tlehorse.WfSpecId\032\023.littlehorse.WfSpec\"\000" + - "\022M\n\017GetLatestWfSpec\022#.littlehorse.GetLat" + - "estWfSpecRequest\032\023.littlehorse.WfSpec\"\000\022" + - "I\n\rMigrateWfSpec\022!.littlehorse.MigrateWf" + - "SpecRequest\032\023.littlehorse.WfSpec\"\000\022P\n\016Pu" + - "tUserTaskDef\022\".littlehorse.PutUserTaskDe" + - "fRequest\032\030.littlehorse.UserTaskDef\"\000\022H\n\016" + - "GetUserTaskDef\022\032.littlehorse.UserTaskDef" + - "Id\032\030.littlehorse.UserTaskDef\"\000\022\\\n\024GetLat" + - "estUserTaskDef\022(.littlehorse.GetLatestUs" + - "erTaskDefRequest\032\030.littlehorse.UserTaskD" + - "ef\"\000\0228\n\005RunWf\022\031.littlehorse.RunWfRequest" + - "\032\022.littlehorse.WfRun\"\000\022K\n\nScheduleWf\022\036.l" + - "ittlehorse.ScheduleWfRequest\032\033.littlehor" + - "se.ScheduledWfRun\"\000\022e\n\024SearchScheduledWf" + - "Run\022(.littlehorse.SearchScheduledWfRunRe" + - "quest\032!.littlehorse.ScheduledWfRunIdList" + - "\"\000\022Q\n\021GetScheduledWfRun\022\035.littlehorse.Sc" + - "heduledWfRunId\032\033.littlehorse.ScheduledWf" + - "Run\"\000\0226\n\010GetWfRun\022\024.littlehorse.WfRunId\032" + - "\022.littlehorse.WfRun\"\000\022H\n\016GetUserTaskRun\022" + - "\032.littlehorse.UserTaskRunId\032\030.littlehors" + - "e.UserTaskRun\"\000\022T\n\021AssignUserTaskRun\022%.l" + - "ittlehorse.AssignUserTaskRunRequest\032\026.go" + - "ogle.protobuf.Empty\"\000\022X\n\023CompleteUserTas" + - "kRun\022\'.littlehorse.CompleteUserTaskRunRe" + - "quest\032\026.google.protobuf.Empty\"\000\022T\n\021Cance" + - "lUserTaskRun\022%.littlehorse.CancelUserTas" + - "kRunRequest\032\026.google.protobuf.Empty\"\000\022b\n" + - "\027SaveUserTaskRunProgress\022+.littlehorse.S" + - "aveUserTaskRunProgressRequest\032\030.littleho" + - "rse.UserTaskRun\"\000\022W\n\020ListUserTaskRuns\022#." + - "littlehorse.ListUserTaskRunRequest\032\034.lit" + - "tlehorse.UserTaskRunList\"\000\022<\n\nGetNodeRun" + - "\022\026.littlehorse.NodeRunId\032\024.littlehorse.N" + - "odeRun\"\000\022L\n\014ListNodeRuns\022 .littlehorse.L" + - "istNodeRunsRequest\032\030.littlehorse.NodeRun" + - "List\"\000\022<\n\nGetTaskRun\022\026.littlehorse.TaskR" + - "unId\032\024.littlehorse.TaskRun\"\000\022L\n\014ListTask" + - "Runs\022 .littlehorse.ListTaskRunsRequest\032\030" + - ".littlehorse.TaskRunList\"\000\022?\n\013GetVariabl" + - "e\022\027.littlehorse.VariableId\032\025.littlehorse", - ".Variable\"\000\022O\n\rListVariables\022!.littlehor" + - "se.ListVariablesRequest\032\031.littlehorse.Va" + - "riableList\"\000\022V\n\020PutExternalEvent\022$.littl" + - "ehorse.PutExternalEventRequest\032\032.littleh" + - "orse.ExternalEvent\"\000\022N\n\020GetExternalEvent" + - "\022\034.littlehorse.ExternalEventId\032\032.littleh" + - "orse.ExternalEvent\"\000\022Z\n\022AwaitWorkflowEve" + - "nt\022&.littlehorse.AwaitWorkflowEventReque" + - "st\032\032.littlehorse.WorkflowEvent\"\000\022W\n\023GetW" + - "orkflowEventDef\022\037.littlehorse.WorkflowEv" + - "entDefId\032\035.littlehorse.WorkflowEventDef\"" + - "\000\022N\n\020GetWorkflowEvent\022\034.littlehorse.Work" + - "flowEventId\032\032.littlehorse.WorkflowEvent\"" + - "\000\022^\n\022ListExternalEvents\022&.littlehorse.Li" + - "stExternalEventsRequest\032\036.littlehorse.Ex" + - "ternalEventList\"\000\022^\n\022ListWorkflowEvents\022" + - "&.littlehorse.ListWorkflowEventsRequest\032" + - "\036.littlehorse.WorkflowEventList\"\000\022J\n\013Sea" + - "rchWfRun\022\037.littlehorse.SearchWfRunReques" + - "t\032\030.littlehorse.WfRunIdList\"\000\022P\n\rSearchN" + - "odeRun\022!.littlehorse.SearchNodeRunReques" + - "t\032\032.littlehorse.NodeRunIdList\"\000\022P\n\rSearc" + - "hTaskRun\022!.littlehorse.SearchTaskRunRequ" + - "est\032\032.littlehorse.TaskRunIdList\"\000\022\\\n\021Sea" + - "rchUserTaskRun\022%.littlehorse.SearchUserT" + - "askRunRequest\032\036.littlehorse.UserTaskRunI" + - "dList\"\000\022S\n\016SearchVariable\022\".littlehorse." + - "SearchVariableRequest\032\033.littlehorse.Vari" + - "ableIdList\"\000\022b\n\023SearchExternalEvent\022\'.li" + - "ttlehorse.SearchExternalEventRequest\032 .l" + - "ittlehorse.ExternalEventIdList\"\000\022b\n\023Sear" + - "chWorkflowEvent\022\'.littlehorse.SearchWork" + - "flowEventRequest\032 .littlehorse.WorkflowE" + - "ventIdList\"\000\022P\n\rSearchTaskDef\022!.littleho" + - "rse.SearchTaskDefRequest\032\032.littlehorse.T" + - "askDefIdList\"\000\022\\\n\021SearchUserTaskDef\022%.li" + - "ttlehorse.SearchUserTaskDefRequest\032\036.lit" + - "tlehorse.UserTaskDefIdList\"\000\022M\n\014SearchWf" + - "Spec\022 .littlehorse.SearchWfSpecRequest\032\031" + - ".littlehorse.WfSpecIdList\"\000\022k\n\026SearchExt" + - "ernalEventDef\022*.littlehorse.SearchExtern" + - "alEventDefRequest\032#.littlehorse.External" + - "EventDefIdList\"\000\022k\n\026SearchWorkflowEventD" + - "ef\022*.littlehorse.SearchWorkflowEventDefR" + - "equest\032#.littlehorse.WorkflowEventDefIdL" + - "ist\"\000\022M\n\014SearchTenant\022 .littlehorse.Sear" + - "chTenantRequest\032\031.littlehorse.TenantIdLi" + - "st\"\000\022V\n\017SearchPrincipal\022#.littlehorse.Se" + - "archPrincipalRequest\032\034.littlehorse.Princ" + - "ipalIdList\"\000\022g\n\022RegisterTaskWorker\022&.lit" + - "tlehorse.RegisterTaskWorkerRequest\032\'.lit" + - "tlehorse.RegisterTaskWorkerResponse\"\000\022M\n" + - "\010PollTask\022\034.littlehorse.PollTaskRequest\032" + - "\035.littlehorse.PollTaskResponse\"\000(\0010\001\022B\n\n" + - "ReportTask\022\032.littlehorse.ReportTaskRun\032\026" + - ".google.protobuf.Empty\"\000\022D\n\tStopWfRun\022\035." + - "littlehorse.StopWfRunRequest\032\026.google.pr" + - "otobuf.Empty\"\000\022H\n\013ResumeWfRun\022\037.littleho" + - "rse.ResumeWfRunRequest\032\026.google.protobuf" + - ".Empty\"\000\022L\n\017RescueThreadRun\022#.littlehors" + - "e.RescueThreadRunRequest\032\022.littlehorse.W" + - "fRun\"\000\022H\n\013DeleteWfRun\022\037.littlehorse.Dele" + - "teWfRunRequest\032\026.google.protobuf.Empty\"\000" + - "\022L\n\rDeleteTaskDef\022!.littlehorse.DeleteTa" + - "skDefRequest\032\026.google.protobuf.Empty\"\000\022J" + - "\n\014DeleteWfSpec\022 .littlehorse.DeleteWfSpe" + - "cRequest\032\026.google.protobuf.Empty\"\000\022T\n\021De" + - "leteUserTaskDef\022%.littlehorse.DeleteUser" + - "TaskDefRequest\032\026.google.protobuf.Empty\"\000" + - "\022^\n\026DeleteExternalEventDef\022*.littlehorse" + - ".DeleteExternalEventDefRequest\032\026.google." + - "protobuf.Empty\"\000\022^\n\026DeleteWorkflowEventD" + - "ef\022*.littlehorse.DeleteWorkflowEventDefR" + - "equest\032\026.google.protobuf.Empty\"\000\022P\n\017Dele" + - "tePrincipal\022#.littlehorse.DeletePrincipa" + - "lRequest\032\026.google.protobuf.Empty\"\000\022Z\n\024De" + - "leteScheduledWfRun\022(.littlehorse.DeleteS" + - "cheduledWfRunRequest\032\026.google.protobuf.E" + - "mpty\"\000\022a\n\027GetTaskDefMetricsWindow\022\'.litt" + - "lehorse.TaskDefMetricsQueryRequest\032\033.lit" + - "tlehorse.TaskDefMetrics\"\000\022^\n\026GetWfSpecMe" + - "tricsWindow\022&.littlehorse.WfSpecMetricsQ" + - "ueryRequest\032\032.littlehorse.WfSpecMetrics\"" + - "\000\022a\n\022ListTaskDefMetrics\022#.littlehorse.Li" + - "stTaskMetricsRequest\032$.littlehorse.ListT" + - "askMetricsResponse\"\000\022\\\n\021ListWfSpecMetric" + - "s\022!.littlehorse.ListWfMetricsRequest\032\".l" + - "ittlehorse.ListWfMetricsResponse\"\000\022A\n\tPu" + - "tTenant\022\035.littlehorse.PutTenantRequest\032\023" + - ".littlehorse.Tenant\"\000\0229\n\tGetTenant\022\025.lit" + - "tlehorse.TenantId\032\023.littlehorse.Tenant\"\000" + - "\022J\n\014PutPrincipal\022 .littlehorse.PutPrinci" + - "palRequest\032\026.littlehorse.Principal\"\000\022B\n\014" + - "GetPrincipal\022\030.littlehorse.PrincipalId\032\026" + - ".littlehorse.Principal\"\000\022:\n\006Whoami\022\026.goo" + - "gle.protobuf.Empty\032\026.littlehorse.Princip" + - "al\"\000\022H\n\020GetServerVersion\022\026.google.protob" + - "uf.Empty\032\032.littlehorse.ServerVersion\"\000BM" + - "\n\037io.littlehorse.sdk.common.protoP\001Z\t.;l" + - "hproto\252\002\034LittleHorse.Sdk.Common.Protob\006p" + - "roto3" + "lease_identifier\"8\n\rMetricRunList\022\'\n\007res" + + "ults\030\001 \003(\0132\026.littlehorse.MetricRun\"@\n\024Li" + + "stMetricRunRequest\022(\n\tmetric_id\030\001 \001(\0132\025." + + "littlehorse.MetricId*P\n\021AllowedUpdateTyp" + + "e\022\017\n\013ALL_UPDATES\020\000\022\032\n\026MINOR_REVISION_UPD" + + "ATES\020\001\022\016\n\nNO_UPDATES\020\0022\3041\n\013LittleHorse\022D" + + "\n\nPutTaskDef\022\036.littlehorse.PutTaskDefReq" + + "uest\032\024.littlehorse.TaskDef\"\000\022<\n\nGetTaskD" + + "ef\022\026.littlehorse.TaskDefId\032\024.littlehorse" + + ".TaskDef\"\000\022L\n\022GetTaskWorkerGroup\022\026.littl" + + "ehorse.TaskDefId\032\034.littlehorse.TaskWorke" + + "rGroup\"\000\022_\n\023PutExternalEventDef\022\'.little" + + "horse.PutExternalEventDefRequest\032\035.littl" + + "ehorse.ExternalEventDef\"\000\022W\n\023GetExternal" + + "EventDef\022\037.littlehorse.ExternalEventDefI" + + "d\032\035.littlehorse.ExternalEventDef\"\000\022_\n\023Pu" + + "tWorkflowEventDef\022\'.littlehorse.PutWorkf" + + "lowEventDefRequest\032\035.littlehorse.Workflo" + + "wEventDef\"\000\022A\n\tPutWfSpec\022\035.littlehorse.P" + + "utWfSpecRequest\032\023.littlehorse.WfSpec\"\000\022A" + + "\n\tPutMetric\022\035.littlehorse.PutMetricReque" + + "st\032\023.littlehorse.Metric\"\000\0229\n\tGetWfSpec\022\025" + + ".littlehorse.WfSpecId\032\023.littlehorse.WfSp" + + "ec\"\000\022M\n\017GetLatestWfSpec\022#.littlehorse.Ge" + + "tLatestWfSpecRequest\032\023.littlehorse.WfSpe" + + "c\"\000\022I\n\rMigrateWfSpec\022!.littlehorse.Migra" + + "teWfSpecRequest\032\023.littlehorse.WfSpec\"\000\022P" + + "\n\016PutUserTaskDef\022\".littlehorse.PutUserTa" + + "skDefRequest\032\030.littlehorse.UserTaskDef\"\000" + + "\022H\n\016GetUserTaskDef\022\032.littlehorse.UserTas" + + "kDefId\032\030.littlehorse.UserTaskDef\"\000\022\\\n\024Ge" + + "tLatestUserTaskDef\022(.littlehorse.GetLate" + + "stUserTaskDefRequest\032\030.littlehorse.UserT" + + "askDef\"\000\0228\n\005RunWf\022\031.littlehorse.RunWfReq" + + "uest\032\022.littlehorse.WfRun\"\000\022K\n\nScheduleWf" + + "\022\036.littlehorse.ScheduleWfRequest\032\033.littl" + + "ehorse.ScheduledWfRun\"\000\022e\n\024SearchSchedul" + + "edWfRun\022(.littlehorse.SearchScheduledWfR" + + "unRequest\032!.littlehorse.ScheduledWfRunId" + + "List\"\000\022Q\n\021GetScheduledWfRun\022\035.littlehors" + + "e.ScheduledWfRunId\032\033.littlehorse.Schedul" + + "edWfRun\"\000\0226\n\010GetWfRun\022\024.littlehorse.WfRu" + + "nId\032\022.littlehorse.WfRun\"\000\022H\n\016GetUserTask" + + "Run\022\032.littlehorse.UserTaskRunId\032\030.little" + + "horse.UserTaskRun\"\000\022T\n\021AssignUserTaskRun" + + "\022%.littlehorse.AssignUserTaskRunRequest\032" + + "\026.google.protobuf.Empty\"\000\022X\n\023CompleteUse" + + "rTaskRun\022\'.littlehorse.CompleteUserTaskR" + + "unRequest\032\026.google.protobuf.Empty\"\000\022T\n\021C" + + "ancelUserTaskRun\022%.littlehorse.CancelUse" + + "rTaskRunRequest\032\026.google.protobuf.Empty\"" + + "\000\022b\n\027SaveUserTaskRunProgress\022+.littlehor" + + "se.SaveUserTaskRunProgressRequest\032\030.litt" + + "lehorse.UserTaskRun\"\000\022W\n\020ListUserTaskRun" + + "s\022#.littlehorse.ListUserTaskRunRequest\032\034" + + ".littlehorse.UserTaskRunList\"\000\022<\n\nGetNod" + + "eRun\022\026.littlehorse.NodeRunId\032\024.littlehor" + + "se.NodeRun\"\000\022L\n\014ListNodeRuns\022 .littlehor" + + "se.ListNodeRunsRequest\032\030.littlehorse.Nod" + + "eRunList\"\000\022<\n\nGetTaskRun\022\026.littlehorse.T" + + "askRunId\032\024.littlehorse.TaskRun\"\000\022L\n\014List", + "TaskRuns\022 .littlehorse.ListTaskRunsReque" + + "st\032\030.littlehorse.TaskRunList\"\000\022?\n\013GetVar" + + "iable\022\027.littlehorse.VariableId\032\025.littleh" + + "orse.Variable\"\000\022O\n\rListVariables\022!.littl" + + "ehorse.ListVariablesRequest\032\031.littlehors" + + "e.VariableList\"\000\022V\n\020PutExternalEvent\022$.l" + + "ittlehorse.PutExternalEventRequest\032\032.lit" + + "tlehorse.ExternalEvent\"\000\022N\n\020GetExternalE" + + "vent\022\034.littlehorse.ExternalEventId\032\032.lit" + + "tlehorse.ExternalEvent\"\000\022Z\n\022AwaitWorkflo" + + "wEvent\022&.littlehorse.AwaitWorkflowEventR" + + "equest\032\032.littlehorse.WorkflowEvent\"\000\022W\n\023" + + "GetWorkflowEventDef\022\037.littlehorse.Workfl" + + "owEventDefId\032\035.littlehorse.WorkflowEvent" + + "Def\"\000\022N\n\020GetWorkflowEvent\022\034.littlehorse." + + "WorkflowEventId\032\032.littlehorse.WorkflowEv" + + "ent\"\000\022^\n\022ListExternalEvents\022&.littlehors" + + "e.ListExternalEventsRequest\032\036.littlehors" + + "e.ExternalEventList\"\000\022^\n\022ListWorkflowEve" + + "nts\022&.littlehorse.ListWorkflowEventsRequ" + + "est\032\036.littlehorse.WorkflowEventList\"\000\022J\n" + + "\013SearchWfRun\022\037.littlehorse.SearchWfRunRe" + + "quest\032\030.littlehorse.WfRunIdList\"\000\022P\n\rSea" + + "rchNodeRun\022!.littlehorse.SearchNodeRunRe" + + "quest\032\032.littlehorse.NodeRunIdList\"\000\022P\n\rS" + + "earchTaskRun\022!.littlehorse.SearchTaskRun" + + "Request\032\032.littlehorse.TaskRunIdList\"\000\022\\\n" + + "\021SearchUserTaskRun\022%.littlehorse.SearchU" + + "serTaskRunRequest\032\036.littlehorse.UserTask" + + "RunIdList\"\000\022S\n\016SearchVariable\022\".littleho" + + "rse.SearchVariableRequest\032\033.littlehorse." + + "VariableIdList\"\000\022b\n\023SearchExternalEvent\022" + + "\'.littlehorse.SearchExternalEventRequest" + + "\032 .littlehorse.ExternalEventIdList\"\000\022b\n\023" + + "SearchWorkflowEvent\022\'.littlehorse.Search" + + "WorkflowEventRequest\032 .littlehorse.Workf" + + "lowEventIdList\"\000\022P\n\rSearchTaskDef\022!.litt" + + "lehorse.SearchTaskDefRequest\032\032.littlehor" + + "se.TaskDefIdList\"\000\022\\\n\021SearchUserTaskDef\022" + + "%.littlehorse.SearchUserTaskDefRequest\032\036" + + ".littlehorse.UserTaskDefIdList\"\000\022M\n\014Sear" + + "chWfSpec\022 .littlehorse.SearchWfSpecReque" + + "st\032\031.littlehorse.WfSpecIdList\"\000\022k\n\026Searc" + + "hExternalEventDef\022*.littlehorse.SearchEx" + + "ternalEventDefRequest\032#.littlehorse.Exte" + + "rnalEventDefIdList\"\000\022k\n\026SearchWorkflowEv" + + "entDef\022*.littlehorse.SearchWorkflowEvent" + + "DefRequest\032#.littlehorse.WorkflowEventDe" + + "fIdList\"\000\022M\n\014SearchTenant\022 .littlehorse." + + "SearchTenantRequest\032\031.littlehorse.Tenant" + + "IdList\"\000\022V\n\017SearchPrincipal\022#.littlehors" + + "e.SearchPrincipalRequest\032\034.littlehorse.P" + + "rincipalIdList\"\000\022g\n\022RegisterTaskWorker\022&" + + ".littlehorse.RegisterTaskWorkerRequest\032\'" + + ".littlehorse.RegisterTaskWorkerResponse\"" + + "\000\022M\n\010PollTask\022\034.littlehorse.PollTaskRequ" + + "est\032\035.littlehorse.PollTaskResponse\"\000(\0010\001" + + "\022B\n\nReportTask\022\032.littlehorse.ReportTaskR" + + "un\032\026.google.protobuf.Empty\"\000\022D\n\tStopWfRu" + + "n\022\035.littlehorse.StopWfRunRequest\032\026.googl" + + "e.protobuf.Empty\"\000\022H\n\013ResumeWfRun\022\037.litt" + + "lehorse.ResumeWfRunRequest\032\026.google.prot" + + "obuf.Empty\"\000\022L\n\017RescueThreadRun\022#.little" + + "horse.RescueThreadRunRequest\032\022.littlehor" + + "se.WfRun\"\000\022H\n\013DeleteWfRun\022\037.littlehorse." + + "DeleteWfRunRequest\032\026.google.protobuf.Emp" + + "ty\"\000\022L\n\rDeleteTaskDef\022!.littlehorse.Dele" + + "teTaskDefRequest\032\026.google.protobuf.Empty" + + "\"\000\022J\n\014DeleteWfSpec\022 .littlehorse.DeleteW" + + "fSpecRequest\032\026.google.protobuf.Empty\"\000\022T" + + "\n\021DeleteUserTaskDef\022%.littlehorse.Delete" + + "UserTaskDefRequest\032\026.google.protobuf.Emp" + + "ty\"\000\022^\n\026DeleteExternalEventDef\022*.littleh" + + "orse.DeleteExternalEventDefRequest\032\026.goo" + + "gle.protobuf.Empty\"\000\022^\n\026DeleteWorkflowEv" + + "entDef\022*.littlehorse.DeleteWorkflowEvent" + + "DefRequest\032\026.google.protobuf.Empty\"\000\022P\n\017" + + "DeletePrincipal\022#.littlehorse.DeletePrin" + + "cipalRequest\032\026.google.protobuf.Empty\"\000\022Z" + + "\n\024DeleteScheduledWfRun\022(.littlehorse.Del" + + "eteScheduledWfRunRequest\032\026.google.protob" + + "uf.Empty\"\000\022a\n\027GetTaskDefMetricsWindow\022\'." + + "littlehorse.TaskDefMetricsQueryRequest\032\033" + + ".littlehorse.TaskDefMetrics\"\000\022^\n\026GetWfSp" + + "ecMetricsWindow\022&.littlehorse.WfSpecMetr" + + "icsQueryRequest\032\032.littlehorse.WfSpecMetr" + + "ics\"\000\022a\n\022ListTaskDefMetrics\022#.littlehors" + + "e.ListTaskMetricsRequest\032$.littlehorse.L" + + "istTaskMetricsResponse\"\000\022\\\n\021ListWfSpecMe" + + "trics\022!.littlehorse.ListWfMetricsRequest" + + "\032\".littlehorse.ListWfMetricsResponse\"\000\022A" + + "\n\tPutTenant\022\035.littlehorse.PutTenantReque" + + "st\032\023.littlehorse.Tenant\"\000\0229\n\tGetTenant\022\025" + + ".littlehorse.TenantId\032\023.littlehorse.Tena" + + "nt\"\000\022J\n\014PutPrincipal\022 .littlehorse.PutPr" + + "incipalRequest\032\026.littlehorse.Principal\"\000" + + "\022B\n\014GetPrincipal\022\030.littlehorse.Principal" + + "Id\032\026.littlehorse.Principal\"\000\022:\n\006Whoami\022\026" + + ".google.protobuf.Empty\032\026.littlehorse.Pri" + + "ncipal\"\000\022H\n\020GetServerVersion\022\026.google.pr" + + "otobuf.Empty\032\032.littlehorse.ServerVersion" + + "\"\000\022Q\n\016ListMetricRuns\022!.littlehorse.ListM" + + "etricRunRequest\032\032.littlehorse.MetricRunL" + + "ist\"\000BM\n\037io.littlehorse.sdk.common.proto" + + "P\001Z\t.;lhproto\252\002\034LittleHorse.Sdk.Common.P" + + "rotob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -1536,6 +1551,18 @@ public static void registerAllExtensions( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_littlehorse_ServerVersion_descriptor, new java.lang.String[] { "MajorVersion", "MinorVersion", "PatchVersion", "PreReleaseIdentifier", "PreReleaseIdentifier", }); + internal_static_littlehorse_MetricRunList_descriptor = + getDescriptor().getMessageTypes().get(86); + internal_static_littlehorse_MetricRunList_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_littlehorse_MetricRunList_descriptor, + new java.lang.String[] { "Results", }); + internal_static_littlehorse_ListMetricRunRequest_descriptor = + getDescriptor().getMessageTypes().get(87); + internal_static_littlehorse_ListMetricRunRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_littlehorse_ListMetricRunRequest_descriptor, + new java.lang.String[] { "MetricId", }); com.google.protobuf.TimestampProto.getDescriptor(); com.google.protobuf.EmptyProto.getDescriptor(); io.littlehorse.sdk.common.proto.CommonWfspec.getDescriptor(); diff --git a/sdk-js/src/proto/service.ts b/sdk-js/src/proto/service.ts index 53a442550..304398d21 100644 --- a/sdk-js/src/proto/service.ts +++ b/sdk-js/src/proto/service.ts @@ -33,11 +33,12 @@ import { VariableDef } from "./common_wfspec"; import { ExternalEvent, ExternalEventDef, ExternalEventRetentionPolicy } from "./external_event"; import { Empty } from "./google/protobuf/empty"; import { Timestamp } from "./google/protobuf/timestamp"; -import { Metric } from "./metrics"; +import { Metric, MetricRun } from "./metrics"; import { NodeRun } from "./node_run"; import { ExternalEventDefId, ExternalEventId, + MetricId, NodeRunId, PrincipalId, ScheduledWfRunId, @@ -1540,6 +1541,14 @@ export interface ServerVersion { preReleaseIdentifier?: string | undefined; } +export interface MetricRunList { + results: MetricRun[]; +} + +export interface ListMetricRunRequest { + metricId: MetricId | undefined; +} + function createBaseGetLatestUserTaskDefRequest(): GetLatestUserTaskDefRequest { return { name: "" }; } @@ -7770,6 +7779,98 @@ export const ServerVersion = { }, }; +function createBaseMetricRunList(): MetricRunList { + return { results: [] }; +} + +export const MetricRunList = { + encode(message: MetricRunList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.results) { + MetricRun.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MetricRunList { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMetricRunList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.results.push(MetricRun.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + create(base?: DeepPartial): MetricRunList { + return MetricRunList.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MetricRunList { + const message = createBaseMetricRunList(); + message.results = object.results?.map((e) => MetricRun.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseListMetricRunRequest(): ListMetricRunRequest { + return { metricId: undefined }; +} + +export const ListMetricRunRequest = { + encode(message: ListMetricRunRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.metricId !== undefined) { + MetricId.encode(message.metricId, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ListMetricRunRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseListMetricRunRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.metricId = MetricId.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + create(base?: DeepPartial): ListMetricRunRequest { + return ListMetricRunRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ListMetricRunRequest { + const message = createBaseListMetricRunRequest(); + message.metricId = (object.metricId !== undefined && object.metricId !== null) + ? MetricId.fromPartial(object.metricId) + : undefined; + return message; + }, +}; + export type LittleHorseDefinition = typeof LittleHorseDefinition; export const LittleHorseDefinition = { name: "LittleHorse", @@ -8550,6 +8651,14 @@ export const LittleHorseDefinition = { responseStream: false, options: {}, }, + listMetricRuns: { + name: "ListMetricRuns", + requestType: ListMetricRunRequest, + requestStream: false, + responseType: MetricRunList, + responseStream: false, + options: {}, + }, }, } as const; @@ -8920,6 +9029,10 @@ export interface LittleHorseServiceImplementation { whoami(request: Empty, context: CallContext & CallContextExt): Promise>; /** Gets the version of the LH Server. */ getServerVersion(request: Empty, context: CallContext & CallContextExt): Promise>; + listMetricRuns( + request: ListMetricRunRequest, + context: CallContext & CallContextExt, + ): Promise>; } export interface LittleHorseClient { @@ -9298,6 +9411,10 @@ export interface LittleHorseClient { whoami(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** Gets the version of the LH Server. */ getServerVersion(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; + listMetricRuns( + request: DeepPartial, + options?: CallOptions & CallOptionsExt, + ): Promise; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; diff --git a/sdk-python/littlehorse/model/service_pb2.py b/sdk-python/littlehorse/model/service_pb2.py index 27dc4ca39..716f44259 100644 --- a/sdk-python/littlehorse/model/service_pb2.py +++ b/sdk-python/littlehorse/model/service_pb2.py @@ -30,7 +30,7 @@ import littlehorse.model.metrics_pb2 as metrics__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x12\x0blittlehorse\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x13\x63ommon_wfspec.proto\x1a\x12\x63ommon_enums.proto\x1a\x0fobject_id.proto\x1a\x0evariable.proto\x1a\x14\x65xternal_event.proto\x1a\x0cwf_run.proto\x1a\x0enode_run.proto\x1a\x0etask_run.proto\x1a\x10user_tasks.proto\x1a\rwf_spec.proto\x1a\x0etask_def.proto\x1a\nacls.proto\x1a\x14workflow_event.proto\x1a\x16scheduled_wf_run.proto\x1a\rmetrics.proto\"+\n\x1bGetLatestUserTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xd3\x03\n\x10PutWfSpecRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x44\n\x0cthread_specs\x18\x05 \x03(\x0b\x32..littlehorse.PutWfSpecRequest.ThreadSpecsEntry\x12\x1e\n\x16\x65ntrypoint_thread_name\x18\x06 \x01(\t\x12\x43\n\x10retention_policy\x18\x08 \x01(\x0b\x32$.littlehorse.WorkflowRetentionPolicyH\x00\x88\x01\x01\x12\x46\n\x0eparent_wf_spec\x18\t \x01(\x0b\x32).littlehorse.WfSpec.ParentWfSpecReferenceH\x01\x88\x01\x01\x12\x37\n\x0f\x61llowed_updates\x18\n \x01(\x0e\x32\x1e.littlehorse.AllowedUpdateType\x1aK\n\x10ThreadSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.littlehorse.ThreadSpec:\x02\x38\x01\x42\x13\n\x11_retention_policyB\x11\n\x0f_parent_wf_specJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"l\n\x10PutMetricRequest\x12\x31\n\nmeasurable\x18\x01 \x01(\x0e\x32\x1d.littlehorse.MeasurableObject\x12%\n\x04type\x18\x02 \x01(\x0e\x32\x17.littlehorse.MetricType\"\x9f\x01\n\x11PutTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\ninput_vars\x18\x02 \x03(\x0b\x32\x18.littlehorse.VariableDef\x12<\n\routput_schema\x18\x03 \x01(\x0b\x32 .littlehorse.TaskDefOutputSchemaH\x00\x88\x01\x01\x42\x10\n\x0e_output_schema\"S\n\x1aPutWorkflowEventDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\'\n\x04type\x18\x02 \x01(\x0e\x32\x19.littlehorse.VariableType\"{\n\x15PutUserTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x1a.littlehorse.UserTaskField\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"o\n\x1aPutExternalEventDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x43\n\x10retention_policy\x18\x02 \x01(\x0b\x32).littlehorse.ExternalEventRetentionPolicy\"\xc3\x02\n\x17PutExternalEventRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12>\n\x15\x65xternal_event_def_id\x18\x02 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x11\n\x04guid\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\x07\x63ontent\x18\x05 \x01(\x0b\x32\x1a.littlehorse.VariableValue\x12\x1e\n\x11thread_run_number\x18\x06 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11node_run_position\x18\x07 \x01(\x05H\x02\x88\x01\x01\x42\x07\n\x05_guidB\x14\n\x12_thread_run_numberB\x14\n\x12_node_run_positionJ\x04\x08\x04\x10\x05J\x04\x08\x08\x10\t\"F\n\x1a\x44\x65leteExternalEventRequest\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.littlehorse.ExternalEventId\"H\n\x1b\x44\x65leteScheduledWfRunRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x1d.littlehorse.ScheduledWfRunId\"6\n\x12\x44\x65leteWfRunRequest\x12 \n\x02id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\":\n\x14\x44\x65leteTaskDefRequest\x12\"\n\x02id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\"B\n\x18\x44\x65leteUserTaskDefRequest\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x1a.littlehorse.UserTaskDefId\"8\n\x13\x44\x65leteWfSpecRequest\x12!\n\x02id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\"L\n\x1d\x44\x65leteExternalEventDefRequest\x12+\n\x02id\x18\x01 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\"L\n\x1d\x44\x65leteWorkflowEventDefRequest\x12+\n\x02id\x18\x01 \x01(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\"\xe3\x02\n\x0cRunWfRequest\x12\x14\n\x0cwf_spec_name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08revision\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12;\n\tvariables\x18\x04 \x03(\x0b\x32(.littlehorse.RunWfRequest.VariablesEntry\x12\x0f\n\x02id\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x33\n\x10parent_wf_run_id\x18\x06 \x01(\x0b\x32\x14.littlehorse.WfRunIdH\x03\x88\x01\x01\x1aL\n\x0eVariablesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue:\x02\x38\x01\x42\x10\n\x0e_major_versionB\x0b\n\t_revisionB\x05\n\x03_idB\x13\n\x11_parent_wf_run_id\"\x86\x03\n\x11ScheduleWfRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0cwf_spec_name\x18\x02 \x01(\t\x12\x1a\n\rmajor_version\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08revision\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12@\n\tvariables\x18\x05 \x03(\x0b\x32-.littlehorse.ScheduleWfRequest.VariablesEntry\x12\x33\n\x10parent_wf_run_id\x18\x06 \x01(\x0b\x32\x14.littlehorse.WfRunIdH\x03\x88\x01\x01\x12\x17\n\x0f\x63ron_expression\x18\x07 \x01(\t\x1aL\n\x0eVariablesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue:\x02\x38\x01\x42\x05\n\x03_idB\x10\n\x0e_major_versionB\x0b\n\t_revisionB\x13\n\x11_parent_wf_run_id\"L\n\rVariableMatch\x12\x10\n\x08var_name\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue\"\xbd\x01\n\x19\x41waitWorkflowEventRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x36\n\revent_def_ids\x18\x02 \x03(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\x12?\n\x19workflow_events_to_ignore\x18\x03 \x03(\x0b\x32\x1c.littlehorse.WorkflowEventId\"\xdf\x03\n\x12SearchWfRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x0cwf_spec_name\x18\x03 \x01(\t\x12\"\n\x15wf_spec_major_version\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10wf_spec_revision\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12*\n\x06status\x18\x06 \x01(\x0e\x32\x15.littlehorse.LHStatusH\x04\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12\x34\n\x10variable_filters\x18\t \x03(\x0b\x32\x1a.littlehorse.VariableMatchB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x18\n\x16_wf_spec_major_versionB\x13\n\x11_wf_spec_revisionB\t\n\x07_statusB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"X\n\x0bWfRunIdList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.WfRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xbc\x02\n\x14SearchTaskRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\rtask_def_name\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x17.littlehorse.TaskStatusH\x02\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_statusB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"\\\n\rTaskRunIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.TaskRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xf1\x03\n\x14SearchNodeRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12=\n\tnode_type\x18\x05 \x01(\x0e\x32*.littlehorse.SearchNodeRunRequest.NodeType\x12%\n\x06status\x18\x06 \x01(\x0e\x32\x15.littlehorse.LHStatus\"\x9c\x01\n\x08NodeType\x12\x08\n\x04TASK\x10\x00\x12\x12\n\x0e\x45XTERNAL_EVENT\x10\x01\x12\x0e\n\nENTRYPOINT\x10\x02\x12\x08\n\x04\x45XIT\x10\x03\x12\x10\n\x0cSTART_THREAD\x10\x04\x12\x10\n\x0cWAIT_THREADS\x10\x05\x12\t\n\x05SLEEP\x10\x06\x12\r\n\tUSER_TASK\x10\x07\x12\x1a\n\x16START_MULTIPLE_THREADS\x10\x08\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"\\\n\rNodeRunIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.NodeRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb2\x03\n\x18SearchUserTaskRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x33\n\x06status\x18\x03 \x01(\x0e\x32\x1e.littlehorse.UserTaskRunStatusH\x02\x88\x01\x01\x12\x1f\n\x12user_task_def_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07user_id\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x17\n\nuser_group\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x07\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_statusB\x15\n\x13_user_task_def_nameB\n\n\x08_user_idB\r\n\x0b_user_groupB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"d\n\x11UserTaskRunIdList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.UserTaskRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x9e\x02\n\x15SearchVariableRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.littlehorse.VariableValue\x12\"\n\x15wf_spec_major_version\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10wf_spec_revision\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12\x10\n\x08var_name\x18\x06 \x01(\t\x12\x14\n\x0cwf_spec_name\x18\x07 \x01(\tB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x18\n\x16_wf_spec_major_versionB\x13\n\x11_wf_spec_revision\"^\n\x0eVariableIdList\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.littlehorse.VariableId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"x\n\x14SearchTaskDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"\\\n\rTaskDefIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.TaskDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x98\x01\n\x18SearchUserTaskDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\x0e\n\x04name\x18\x04 \x01(\tH\x00\x42\x18\n\x16user_task_def_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limit\"d\n\x11UserTaskDefIdList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.UserTaskDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xa6\x01\n\x13SearchWfSpecRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x04 \x01(\tH\x00\x12\x17\n\rtask_def_name\x18\x05 \x01(\tH\x00\x42\x12\n\x10wf_spec_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limit\"Z\n\x0cWfSpecIdList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.WfSpecId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x81\x01\n\x1dSearchExternalEventDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"n\n\x16\x45xternalEventDefIdList\x12\x30\n\x07results\x18\x01 \x03(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x81\x01\n\x1dSearchWorkflowEventDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"n\n\x16WorkflowEventDefIdList\x12\x30\n\x07results\x18\x01 \x03(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"W\n\x13SearchTenantRequest\x12\x12\n\x05limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x42\x08\n\x06_limitB\x0b\n\t_bookmark\"Z\n\x0cTenantIdList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.TenantId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xab\x02\n\x16SearchPrincipalRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x12\x11\n\x07isAdmin\x18\x05 \x01(\x08H\x00\x12\x12\n\x08tenantId\x18\x06 \x01(\tH\x00\x42\x14\n\x12principal_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"`\n\x0fPrincipalIdList\x12)\n\x07results\x18\x01 \x03(\x0b\x32\x18.littlehorse.PrincipalId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xda\x02\n\x1aSearchExternalEventRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12>\n\x15\x65xternal_event_def_id\x18\x05 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x17\n\nis_claimed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_startB\r\n\x0b_is_claimed\"h\n\x13\x45xternalEventIdList\x12-\n\x07results\x18\x01 \x03(\x0b\x32\x1c.littlehorse.ExternalEventId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb2\x02\n\x1aSearchWorkflowEventRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12>\n\x15workflow_event_def_id\x18\x05 \x01(\x0b\x32\x1f.littlehorse.WorkflowEventDefIdB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"h\n\x13WorkflowEventIdList\x12-\n\x07results\x18\x01 \x03(\x0b\x32\x1c.littlehorse.WorkflowEventId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb6\x01\n\x13ListNodeRunsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x1e\n\x11thread_run_number\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08\x62ookmark\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\x14\n\x12_thread_run_numberB\x0b\n\t_bookmarkB\x08\n\x06_limit\"X\n\x0bNodeRunList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.NodeRun\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"?\n\x14ListVariablesRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"6\n\x0cVariableList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.Variable\"D\n\x19ListExternalEventsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"@\n\x11\x45xternalEventList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.ExternalEvent\"D\n\x19ListWorkflowEventsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"@\n\x11WorkflowEventList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.WorkflowEvent\"`\n\x19RegisterTaskWorkerRequest\x12\x16\n\x0etask_worker_id\x18\x01 \x01(\t\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\"s\n\x1aTaskWorkerHeartBeatRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x15\n\rlistener_name\x18\x03 \x01(\t\"\x81\x01\n\x1aRegisterTaskWorkerResponse\x12+\n\nyour_hosts\x18\x01 \x03(\x0b\x32\x17.littlehorse.LHHostInfo\x12\x1f\n\x12is_cluster_healthy\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x15\n\x13_is_cluster_healthy\"(\n\nLHHostInfo\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\x8b\x01\n\x0fPollTaskRequest\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12 \n\x13task_worker_version\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x16\n\x14_task_worker_version\"\x8c\x02\n\rScheduledTask\x12+\n\x0btask_run_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskRunId\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x16\n\x0e\x61ttempt_number\x18\x03 \x01(\x05\x12-\n\tvariables\x18\x04 \x03(\x0b\x32\x1a.littlehorse.VarNameAndVal\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06source\x18\x06 \x01(\x0b\x32\x1a.littlehorse.TaskRunSource\"N\n\x10PollTaskResponse\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1a.littlehorse.ScheduledTaskH\x00\x88\x01\x01\x42\t\n\x07_result\"\x81\x03\n\rReportTaskRun\x12+\n\x0btask_run_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskRunId\x12(\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x06status\x18\x03 \x01(\x0e\x32\x17.littlehorse.TaskStatus\x12\x33\n\nlog_output\x18\x05 \x01(\x0b\x32\x1a.littlehorse.VariableValueH\x01\x88\x01\x01\x12\x16\n\x0e\x61ttempt_number\x18\x06 \x01(\x05\x12,\n\x06output\x18\x04 \x01(\x0b\x32\x1a.littlehorse.VariableValueH\x00\x12)\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x18.littlehorse.LHTaskErrorH\x00\x12\x31\n\texception\x18\x08 \x01(\x0b\x32\x1c.littlehorse.LHTaskExceptionH\x00\x42\x08\n\x06resultB\r\n\x0b_log_output\"V\n\x10StopWfRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\"X\n\x12ResumeWfRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\"w\n\x16RescueThreadRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\x12\x19\n\x11skip_current_node\x18\x03 \x01(\x08\"\xb3\x01\n\x1aTaskDefMetricsQueryRequest\x12\x30\n\x0cwindow_start\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x0bwindow_type\x18\x02 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x1a\n\rtask_def_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_task_def_name\"\xca\x01\n\x16ListTaskMetricsRequest\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x35\n\x11last_window_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x13\n\x0bnum_windows\x18\x04 \x01(\x05\"G\n\x17ListTaskMetricsResponse\x12,\n\x07results\x18\x01 \x03(\x0b\x32\x1b.littlehorse.TaskDefMetrics\"\xb1\x01\n\x19WfSpecMetricsQueryRequest\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\"\xc6\x01\n\x14ListWfMetricsRequest\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x35\n\x11last_window_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x13\n\x0bnum_windows\x18\x04 \x01(\x05\"D\n\x15ListWfMetricsResponse\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.WfSpecMetrics\"\xfb\x02\n\x0eTaskDefMetrics\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x1d\n\x15schedule_to_start_max\x18\x04 \x01(\x03\x12\x1d\n\x15schedule_to_start_avg\x18\x05 \x01(\x03\x12\x1d\n\x15start_to_complete_max\x18\x06 \x01(\x03\x12\x1d\n\x15start_to_complete_avg\x18\x07 \x01(\x03\x12\x17\n\x0ftotal_completed\x18\x08 \x01(\x03\x12\x15\n\rtotal_errored\x18\t \x01(\x03\x12\x15\n\rtotal_started\x18\n \x01(\x03\x12\x17\n\x0ftotal_scheduled\x18\x0b \x01(\x03\"\xa1\x02\n\rWfSpecMetrics\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x15\n\rtotal_started\x18\x04 \x01(\x03\x12\x17\n\x0ftotal_completed\x18\x05 \x01(\x03\x12\x15\n\rtotal_errored\x18\x06 \x01(\x03\x12\x1d\n\x15start_to_complete_max\x18\x07 \x01(\x03\x12\x1d\n\x15start_to_complete_avg\x18\x08 \x01(\x03\"A\n\x16ListUserTaskRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"<\n\x0fUserTaskRunList\x12)\n\x07results\x18\x01 \x03(\x0b\x32\x18.littlehorse.UserTaskRun\"F\n\x14ScheduledWfRunIdList\x12.\n\x07results\x18\x01 \x03(\x0b\x32\x1d.littlehorse.ScheduledWfRunId\"\x85\x01\n\x1bSearchScheduledWfRunRequest\x12\x14\n\x0cwf_spec_name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08revision\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x10\n\x0e_major_versionB\x0b\n\t_revision\"\x8a\x01\n\x12TaskWorkerMetadata\x12\x16\n\x0etask_worker_id\x18\x01 \x01(\t\x12\x34\n\x10latest_heartbeat\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x05hosts\x18\x03 \x03(\x0b\x32\x17.littlehorse.LHHostInfo\"\x87\x02\n\x0fTaskWorkerGroup\x12*\n\x02id\x18\x01 \x01(\x0b\x32\x1e.littlehorse.TaskWorkerGroupId\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0ctask_workers\x18\x03 \x03(\x0b\x32-.littlehorse.TaskWorkerGroup.TaskWorkersEntry\x1aS\n\x10TaskWorkersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.littlehorse.TaskWorkerMetadata:\x02\x38\x01\">\n\x13ListTaskRunsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"4\n\x0bTaskRunList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.TaskRun\"z\n\x14MigrateWfSpecRequest\x12*\n\x0bold_wf_spec\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x36\n\tmigration\x18\x02 \x01(\x0b\x32#.littlehorse.WfSpecVersionMigration\"T\n\x16GetLatestWfSpecRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x10\n\x0e_major_version\"\x94\x01\n\rServerVersion\x12\x15\n\rmajor_version\x18\x01 \x01(\x05\x12\x15\n\rminor_version\x18\x02 \x01(\x05\x12\x15\n\rpatch_version\x18\x03 \x01(\x05\x12#\n\x16pre_release_identifier\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x19\n\x17_pre_release_identifier*P\n\x11\x41llowedUpdateType\x12\x0f\n\x0b\x41LL_UPDATES\x10\x00\x12\x1a\n\x16MINOR_REVISION_UPDATES\x10\x01\x12\x0e\n\nNO_UPDATES\x10\x02\x32\xf1\x30\n\x0bLittleHorse\x12\x44\n\nPutTaskDef\x12\x1e.littlehorse.PutTaskDefRequest\x1a\x14.littlehorse.TaskDef\"\x00\x12<\n\nGetTaskDef\x12\x16.littlehorse.TaskDefId\x1a\x14.littlehorse.TaskDef\"\x00\x12L\n\x12GetTaskWorkerGroup\x12\x16.littlehorse.TaskDefId\x1a\x1c.littlehorse.TaskWorkerGroup\"\x00\x12_\n\x13PutExternalEventDef\x12\'.littlehorse.PutExternalEventDefRequest\x1a\x1d.littlehorse.ExternalEventDef\"\x00\x12W\n\x13GetExternalEventDef\x12\x1f.littlehorse.ExternalEventDefId\x1a\x1d.littlehorse.ExternalEventDef\"\x00\x12_\n\x13PutWorkflowEventDef\x12\'.littlehorse.PutWorkflowEventDefRequest\x1a\x1d.littlehorse.WorkflowEventDef\"\x00\x12\x41\n\tPutWfSpec\x12\x1d.littlehorse.PutWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12\x41\n\tPutMetric\x12\x1d.littlehorse.PutMetricRequest\x1a\x13.littlehorse.Metric\"\x00\x12\x39\n\tGetWfSpec\x12\x15.littlehorse.WfSpecId\x1a\x13.littlehorse.WfSpec\"\x00\x12M\n\x0fGetLatestWfSpec\x12#.littlehorse.GetLatestWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12I\n\rMigrateWfSpec\x12!.littlehorse.MigrateWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12P\n\x0ePutUserTaskDef\x12\".littlehorse.PutUserTaskDefRequest\x1a\x18.littlehorse.UserTaskDef\"\x00\x12H\n\x0eGetUserTaskDef\x12\x1a.littlehorse.UserTaskDefId\x1a\x18.littlehorse.UserTaskDef\"\x00\x12\\\n\x14GetLatestUserTaskDef\x12(.littlehorse.GetLatestUserTaskDefRequest\x1a\x18.littlehorse.UserTaskDef\"\x00\x12\x38\n\x05RunWf\x12\x19.littlehorse.RunWfRequest\x1a\x12.littlehorse.WfRun\"\x00\x12K\n\nScheduleWf\x12\x1e.littlehorse.ScheduleWfRequest\x1a\x1b.littlehorse.ScheduledWfRun\"\x00\x12\x65\n\x14SearchScheduledWfRun\x12(.littlehorse.SearchScheduledWfRunRequest\x1a!.littlehorse.ScheduledWfRunIdList\"\x00\x12Q\n\x11GetScheduledWfRun\x12\x1d.littlehorse.ScheduledWfRunId\x1a\x1b.littlehorse.ScheduledWfRun\"\x00\x12\x36\n\x08GetWfRun\x12\x14.littlehorse.WfRunId\x1a\x12.littlehorse.WfRun\"\x00\x12H\n\x0eGetUserTaskRun\x12\x1a.littlehorse.UserTaskRunId\x1a\x18.littlehorse.UserTaskRun\"\x00\x12T\n\x11\x41ssignUserTaskRun\x12%.littlehorse.AssignUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12X\n\x13\x43ompleteUserTaskRun\x12\'.littlehorse.CompleteUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x11\x43\x61ncelUserTaskRun\x12%.littlehorse.CancelUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x62\n\x17SaveUserTaskRunProgress\x12+.littlehorse.SaveUserTaskRunProgressRequest\x1a\x18.littlehorse.UserTaskRun\"\x00\x12W\n\x10ListUserTaskRuns\x12#.littlehorse.ListUserTaskRunRequest\x1a\x1c.littlehorse.UserTaskRunList\"\x00\x12<\n\nGetNodeRun\x12\x16.littlehorse.NodeRunId\x1a\x14.littlehorse.NodeRun\"\x00\x12L\n\x0cListNodeRuns\x12 .littlehorse.ListNodeRunsRequest\x1a\x18.littlehorse.NodeRunList\"\x00\x12<\n\nGetTaskRun\x12\x16.littlehorse.TaskRunId\x1a\x14.littlehorse.TaskRun\"\x00\x12L\n\x0cListTaskRuns\x12 .littlehorse.ListTaskRunsRequest\x1a\x18.littlehorse.TaskRunList\"\x00\x12?\n\x0bGetVariable\x12\x17.littlehorse.VariableId\x1a\x15.littlehorse.Variable\"\x00\x12O\n\rListVariables\x12!.littlehorse.ListVariablesRequest\x1a\x19.littlehorse.VariableList\"\x00\x12V\n\x10PutExternalEvent\x12$.littlehorse.PutExternalEventRequest\x1a\x1a.littlehorse.ExternalEvent\"\x00\x12N\n\x10GetExternalEvent\x12\x1c.littlehorse.ExternalEventId\x1a\x1a.littlehorse.ExternalEvent\"\x00\x12Z\n\x12\x41waitWorkflowEvent\x12&.littlehorse.AwaitWorkflowEventRequest\x1a\x1a.littlehorse.WorkflowEvent\"\x00\x12W\n\x13GetWorkflowEventDef\x12\x1f.littlehorse.WorkflowEventDefId\x1a\x1d.littlehorse.WorkflowEventDef\"\x00\x12N\n\x10GetWorkflowEvent\x12\x1c.littlehorse.WorkflowEventId\x1a\x1a.littlehorse.WorkflowEvent\"\x00\x12^\n\x12ListExternalEvents\x12&.littlehorse.ListExternalEventsRequest\x1a\x1e.littlehorse.ExternalEventList\"\x00\x12^\n\x12ListWorkflowEvents\x12&.littlehorse.ListWorkflowEventsRequest\x1a\x1e.littlehorse.WorkflowEventList\"\x00\x12J\n\x0bSearchWfRun\x12\x1f.littlehorse.SearchWfRunRequest\x1a\x18.littlehorse.WfRunIdList\"\x00\x12P\n\rSearchNodeRun\x12!.littlehorse.SearchNodeRunRequest\x1a\x1a.littlehorse.NodeRunIdList\"\x00\x12P\n\rSearchTaskRun\x12!.littlehorse.SearchTaskRunRequest\x1a\x1a.littlehorse.TaskRunIdList\"\x00\x12\\\n\x11SearchUserTaskRun\x12%.littlehorse.SearchUserTaskRunRequest\x1a\x1e.littlehorse.UserTaskRunIdList\"\x00\x12S\n\x0eSearchVariable\x12\".littlehorse.SearchVariableRequest\x1a\x1b.littlehorse.VariableIdList\"\x00\x12\x62\n\x13SearchExternalEvent\x12\'.littlehorse.SearchExternalEventRequest\x1a .littlehorse.ExternalEventIdList\"\x00\x12\x62\n\x13SearchWorkflowEvent\x12\'.littlehorse.SearchWorkflowEventRequest\x1a .littlehorse.WorkflowEventIdList\"\x00\x12P\n\rSearchTaskDef\x12!.littlehorse.SearchTaskDefRequest\x1a\x1a.littlehorse.TaskDefIdList\"\x00\x12\\\n\x11SearchUserTaskDef\x12%.littlehorse.SearchUserTaskDefRequest\x1a\x1e.littlehorse.UserTaskDefIdList\"\x00\x12M\n\x0cSearchWfSpec\x12 .littlehorse.SearchWfSpecRequest\x1a\x19.littlehorse.WfSpecIdList\"\x00\x12k\n\x16SearchExternalEventDef\x12*.littlehorse.SearchExternalEventDefRequest\x1a#.littlehorse.ExternalEventDefIdList\"\x00\x12k\n\x16SearchWorkflowEventDef\x12*.littlehorse.SearchWorkflowEventDefRequest\x1a#.littlehorse.WorkflowEventDefIdList\"\x00\x12M\n\x0cSearchTenant\x12 .littlehorse.SearchTenantRequest\x1a\x19.littlehorse.TenantIdList\"\x00\x12V\n\x0fSearchPrincipal\x12#.littlehorse.SearchPrincipalRequest\x1a\x1c.littlehorse.PrincipalIdList\"\x00\x12g\n\x12RegisterTaskWorker\x12&.littlehorse.RegisterTaskWorkerRequest\x1a\'.littlehorse.RegisterTaskWorkerResponse\"\x00\x12M\n\x08PollTask\x12\x1c.littlehorse.PollTaskRequest\x1a\x1d.littlehorse.PollTaskResponse\"\x00(\x01\x30\x01\x12\x42\n\nReportTask\x12\x1a.littlehorse.ReportTaskRun\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\tStopWfRun\x12\x1d.littlehorse.StopWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12H\n\x0bResumeWfRun\x12\x1f.littlehorse.ResumeWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\x0fRescueThreadRun\x12#.littlehorse.RescueThreadRunRequest\x1a\x12.littlehorse.WfRun\"\x00\x12H\n\x0b\x44\x65leteWfRun\x12\x1f.littlehorse.DeleteWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\rDeleteTaskDef\x12!.littlehorse.DeleteTaskDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12J\n\x0c\x44\x65leteWfSpec\x12 .littlehorse.DeleteWfSpecRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x11\x44\x65leteUserTaskDef\x12%.littlehorse.DeleteUserTaskDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n\x16\x44\x65leteExternalEventDef\x12*.littlehorse.DeleteExternalEventDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n\x16\x44\x65leteWorkflowEventDef\x12*.littlehorse.DeleteWorkflowEventDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12P\n\x0f\x44\x65letePrincipal\x12#.littlehorse.DeletePrincipalRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Z\n\x14\x44\x65leteScheduledWfRun\x12(.littlehorse.DeleteScheduledWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x17GetTaskDefMetricsWindow\x12\'.littlehorse.TaskDefMetricsQueryRequest\x1a\x1b.littlehorse.TaskDefMetrics\"\x00\x12^\n\x16GetWfSpecMetricsWindow\x12&.littlehorse.WfSpecMetricsQueryRequest\x1a\x1a.littlehorse.WfSpecMetrics\"\x00\x12\x61\n\x12ListTaskDefMetrics\x12#.littlehorse.ListTaskMetricsRequest\x1a$.littlehorse.ListTaskMetricsResponse\"\x00\x12\\\n\x11ListWfSpecMetrics\x12!.littlehorse.ListWfMetricsRequest\x1a\".littlehorse.ListWfMetricsResponse\"\x00\x12\x41\n\tPutTenant\x12\x1d.littlehorse.PutTenantRequest\x1a\x13.littlehorse.Tenant\"\x00\x12\x39\n\tGetTenant\x12\x15.littlehorse.TenantId\x1a\x13.littlehorse.Tenant\"\x00\x12J\n\x0cPutPrincipal\x12 .littlehorse.PutPrincipalRequest\x1a\x16.littlehorse.Principal\"\x00\x12\x42\n\x0cGetPrincipal\x12\x18.littlehorse.PrincipalId\x1a\x16.littlehorse.Principal\"\x00\x12:\n\x06Whoami\x12\x16.google.protobuf.Empty\x1a\x16.littlehorse.Principal\"\x00\x12H\n\x10GetServerVersion\x12\x16.google.protobuf.Empty\x1a\x1a.littlehorse.ServerVersion\"\x00\x42M\n\x1fio.littlehorse.sdk.common.protoP\x01Z\t.;lhproto\xaa\x02\x1cLittleHorse.Sdk.Common.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x12\x0blittlehorse\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x13\x63ommon_wfspec.proto\x1a\x12\x63ommon_enums.proto\x1a\x0fobject_id.proto\x1a\x0evariable.proto\x1a\x14\x65xternal_event.proto\x1a\x0cwf_run.proto\x1a\x0enode_run.proto\x1a\x0etask_run.proto\x1a\x10user_tasks.proto\x1a\rwf_spec.proto\x1a\x0etask_def.proto\x1a\nacls.proto\x1a\x14workflow_event.proto\x1a\x16scheduled_wf_run.proto\x1a\rmetrics.proto\"+\n\x1bGetLatestUserTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xd3\x03\n\x10PutWfSpecRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x44\n\x0cthread_specs\x18\x05 \x03(\x0b\x32..littlehorse.PutWfSpecRequest.ThreadSpecsEntry\x12\x1e\n\x16\x65ntrypoint_thread_name\x18\x06 \x01(\t\x12\x43\n\x10retention_policy\x18\x08 \x01(\x0b\x32$.littlehorse.WorkflowRetentionPolicyH\x00\x88\x01\x01\x12\x46\n\x0eparent_wf_spec\x18\t \x01(\x0b\x32).littlehorse.WfSpec.ParentWfSpecReferenceH\x01\x88\x01\x01\x12\x37\n\x0f\x61llowed_updates\x18\n \x01(\x0e\x32\x1e.littlehorse.AllowedUpdateType\x1aK\n\x10ThreadSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.littlehorse.ThreadSpec:\x02\x38\x01\x42\x13\n\x11_retention_policyB\x11\n\x0f_parent_wf_specJ\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"l\n\x10PutMetricRequest\x12\x31\n\nmeasurable\x18\x01 \x01(\x0e\x32\x1d.littlehorse.MeasurableObject\x12%\n\x04type\x18\x02 \x01(\x0e\x32\x17.littlehorse.MetricType\"\x9f\x01\n\x11PutTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\ninput_vars\x18\x02 \x03(\x0b\x32\x18.littlehorse.VariableDef\x12<\n\routput_schema\x18\x03 \x01(\x0b\x32 .littlehorse.TaskDefOutputSchemaH\x00\x88\x01\x01\x42\x10\n\x0e_output_schema\"S\n\x1aPutWorkflowEventDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\'\n\x04type\x18\x02 \x01(\x0e\x32\x19.littlehorse.VariableType\"{\n\x15PutUserTaskDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x1a.littlehorse.UserTaskField\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"o\n\x1aPutExternalEventDefRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x43\n\x10retention_policy\x18\x02 \x01(\x0b\x32).littlehorse.ExternalEventRetentionPolicy\"\xc3\x02\n\x17PutExternalEventRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12>\n\x15\x65xternal_event_def_id\x18\x02 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x11\n\x04guid\x18\x03 \x01(\tH\x00\x88\x01\x01\x12+\n\x07\x63ontent\x18\x05 \x01(\x0b\x32\x1a.littlehorse.VariableValue\x12\x1e\n\x11thread_run_number\x18\x06 \x01(\x05H\x01\x88\x01\x01\x12\x1e\n\x11node_run_position\x18\x07 \x01(\x05H\x02\x88\x01\x01\x42\x07\n\x05_guidB\x14\n\x12_thread_run_numberB\x14\n\x12_node_run_positionJ\x04\x08\x04\x10\x05J\x04\x08\x08\x10\t\"F\n\x1a\x44\x65leteExternalEventRequest\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.littlehorse.ExternalEventId\"H\n\x1b\x44\x65leteScheduledWfRunRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x1d.littlehorse.ScheduledWfRunId\"6\n\x12\x44\x65leteWfRunRequest\x12 \n\x02id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\":\n\x14\x44\x65leteTaskDefRequest\x12\"\n\x02id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\"B\n\x18\x44\x65leteUserTaskDefRequest\x12&\n\x02id\x18\x01 \x01(\x0b\x32\x1a.littlehorse.UserTaskDefId\"8\n\x13\x44\x65leteWfSpecRequest\x12!\n\x02id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\"L\n\x1d\x44\x65leteExternalEventDefRequest\x12+\n\x02id\x18\x01 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\"L\n\x1d\x44\x65leteWorkflowEventDefRequest\x12+\n\x02id\x18\x01 \x01(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\"\xe3\x02\n\x0cRunWfRequest\x12\x14\n\x0cwf_spec_name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08revision\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12;\n\tvariables\x18\x04 \x03(\x0b\x32(.littlehorse.RunWfRequest.VariablesEntry\x12\x0f\n\x02id\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x33\n\x10parent_wf_run_id\x18\x06 \x01(\x0b\x32\x14.littlehorse.WfRunIdH\x03\x88\x01\x01\x1aL\n\x0eVariablesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue:\x02\x38\x01\x42\x10\n\x0e_major_versionB\x0b\n\t_revisionB\x05\n\x03_idB\x13\n\x11_parent_wf_run_id\"\x86\x03\n\x11ScheduleWfRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0cwf_spec_name\x18\x02 \x01(\t\x12\x1a\n\rmajor_version\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08revision\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12@\n\tvariables\x18\x05 \x03(\x0b\x32-.littlehorse.ScheduleWfRequest.VariablesEntry\x12\x33\n\x10parent_wf_run_id\x18\x06 \x01(\x0b\x32\x14.littlehorse.WfRunIdH\x03\x88\x01\x01\x12\x17\n\x0f\x63ron_expression\x18\x07 \x01(\t\x1aL\n\x0eVariablesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue:\x02\x38\x01\x42\x05\n\x03_idB\x10\n\x0e_major_versionB\x0b\n\t_revisionB\x13\n\x11_parent_wf_run_id\"L\n\rVariableMatch\x12\x10\n\x08var_name\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.littlehorse.VariableValue\"\xbd\x01\n\x19\x41waitWorkflowEventRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x36\n\revent_def_ids\x18\x02 \x03(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\x12?\n\x19workflow_events_to_ignore\x18\x03 \x03(\x0b\x32\x1c.littlehorse.WorkflowEventId\"\xdf\x03\n\x12SearchWfRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x0cwf_spec_name\x18\x03 \x01(\t\x12\"\n\x15wf_spec_major_version\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10wf_spec_revision\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12*\n\x06status\x18\x06 \x01(\x0e\x32\x15.littlehorse.LHStatusH\x04\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12\x34\n\x10variable_filters\x18\t \x03(\x0b\x32\x1a.littlehorse.VariableMatchB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x18\n\x16_wf_spec_major_versionB\x13\n\x11_wf_spec_revisionB\t\n\x07_statusB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"X\n\x0bWfRunIdList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.WfRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xbc\x02\n\x14SearchTaskRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\rtask_def_name\x18\x03 \x01(\t\x12,\n\x06status\x18\x04 \x01(\x0e\x32\x17.littlehorse.TaskStatusH\x02\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_statusB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"\\\n\rTaskRunIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.TaskRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xf1\x03\n\x14SearchNodeRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12=\n\tnode_type\x18\x05 \x01(\x0e\x32*.littlehorse.SearchNodeRunRequest.NodeType\x12%\n\x06status\x18\x06 \x01(\x0e\x32\x15.littlehorse.LHStatus\"\x9c\x01\n\x08NodeType\x12\x08\n\x04TASK\x10\x00\x12\x12\n\x0e\x45XTERNAL_EVENT\x10\x01\x12\x0e\n\nENTRYPOINT\x10\x02\x12\x08\n\x04\x45XIT\x10\x03\x12\x10\n\x0cSTART_THREAD\x10\x04\x12\x10\n\x0cWAIT_THREADS\x10\x05\x12\t\n\x05SLEEP\x10\x06\x12\r\n\tUSER_TASK\x10\x07\x12\x1a\n\x16START_MULTIPLE_THREADS\x10\x08\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"\\\n\rNodeRunIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.NodeRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb2\x03\n\x18SearchUserTaskRunRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x33\n\x06status\x18\x03 \x01(\x0e\x32\x1e.littlehorse.UserTaskRunStatusH\x02\x88\x01\x01\x12\x1f\n\x12user_task_def_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07user_id\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x17\n\nuser_group\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x07\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_statusB\x15\n\x13_user_task_def_nameB\n\n\x08_user_idB\r\n\x0b_user_groupB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"d\n\x11UserTaskRunIdList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.UserTaskRunId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x9e\x02\n\x15SearchVariableRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x1a.littlehorse.VariableValue\x12\"\n\x15wf_spec_major_version\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10wf_spec_revision\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12\x10\n\x08var_name\x18\x06 \x01(\t\x12\x14\n\x0cwf_spec_name\x18\x07 \x01(\tB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x18\n\x16_wf_spec_major_versionB\x13\n\x11_wf_spec_revision\"^\n\x0eVariableIdList\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.littlehorse.VariableId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"x\n\x14SearchTaskDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"\\\n\rTaskDefIdList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.TaskDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x98\x01\n\x18SearchUserTaskDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x10\n\x06prefix\x18\x03 \x01(\tH\x00\x12\x0e\n\x04name\x18\x04 \x01(\tH\x00\x42\x18\n\x16user_task_def_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limit\"d\n\x11UserTaskDefIdList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.UserTaskDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xa6\x01\n\x13SearchWfSpecRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x12\x10\n\x06prefix\x18\x04 \x01(\tH\x00\x12\x17\n\rtask_def_name\x18\x05 \x01(\tH\x00\x42\x12\n\x10wf_spec_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limit\"Z\n\x0cWfSpecIdList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.WfSpecId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x81\x01\n\x1dSearchExternalEventDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"n\n\x16\x45xternalEventDefIdList\x12\x30\n\x07results\x18\x01 \x03(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\x81\x01\n\x1dSearchWorkflowEventDefRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\t\n\x07_prefix\"n\n\x16WorkflowEventDefIdList\x12\x30\n\x07results\x18\x01 \x03(\x0b\x32\x1f.littlehorse.WorkflowEventDefId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"W\n\x13SearchTenantRequest\x12\x12\n\x05limit\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x42\x08\n\x06_limitB\x0b\n\t_bookmark\"Z\n\x0cTenantIdList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.TenantId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xab\x02\n\x16SearchPrincipalRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x02\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x12\x11\n\x07isAdmin\x18\x05 \x01(\x08H\x00\x12\x12\n\x08tenantId\x18\x06 \x01(\tH\x00\x42\x14\n\x12principal_criteriaB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"`\n\x0fPrincipalIdList\x12)\n\x07results\x18\x01 \x03(\x0b\x32\x18.littlehorse.PrincipalId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xda\x02\n\x1aSearchExternalEventRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12>\n\x15\x65xternal_event_def_id\x18\x05 \x01(\x0b\x32\x1f.littlehorse.ExternalEventDefId\x12\x17\n\nis_claimed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x42\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_startB\r\n\x0b_is_claimed\"h\n\x13\x45xternalEventIdList\x12-\n\x07results\x18\x01 \x03(\x0b\x32\x1c.littlehorse.ExternalEventId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb2\x02\n\x1aSearchWorkflowEventRequest\x12\x15\n\x08\x62ookmark\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05limit\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x37\n\x0e\x65\x61rliest_start\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x35\n\x0clatest_start\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12>\n\x15workflow_event_def_id\x18\x05 \x01(\x0b\x32\x1f.littlehorse.WorkflowEventDefIdB\x0b\n\t_bookmarkB\x08\n\x06_limitB\x11\n\x0f_earliest_startB\x0f\n\r_latest_start\"h\n\x13WorkflowEventIdList\x12-\n\x07results\x18\x01 \x03(\x0b\x32\x1c.littlehorse.WorkflowEventId\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"\xb6\x01\n\x13ListNodeRunsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x1e\n\x11thread_run_number\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08\x62ookmark\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\x14\n\x12_thread_run_numberB\x0b\n\t_bookmarkB\x08\n\x06_limit\"X\n\x0bNodeRunList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.NodeRun\x12\x15\n\x08\x62ookmark\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x0b\n\t_bookmark\"?\n\x14ListVariablesRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"6\n\x0cVariableList\x12&\n\x07results\x18\x01 \x03(\x0b\x32\x15.littlehorse.Variable\"D\n\x19ListExternalEventsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"@\n\x11\x45xternalEventList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.ExternalEvent\"D\n\x19ListWorkflowEventsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"@\n\x11WorkflowEventList\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.WorkflowEvent\"`\n\x19RegisterTaskWorkerRequest\x12\x16\n\x0etask_worker_id\x18\x01 \x01(\t\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\"s\n\x1aTaskWorkerHeartBeatRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x15\n\rlistener_name\x18\x03 \x01(\t\"\x81\x01\n\x1aRegisterTaskWorkerResponse\x12+\n\nyour_hosts\x18\x01 \x03(\x0b\x32\x17.littlehorse.LHHostInfo\x12\x1f\n\x12is_cluster_healthy\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x15\n\x13_is_cluster_healthy\"(\n\nLHHostInfo\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\x8b\x01\n\x0fPollTaskRequest\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12 \n\x13task_worker_version\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x16\n\x14_task_worker_version\"\x8c\x02\n\rScheduledTask\x12+\n\x0btask_run_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskRunId\x12+\n\x0btask_def_id\x18\x02 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x16\n\x0e\x61ttempt_number\x18\x03 \x01(\x05\x12-\n\tvariables\x18\x04 \x03(\x0b\x32\x1a.littlehorse.VarNameAndVal\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x06source\x18\x06 \x01(\x0b\x32\x1a.littlehorse.TaskRunSource\"N\n\x10PollTaskResponse\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1a.littlehorse.ScheduledTaskH\x00\x88\x01\x01\x42\t\n\x07_result\"\x81\x03\n\rReportTaskRun\x12+\n\x0btask_run_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskRunId\x12(\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x06status\x18\x03 \x01(\x0e\x32\x17.littlehorse.TaskStatus\x12\x33\n\nlog_output\x18\x05 \x01(\x0b\x32\x1a.littlehorse.VariableValueH\x01\x88\x01\x01\x12\x16\n\x0e\x61ttempt_number\x18\x06 \x01(\x05\x12,\n\x06output\x18\x04 \x01(\x0b\x32\x1a.littlehorse.VariableValueH\x00\x12)\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x18.littlehorse.LHTaskErrorH\x00\x12\x31\n\texception\x18\x08 \x01(\x0b\x32\x1c.littlehorse.LHTaskExceptionH\x00\x42\x08\n\x06resultB\r\n\x0b_log_output\"V\n\x10StopWfRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\"X\n\x12ResumeWfRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\"w\n\x16RescueThreadRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\x12\x19\n\x11thread_run_number\x18\x02 \x01(\x05\x12\x19\n\x11skip_current_node\x18\x03 \x01(\x08\"\xb3\x01\n\x1aTaskDefMetricsQueryRequest\x12\x30\n\x0cwindow_start\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x0bwindow_type\x18\x02 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x1a\n\rtask_def_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_task_def_name\"\xca\x01\n\x16ListTaskMetricsRequest\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x35\n\x11last_window_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x13\n\x0bnum_windows\x18\x04 \x01(\x05\"G\n\x17ListTaskMetricsResponse\x12,\n\x07results\x18\x01 \x03(\x0b\x32\x1b.littlehorse.TaskDefMetrics\"\xb1\x01\n\x19WfSpecMetricsQueryRequest\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\"\xc6\x01\n\x14ListWfMetricsRequest\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x35\n\x11last_window_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\rwindow_length\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x13\n\x0bnum_windows\x18\x04 \x01(\x05\"D\n\x15ListWfMetricsResponse\x12+\n\x07results\x18\x01 \x03(\x0b\x32\x1a.littlehorse.WfSpecMetrics\"\xfb\x02\n\x0eTaskDefMetrics\x12+\n\x0btask_def_id\x18\x01 \x01(\x0b\x32\x16.littlehorse.TaskDefId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x1d\n\x15schedule_to_start_max\x18\x04 \x01(\x03\x12\x1d\n\x15schedule_to_start_avg\x18\x05 \x01(\x03\x12\x1d\n\x15start_to_complete_max\x18\x06 \x01(\x03\x12\x1d\n\x15start_to_complete_avg\x18\x07 \x01(\x03\x12\x17\n\x0ftotal_completed\x18\x08 \x01(\x03\x12\x15\n\rtotal_errored\x18\t \x01(\x03\x12\x15\n\rtotal_started\x18\n \x01(\x03\x12\x17\n\x0ftotal_scheduled\x18\x0b \x01(\x03\"\xa1\x02\n\rWfSpecMetrics\x12)\n\nwf_spec_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x30\n\x0cwindow_start\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\x04type\x18\x03 \x01(\x0e\x32 .littlehorse.MetricsWindowLength\x12\x15\n\rtotal_started\x18\x04 \x01(\x03\x12\x17\n\x0ftotal_completed\x18\x05 \x01(\x03\x12\x15\n\rtotal_errored\x18\x06 \x01(\x03\x12\x1d\n\x15start_to_complete_max\x18\x07 \x01(\x03\x12\x1d\n\x15start_to_complete_avg\x18\x08 \x01(\x03\"A\n\x16ListUserTaskRunRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"<\n\x0fUserTaskRunList\x12)\n\x07results\x18\x01 \x03(\x0b\x32\x18.littlehorse.UserTaskRun\"F\n\x14ScheduledWfRunIdList\x12.\n\x07results\x18\x01 \x03(\x0b\x32\x1d.littlehorse.ScheduledWfRunId\"\x85\x01\n\x1bSearchScheduledWfRunRequest\x12\x14\n\x0cwf_spec_name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08revision\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\x10\n\x0e_major_versionB\x0b\n\t_revision\"\x8a\x01\n\x12TaskWorkerMetadata\x12\x16\n\x0etask_worker_id\x18\x01 \x01(\t\x12\x34\n\x10latest_heartbeat\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x05hosts\x18\x03 \x03(\x0b\x32\x17.littlehorse.LHHostInfo\"\x87\x02\n\x0fTaskWorkerGroup\x12*\n\x02id\x18\x01 \x01(\x0b\x32\x1e.littlehorse.TaskWorkerGroupId\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0ctask_workers\x18\x03 \x03(\x0b\x32-.littlehorse.TaskWorkerGroup.TaskWorkersEntry\x1aS\n\x10TaskWorkersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.littlehorse.TaskWorkerMetadata:\x02\x38\x01\">\n\x13ListTaskRunsRequest\x12\'\n\twf_run_id\x18\x01 \x01(\x0b\x32\x14.littlehorse.WfRunId\"4\n\x0bTaskRunList\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.littlehorse.TaskRun\"z\n\x14MigrateWfSpecRequest\x12*\n\x0bold_wf_spec\x18\x01 \x01(\x0b\x32\x15.littlehorse.WfSpecId\x12\x36\n\tmigration\x18\x02 \x01(\x0b\x32#.littlehorse.WfSpecVersionMigration\"T\n\x16GetLatestWfSpecRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1a\n\rmajor_version\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\x10\n\x0e_major_version\"\x94\x01\n\rServerVersion\x12\x15\n\rmajor_version\x18\x01 \x01(\x05\x12\x15\n\rminor_version\x18\x02 \x01(\x05\x12\x15\n\rpatch_version\x18\x03 \x01(\x05\x12#\n\x16pre_release_identifier\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x19\n\x17_pre_release_identifier\"8\n\rMetricRunList\x12\'\n\x07results\x18\x01 \x03(\x0b\x32\x16.littlehorse.MetricRun\"@\n\x14ListMetricRunRequest\x12(\n\tmetric_id\x18\x01 \x01(\x0b\x32\x15.littlehorse.MetricId*P\n\x11\x41llowedUpdateType\x12\x0f\n\x0b\x41LL_UPDATES\x10\x00\x12\x1a\n\x16MINOR_REVISION_UPDATES\x10\x01\x12\x0e\n\nNO_UPDATES\x10\x02\x32\xc4\x31\n\x0bLittleHorse\x12\x44\n\nPutTaskDef\x12\x1e.littlehorse.PutTaskDefRequest\x1a\x14.littlehorse.TaskDef\"\x00\x12<\n\nGetTaskDef\x12\x16.littlehorse.TaskDefId\x1a\x14.littlehorse.TaskDef\"\x00\x12L\n\x12GetTaskWorkerGroup\x12\x16.littlehorse.TaskDefId\x1a\x1c.littlehorse.TaskWorkerGroup\"\x00\x12_\n\x13PutExternalEventDef\x12\'.littlehorse.PutExternalEventDefRequest\x1a\x1d.littlehorse.ExternalEventDef\"\x00\x12W\n\x13GetExternalEventDef\x12\x1f.littlehorse.ExternalEventDefId\x1a\x1d.littlehorse.ExternalEventDef\"\x00\x12_\n\x13PutWorkflowEventDef\x12\'.littlehorse.PutWorkflowEventDefRequest\x1a\x1d.littlehorse.WorkflowEventDef\"\x00\x12\x41\n\tPutWfSpec\x12\x1d.littlehorse.PutWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12\x41\n\tPutMetric\x12\x1d.littlehorse.PutMetricRequest\x1a\x13.littlehorse.Metric\"\x00\x12\x39\n\tGetWfSpec\x12\x15.littlehorse.WfSpecId\x1a\x13.littlehorse.WfSpec\"\x00\x12M\n\x0fGetLatestWfSpec\x12#.littlehorse.GetLatestWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12I\n\rMigrateWfSpec\x12!.littlehorse.MigrateWfSpecRequest\x1a\x13.littlehorse.WfSpec\"\x00\x12P\n\x0ePutUserTaskDef\x12\".littlehorse.PutUserTaskDefRequest\x1a\x18.littlehorse.UserTaskDef\"\x00\x12H\n\x0eGetUserTaskDef\x12\x1a.littlehorse.UserTaskDefId\x1a\x18.littlehorse.UserTaskDef\"\x00\x12\\\n\x14GetLatestUserTaskDef\x12(.littlehorse.GetLatestUserTaskDefRequest\x1a\x18.littlehorse.UserTaskDef\"\x00\x12\x38\n\x05RunWf\x12\x19.littlehorse.RunWfRequest\x1a\x12.littlehorse.WfRun\"\x00\x12K\n\nScheduleWf\x12\x1e.littlehorse.ScheduleWfRequest\x1a\x1b.littlehorse.ScheduledWfRun\"\x00\x12\x65\n\x14SearchScheduledWfRun\x12(.littlehorse.SearchScheduledWfRunRequest\x1a!.littlehorse.ScheduledWfRunIdList\"\x00\x12Q\n\x11GetScheduledWfRun\x12\x1d.littlehorse.ScheduledWfRunId\x1a\x1b.littlehorse.ScheduledWfRun\"\x00\x12\x36\n\x08GetWfRun\x12\x14.littlehorse.WfRunId\x1a\x12.littlehorse.WfRun\"\x00\x12H\n\x0eGetUserTaskRun\x12\x1a.littlehorse.UserTaskRunId\x1a\x18.littlehorse.UserTaskRun\"\x00\x12T\n\x11\x41ssignUserTaskRun\x12%.littlehorse.AssignUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12X\n\x13\x43ompleteUserTaskRun\x12\'.littlehorse.CompleteUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x11\x43\x61ncelUserTaskRun\x12%.littlehorse.CancelUserTaskRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x62\n\x17SaveUserTaskRunProgress\x12+.littlehorse.SaveUserTaskRunProgressRequest\x1a\x18.littlehorse.UserTaskRun\"\x00\x12W\n\x10ListUserTaskRuns\x12#.littlehorse.ListUserTaskRunRequest\x1a\x1c.littlehorse.UserTaskRunList\"\x00\x12<\n\nGetNodeRun\x12\x16.littlehorse.NodeRunId\x1a\x14.littlehorse.NodeRun\"\x00\x12L\n\x0cListNodeRuns\x12 .littlehorse.ListNodeRunsRequest\x1a\x18.littlehorse.NodeRunList\"\x00\x12<\n\nGetTaskRun\x12\x16.littlehorse.TaskRunId\x1a\x14.littlehorse.TaskRun\"\x00\x12L\n\x0cListTaskRuns\x12 .littlehorse.ListTaskRunsRequest\x1a\x18.littlehorse.TaskRunList\"\x00\x12?\n\x0bGetVariable\x12\x17.littlehorse.VariableId\x1a\x15.littlehorse.Variable\"\x00\x12O\n\rListVariables\x12!.littlehorse.ListVariablesRequest\x1a\x19.littlehorse.VariableList\"\x00\x12V\n\x10PutExternalEvent\x12$.littlehorse.PutExternalEventRequest\x1a\x1a.littlehorse.ExternalEvent\"\x00\x12N\n\x10GetExternalEvent\x12\x1c.littlehorse.ExternalEventId\x1a\x1a.littlehorse.ExternalEvent\"\x00\x12Z\n\x12\x41waitWorkflowEvent\x12&.littlehorse.AwaitWorkflowEventRequest\x1a\x1a.littlehorse.WorkflowEvent\"\x00\x12W\n\x13GetWorkflowEventDef\x12\x1f.littlehorse.WorkflowEventDefId\x1a\x1d.littlehorse.WorkflowEventDef\"\x00\x12N\n\x10GetWorkflowEvent\x12\x1c.littlehorse.WorkflowEventId\x1a\x1a.littlehorse.WorkflowEvent\"\x00\x12^\n\x12ListExternalEvents\x12&.littlehorse.ListExternalEventsRequest\x1a\x1e.littlehorse.ExternalEventList\"\x00\x12^\n\x12ListWorkflowEvents\x12&.littlehorse.ListWorkflowEventsRequest\x1a\x1e.littlehorse.WorkflowEventList\"\x00\x12J\n\x0bSearchWfRun\x12\x1f.littlehorse.SearchWfRunRequest\x1a\x18.littlehorse.WfRunIdList\"\x00\x12P\n\rSearchNodeRun\x12!.littlehorse.SearchNodeRunRequest\x1a\x1a.littlehorse.NodeRunIdList\"\x00\x12P\n\rSearchTaskRun\x12!.littlehorse.SearchTaskRunRequest\x1a\x1a.littlehorse.TaskRunIdList\"\x00\x12\\\n\x11SearchUserTaskRun\x12%.littlehorse.SearchUserTaskRunRequest\x1a\x1e.littlehorse.UserTaskRunIdList\"\x00\x12S\n\x0eSearchVariable\x12\".littlehorse.SearchVariableRequest\x1a\x1b.littlehorse.VariableIdList\"\x00\x12\x62\n\x13SearchExternalEvent\x12\'.littlehorse.SearchExternalEventRequest\x1a .littlehorse.ExternalEventIdList\"\x00\x12\x62\n\x13SearchWorkflowEvent\x12\'.littlehorse.SearchWorkflowEventRequest\x1a .littlehorse.WorkflowEventIdList\"\x00\x12P\n\rSearchTaskDef\x12!.littlehorse.SearchTaskDefRequest\x1a\x1a.littlehorse.TaskDefIdList\"\x00\x12\\\n\x11SearchUserTaskDef\x12%.littlehorse.SearchUserTaskDefRequest\x1a\x1e.littlehorse.UserTaskDefIdList\"\x00\x12M\n\x0cSearchWfSpec\x12 .littlehorse.SearchWfSpecRequest\x1a\x19.littlehorse.WfSpecIdList\"\x00\x12k\n\x16SearchExternalEventDef\x12*.littlehorse.SearchExternalEventDefRequest\x1a#.littlehorse.ExternalEventDefIdList\"\x00\x12k\n\x16SearchWorkflowEventDef\x12*.littlehorse.SearchWorkflowEventDefRequest\x1a#.littlehorse.WorkflowEventDefIdList\"\x00\x12M\n\x0cSearchTenant\x12 .littlehorse.SearchTenantRequest\x1a\x19.littlehorse.TenantIdList\"\x00\x12V\n\x0fSearchPrincipal\x12#.littlehorse.SearchPrincipalRequest\x1a\x1c.littlehorse.PrincipalIdList\"\x00\x12g\n\x12RegisterTaskWorker\x12&.littlehorse.RegisterTaskWorkerRequest\x1a\'.littlehorse.RegisterTaskWorkerResponse\"\x00\x12M\n\x08PollTask\x12\x1c.littlehorse.PollTaskRequest\x1a\x1d.littlehorse.PollTaskResponse\"\x00(\x01\x30\x01\x12\x42\n\nReportTask\x12\x1a.littlehorse.ReportTaskRun\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\tStopWfRun\x12\x1d.littlehorse.StopWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12H\n\x0bResumeWfRun\x12\x1f.littlehorse.ResumeWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\x0fRescueThreadRun\x12#.littlehorse.RescueThreadRunRequest\x1a\x12.littlehorse.WfRun\"\x00\x12H\n\x0b\x44\x65leteWfRun\x12\x1f.littlehorse.DeleteWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12L\n\rDeleteTaskDef\x12!.littlehorse.DeleteTaskDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12J\n\x0c\x44\x65leteWfSpec\x12 .littlehorse.DeleteWfSpecRequest\x1a\x16.google.protobuf.Empty\"\x00\x12T\n\x11\x44\x65leteUserTaskDef\x12%.littlehorse.DeleteUserTaskDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n\x16\x44\x65leteExternalEventDef\x12*.littlehorse.DeleteExternalEventDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n\x16\x44\x65leteWorkflowEventDef\x12*.littlehorse.DeleteWorkflowEventDefRequest\x1a\x16.google.protobuf.Empty\"\x00\x12P\n\x0f\x44\x65letePrincipal\x12#.littlehorse.DeletePrincipalRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Z\n\x14\x44\x65leteScheduledWfRun\x12(.littlehorse.DeleteScheduledWfRunRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x17GetTaskDefMetricsWindow\x12\'.littlehorse.TaskDefMetricsQueryRequest\x1a\x1b.littlehorse.TaskDefMetrics\"\x00\x12^\n\x16GetWfSpecMetricsWindow\x12&.littlehorse.WfSpecMetricsQueryRequest\x1a\x1a.littlehorse.WfSpecMetrics\"\x00\x12\x61\n\x12ListTaskDefMetrics\x12#.littlehorse.ListTaskMetricsRequest\x1a$.littlehorse.ListTaskMetricsResponse\"\x00\x12\\\n\x11ListWfSpecMetrics\x12!.littlehorse.ListWfMetricsRequest\x1a\".littlehorse.ListWfMetricsResponse\"\x00\x12\x41\n\tPutTenant\x12\x1d.littlehorse.PutTenantRequest\x1a\x13.littlehorse.Tenant\"\x00\x12\x39\n\tGetTenant\x12\x15.littlehorse.TenantId\x1a\x13.littlehorse.Tenant\"\x00\x12J\n\x0cPutPrincipal\x12 .littlehorse.PutPrincipalRequest\x1a\x16.littlehorse.Principal\"\x00\x12\x42\n\x0cGetPrincipal\x12\x18.littlehorse.PrincipalId\x1a\x16.littlehorse.Principal\"\x00\x12:\n\x06Whoami\x12\x16.google.protobuf.Empty\x1a\x16.littlehorse.Principal\"\x00\x12H\n\x10GetServerVersion\x12\x16.google.protobuf.Empty\x1a\x1a.littlehorse.ServerVersion\"\x00\x12Q\n\x0eListMetricRuns\x12!.littlehorse.ListMetricRunRequest\x1a\x1a.littlehorse.MetricRunList\"\x00\x42M\n\x1fio.littlehorse.sdk.common.protoP\x01Z\t.;lhproto\xaa\x02\x1cLittleHorse.Sdk.Common.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -47,8 +47,8 @@ _SCHEDULEWFREQUEST_VARIABLESENTRY._serialized_options = b'8\001' _TASKWORKERGROUP_TASKWORKERSENTRY._options = None _TASKWORKERGROUP_TASKWORKERSENTRY._serialized_options = b'8\001' - _globals['_ALLOWEDUPDATETYPE']._serialized_start=13578 - _globals['_ALLOWEDUPDATETYPE']._serialized_end=13658 + _globals['_ALLOWEDUPDATETYPE']._serialized_start=13702 + _globals['_ALLOWEDUPDATETYPE']._serialized_end=13782 _globals['_GETLATESTUSERTASKDEFREQUEST']._serialized_start=356 _globals['_GETLATESTUSERTASKDEFREQUEST']._serialized_end=399 _globals['_PUTWFSPECREQUEST']._serialized_start=402 @@ -231,6 +231,10 @@ _globals['_GETLATESTWFSPECREQUEST']._serialized_end=13425 _globals['_SERVERVERSION']._serialized_start=13428 _globals['_SERVERVERSION']._serialized_end=13576 - _globals['_LITTLEHORSE']._serialized_start=13661 - _globals['_LITTLEHORSE']._serialized_end=19918 + _globals['_METRICRUNLIST']._serialized_start=13578 + _globals['_METRICRUNLIST']._serialized_end=13634 + _globals['_LISTMETRICRUNREQUEST']._serialized_start=13636 + _globals['_LISTMETRICRUNREQUEST']._serialized_end=13700 + _globals['_LITTLEHORSE']._serialized_start=13785 + _globals['_LITTLEHORSE']._serialized_end=20125 # @@protoc_insertion_point(module_scope) diff --git a/sdk-python/littlehorse/model/service_pb2.pyi b/sdk-python/littlehorse/model/service_pb2.pyi index 26a1f393a..5e1d54cee 100644 --- a/sdk-python/littlehorse/model/service_pb2.pyi +++ b/sdk-python/littlehorse/model/service_pb2.pyi @@ -933,3 +933,15 @@ class ServerVersion(_message.Message): patch_version: int pre_release_identifier: str def __init__(self, major_version: _Optional[int] = ..., minor_version: _Optional[int] = ..., patch_version: _Optional[int] = ..., pre_release_identifier: _Optional[str] = ...) -> None: ... + +class MetricRunList(_message.Message): + __slots__ = ["results"] + RESULTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_metrics_pb2.MetricRun] + def __init__(self, results: _Optional[_Iterable[_Union[_metrics_pb2.MetricRun, _Mapping]]] = ...) -> None: ... + +class ListMetricRunRequest(_message.Message): + __slots__ = ["metric_id"] + METRIC_ID_FIELD_NUMBER: _ClassVar[int] + metric_id: _object_id_pb2.MetricId + def __init__(self, metric_id: _Optional[_Union[_object_id_pb2.MetricId, _Mapping]] = ...) -> None: ... diff --git a/sdk-python/littlehorse/model/service_pb2_grpc.py b/sdk-python/littlehorse/model/service_pb2_grpc.py index f079c5eb8..07af2faea 100644 --- a/sdk-python/littlehorse/model/service_pb2_grpc.py +++ b/sdk-python/littlehorse/model/service_pb2_grpc.py @@ -428,6 +428,11 @@ def __init__(self, channel): request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, response_deserializer=service__pb2.ServerVersion.FromString, _registered_method=True) + self.ListMetricRuns = channel.unary_unary( + '/littlehorse.LittleHorse/ListMetricRuns', + request_serializer=service__pb2.ListMetricRunRequest.SerializeToString, + response_deserializer=service__pb2.MetricRunList.FromString, + _registered_method=True) class LittleHorseServicer(object): @@ -1019,6 +1024,12 @@ def GetServerVersion(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def ListMetricRuns(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_LittleHorseServicer_to_server(servicer, server): rpc_method_handlers = { @@ -1402,6 +1413,11 @@ def add_LittleHorseServicer_to_server(servicer, server): request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, response_serializer=service__pb2.ServerVersion.SerializeToString, ), + 'ListMetricRuns': grpc.unary_unary_rpc_method_handler( + servicer.ListMetricRuns, + request_deserializer=service__pb2.ListMetricRunRequest.FromString, + response_serializer=service__pb2.MetricRunList.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'littlehorse.LittleHorse', rpc_method_handlers) @@ -3464,3 +3480,30 @@ def GetServerVersion(request, timeout, metadata, _registered_method=True) + + @staticmethod + def ListMetricRuns(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/littlehorse.LittleHorse/ListMetricRuns', + service__pb2.ListMetricRunRequest.SerializeToString, + service__pb2.MetricRunList.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/server/src/main/java/io/littlehorse/common/model/AggregateMetricsModel.java b/server/src/main/java/io/littlehorse/common/model/AggregateMetricsModel.java index c685feb0d..b634d360c 100644 --- a/server/src/main/java/io/littlehorse/common/model/AggregateMetricsModel.java +++ b/server/src/main/java/io/littlehorse/common/model/AggregateMetricsModel.java @@ -3,11 +3,13 @@ import com.google.protobuf.Message; import io.littlehorse.common.LHSerializable; import io.littlehorse.common.model.getable.core.metrics.MetricRunModel; +import io.littlehorse.common.model.getable.objectId.MetricIdModel; import io.littlehorse.common.model.getable.objectId.MetricRunIdModel; import io.littlehorse.common.model.getable.objectId.TenantIdModel; import io.littlehorse.common.model.repartitioncommand.RepartitionSubCommand; import io.littlehorse.common.proto.AggregateMetrics; import io.littlehorse.common.proto.RepartitionWindowedMetric; +import io.littlehorse.common.util.LHUtil; import io.littlehorse.sdk.common.exception.LHSerdeError; import io.littlehorse.sdk.common.proto.MetricRun; import io.littlehorse.server.streams.store.StoredGetable; @@ -23,13 +25,16 @@ public class AggregateMetricsModel extends LHSerializable implements RepartitionSubCommand { private TenantIdModel tenantId; + private MetricIdModel metricId; private List windowedMetrics = new ArrayList<>(); public AggregateMetricsModel() {} - public AggregateMetricsModel(TenantIdModel tenantId, List windowedMetrics) { + public AggregateMetricsModel( + TenantIdModel tenantId, MetricIdModel metricId, List windowedMetrics) { this.windowedMetrics = windowedMetrics; this.tenantId = tenantId; + this.metricId = metricId; } @Override @@ -39,6 +44,7 @@ public AggregateMetrics.Builder toProto() { .map(RepartitionWindowedMetric.Builder::build) .toList(); return AggregateMetrics.newBuilder() + .setMetricId(metricId.toProto()) .addAllWindowedMetrics(windowedMetricsPb) .setTenantId(tenantId.toProto()); } @@ -50,6 +56,7 @@ public void initFrom(Message proto, ExecutionContext context) throws LHSerdeErro .map(pb -> LHSerializable.fromProto(pb, RepartitionWindowedMetricModel.class, context)) .toList(); this.tenantId = LHSerializable.fromProto(p.getTenantId(), TenantIdModel.class, context); + this.metricId = LHSerializable.fromProto(p.getMetricId(), MetricIdModel.class, context); } public List getWindowedMetrics() { @@ -71,12 +78,11 @@ public void process(TenantScopedStore repartitionedStore, ProcessorContext storedGetable = (StoredGetable) repartitionedStore.get( - new MetricRunIdModel(windowedMetric.getMetricId(), windowedMetric.getWindowStart()) - .getStoreableKey(), + new MetricRunIdModel(metricId, windowedMetric.getWindowStart()).getStoreableKey(), StoredGetable.class); if (storedGetable == null) { - storedGetable = new StoredGetable<>(new MetricRunModel( - new MetricRunIdModel(windowedMetric.getMetricId(), windowedMetric.getWindowStart()))); + storedGetable = new StoredGetable<>( + new MetricRunModel(new MetricRunIdModel(metricId, windowedMetric.getWindowStart()))); } MetricRunModel metricRun = storedGetable.getStoredObject(); metricRun.mergePartitionMetric(windowedMetric); @@ -90,6 +96,6 @@ public void process(TenantScopedStore repartitionedStore, ProcessorContext { - private MetricIdModel metricId; private double value; private Date windowStart; public RepartitionWindowedMetricModel() {} - public RepartitionWindowedMetricModel(MetricIdModel metricId, double value, Date windowStart) { - this.metricId = metricId; + public RepartitionWindowedMetricModel(double value, Date windowStart) { this.value = value; this.windowStart = windowStart; } @@ -28,17 +25,13 @@ public RepartitionWindowedMetricModel(MetricIdModel metricId, double value, Date @Override public void initFrom(Message proto, ExecutionContext context) throws LHSerdeError { RepartitionWindowedMetric p = (RepartitionWindowedMetric) proto; - this.metricId = LHSerializable.fromProto(p.getMetricId(), MetricIdModel.class, context); this.value = p.getValue(); this.windowStart = LHUtil.fromProtoTs(p.getWindowStart()); } @Override public RepartitionWindowedMetric.Builder toProto() { - return RepartitionWindowedMetric.newBuilder() - .setMetricId(metricId.toProto()) - .setValue(value) - .setWindowStart(LHUtil.fromDate(windowStart)); + return RepartitionWindowedMetric.newBuilder().setValue(value).setWindowStart(LHUtil.fromDate(windowStart)); } @Override diff --git a/server/src/main/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModel.java b/server/src/main/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModel.java index 423d333e6..3131e658b 100644 --- a/server/src/main/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModel.java +++ b/server/src/main/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModel.java @@ -128,7 +128,6 @@ public List buildRepartitionCommand(LocalDateTim } private RepartitionWindowedMetricModel toRepartitionMetric(PartitionWindowedMetricModel windowedMetric) { - return new RepartitionWindowedMetricModel( - id.getMetricId(), windowedMetric.getValue(), windowedMetric.getWindowStart()); + return new RepartitionWindowedMetricModel(windowedMetric.getValue(), windowedMetric.getWindowStart()); } } diff --git a/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricIdModel.java b/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricIdModel.java index 42387b36b..ff3c08f41 100644 --- a/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricIdModel.java +++ b/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricIdModel.java @@ -11,6 +11,7 @@ import io.littlehorse.sdk.common.proto.MetricId; import io.littlehorse.sdk.common.proto.MetricType; import io.littlehorse.server.streams.topology.core.ExecutionContext; +import java.util.Optional; public class MetricIdModel extends MetadataId { @@ -58,4 +59,9 @@ public void initFromString(String storeKey) { public GetableClassEnum getType() { return GetableClassEnum.METRIC; } + + @Override + public Optional getPartitionKey() { + return Optional.of(LHUtil.getCompositeId(measurable.toString(), type.toString())); + } } diff --git a/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricRunIdModel.java b/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricRunIdModel.java index dfceb58aa..9c7e54ba1 100644 --- a/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricRunIdModel.java +++ b/server/src/main/java/io/littlehorse/common/model/getable/objectId/MetricRunIdModel.java @@ -50,8 +50,9 @@ public String toString() { @Override public void initFromString(String storeKey) { String[] parts = storeKey.split("/"); - this.metricId = (MetricIdModel) MetricIdModel.fromString(parts[0], MetricIdModel.class); - this.windowStart = new Date(Long.parseLong(parts[1])); + this.metricId = (MetricIdModel) + MetricIdModel.fromString(LHUtil.getCompositeId(parts[0], parts[1]), MetricIdModel.class); + this.windowStart = new Date(Long.parseLong(parts[2])); } @Override diff --git a/server/src/main/java/io/littlehorse/common/proto/AggregateMetrics.java b/server/src/main/java/io/littlehorse/common/proto/AggregateMetrics.java index 70cfc3ec4..c554ecbab 100644 --- a/server/src/main/java/io/littlehorse/common/proto/AggregateMetrics.java +++ b/server/src/main/java/io/littlehorse/common/proto/AggregateMetrics.java @@ -39,18 +39,44 @@ protected java.lang.Object newInstance( io.littlehorse.common.proto.AggregateMetrics.class, io.littlehorse.common.proto.AggregateMetrics.Builder.class); } - public static final int WINDOWED_METRICS_FIELD_NUMBER = 1; + public static final int METRIC_ID_FIELD_NUMBER = 1; + private io.littlehorse.sdk.common.proto.MetricId metricId_; + /** + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + @java.lang.Override + public boolean hasMetricId() { + return metricId_ != null; + } + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricId getMetricId() { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + @java.lang.Override + public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + + public static final int WINDOWED_METRICS_FIELD_NUMBER = 2; @SuppressWarnings("serial") private java.util.List windowedMetrics_; /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ @java.lang.Override public java.util.List getWindowedMetricsList() { return windowedMetrics_; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ @java.lang.Override public java.util.List @@ -58,21 +84,21 @@ public java.util.List get return windowedMetrics_; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ @java.lang.Override public int getWindowedMetricsCount() { return windowedMetrics_.size(); } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ @java.lang.Override public io.littlehorse.common.proto.RepartitionWindowedMetric getWindowedMetrics(int index) { return windowedMetrics_.get(index); } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ @java.lang.Override public io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowedMetricsOrBuilder( @@ -80,10 +106,10 @@ public io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowe return windowedMetrics_.get(index); } - public static final int TENANT_ID_FIELD_NUMBER = 2; + public static final int TENANT_ID_FIELD_NUMBER = 3; private io.littlehorse.sdk.common.proto.TenantId tenantId_; /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return Whether the tenantId field is set. */ @java.lang.Override @@ -91,7 +117,7 @@ public boolean hasTenantId() { return tenantId_ != null; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return The tenantId. */ @java.lang.Override @@ -99,7 +125,7 @@ public io.littlehorse.sdk.common.proto.TenantId getTenantId() { return tenantId_ == null ? io.littlehorse.sdk.common.proto.TenantId.getDefaultInstance() : tenantId_; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ @java.lang.Override public io.littlehorse.sdk.common.proto.TenantIdOrBuilder getTenantIdOrBuilder() { @@ -120,11 +146,14 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (metricId_ != null) { + output.writeMessage(1, getMetricId()); + } for (int i = 0; i < windowedMetrics_.size(); i++) { - output.writeMessage(1, windowedMetrics_.get(i)); + output.writeMessage(2, windowedMetrics_.get(i)); } if (tenantId_ != null) { - output.writeMessage(2, getTenantId()); + output.writeMessage(3, getTenantId()); } getUnknownFields().writeTo(output); } @@ -135,13 +164,17 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; + if (metricId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getMetricId()); + } for (int i = 0; i < windowedMetrics_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, windowedMetrics_.get(i)); + .computeMessageSize(2, windowedMetrics_.get(i)); } if (tenantId_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getTenantId()); + .computeMessageSize(3, getTenantId()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -158,6 +191,11 @@ public boolean equals(final java.lang.Object obj) { } io.littlehorse.common.proto.AggregateMetrics other = (io.littlehorse.common.proto.AggregateMetrics) obj; + if (hasMetricId() != other.hasMetricId()) return false; + if (hasMetricId()) { + if (!getMetricId() + .equals(other.getMetricId())) return false; + } if (!getWindowedMetricsList() .equals(other.getWindowedMetricsList())) return false; if (hasTenantId() != other.hasTenantId()) return false; @@ -176,6 +214,10 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); + if (hasMetricId()) { + hash = (37 * hash) + METRIC_ID_FIELD_NUMBER; + hash = (53 * hash) + getMetricId().hashCode(); + } if (getWindowedMetricsCount() > 0) { hash = (37 * hash) + WINDOWED_METRICS_FIELD_NUMBER; hash = (53 * hash) + getWindowedMetricsList().hashCode(); @@ -315,13 +357,18 @@ private Builder( public Builder clear() { super.clear(); bitField0_ = 0; + metricId_ = null; + if (metricIdBuilder_ != null) { + metricIdBuilder_.dispose(); + metricIdBuilder_ = null; + } if (windowedMetricsBuilder_ == null) { windowedMetrics_ = java.util.Collections.emptyList(); } else { windowedMetrics_ = null; windowedMetricsBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); tenantId_ = null; if (tenantIdBuilder_ != null) { tenantIdBuilder_.dispose(); @@ -361,9 +408,9 @@ public io.littlehorse.common.proto.AggregateMetrics buildPartial() { private void buildPartialRepeatedFields(io.littlehorse.common.proto.AggregateMetrics result) { if (windowedMetricsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000002) != 0)) { windowedMetrics_ = java.util.Collections.unmodifiableList(windowedMetrics_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } result.windowedMetrics_ = windowedMetrics_; } else { @@ -373,7 +420,12 @@ private void buildPartialRepeatedFields(io.littlehorse.common.proto.AggregateMet private void buildPartial0(io.littlehorse.common.proto.AggregateMetrics result) { int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { + if (((from_bitField0_ & 0x00000001) != 0)) { + result.metricId_ = metricIdBuilder_ == null + ? metricId_ + : metricIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { result.tenantId_ = tenantIdBuilder_ == null ? tenantId_ : tenantIdBuilder_.build(); @@ -424,11 +476,14 @@ public Builder mergeFrom(com.google.protobuf.Message other) { public Builder mergeFrom(io.littlehorse.common.proto.AggregateMetrics other) { if (other == io.littlehorse.common.proto.AggregateMetrics.getDefaultInstance()) return this; + if (other.hasMetricId()) { + mergeMetricId(other.getMetricId()); + } if (windowedMetricsBuilder_ == null) { if (!other.windowedMetrics_.isEmpty()) { if (windowedMetrics_.isEmpty()) { windowedMetrics_ = other.windowedMetrics_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } else { ensureWindowedMetricsIsMutable(); windowedMetrics_.addAll(other.windowedMetrics_); @@ -441,7 +496,7 @@ public Builder mergeFrom(io.littlehorse.common.proto.AggregateMetrics other) { windowedMetricsBuilder_.dispose(); windowedMetricsBuilder_ = null; windowedMetrics_ = other.windowedMetrics_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); windowedMetricsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getWindowedMetricsFieldBuilder() : null; @@ -480,6 +535,13 @@ public Builder mergeFrom( done = true; break; case 10: { + input.readMessage( + getMetricIdFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { io.littlehorse.common.proto.RepartitionWindowedMetric m = input.readMessage( io.littlehorse.common.proto.RepartitionWindowedMetric.parser(), @@ -491,14 +553,14 @@ public Builder mergeFrom( windowedMetricsBuilder_.addMessage(m); } break; - } // case 10 - case 18: { + } // case 18 + case 26: { input.readMessage( getTenantIdFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; break; - } // case 18 + } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -516,12 +578,131 @@ public Builder mergeFrom( } private int bitField0_; + private io.littlehorse.sdk.common.proto.MetricId metricId_; + private com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> metricIdBuilder_; + /** + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + public boolean hasMetricId() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + public io.littlehorse.sdk.common.proto.MetricId getMetricId() { + if (metricIdBuilder_ == null) { + return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } else { + return metricIdBuilder_.getMessage(); + } + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder setMetricId(io.littlehorse.sdk.common.proto.MetricId value) { + if (metricIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + metricId_ = value; + } else { + metricIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder setMetricId( + io.littlehorse.sdk.common.proto.MetricId.Builder builderForValue) { + if (metricIdBuilder_ == null) { + metricId_ = builderForValue.build(); + } else { + metricIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder mergeMetricId(io.littlehorse.sdk.common.proto.MetricId value) { + if (metricIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + metricId_ != null && + metricId_ != io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance()) { + getMetricIdBuilder().mergeFrom(value); + } else { + metricId_ = value; + } + } else { + metricIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public Builder clearMetricId() { + bitField0_ = (bitField0_ & ~0x00000001); + metricId_ = null; + if (metricIdBuilder_ != null) { + metricIdBuilder_.dispose(); + metricIdBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public io.littlehorse.sdk.common.proto.MetricId.Builder getMetricIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getMetricIdFieldBuilder().getBuilder(); + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { + if (metricIdBuilder_ != null) { + return metricIdBuilder_.getMessageOrBuilder(); + } else { + return metricId_ == null ? + io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; + } + } + /** + * .littlehorse.MetricId metric_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> + getMetricIdFieldBuilder() { + if (metricIdBuilder_ == null) { + metricIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder>( + getMetricId(), + getParentForChildren(), + isClean()); + metricId_ = null; + } + return metricIdBuilder_; + } + private java.util.List windowedMetrics_ = java.util.Collections.emptyList(); private void ensureWindowedMetricsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000002) != 0)) { windowedMetrics_ = new java.util.ArrayList(windowedMetrics_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000002; } } @@ -529,7 +710,7 @@ private void ensureWindowedMetricsIsMutable() { io.littlehorse.common.proto.RepartitionWindowedMetric, io.littlehorse.common.proto.RepartitionWindowedMetric.Builder, io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder> windowedMetricsBuilder_; /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public java.util.List getWindowedMetricsList() { if (windowedMetricsBuilder_ == null) { @@ -539,7 +720,7 @@ public java.util.List get } } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public int getWindowedMetricsCount() { if (windowedMetricsBuilder_ == null) { @@ -549,7 +730,7 @@ public int getWindowedMetricsCount() { } } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public io.littlehorse.common.proto.RepartitionWindowedMetric getWindowedMetrics(int index) { if (windowedMetricsBuilder_ == null) { @@ -559,7 +740,7 @@ public io.littlehorse.common.proto.RepartitionWindowedMetric getWindowedMetrics( } } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder setWindowedMetrics( int index, io.littlehorse.common.proto.RepartitionWindowedMetric value) { @@ -576,7 +757,7 @@ public Builder setWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder setWindowedMetrics( int index, io.littlehorse.common.proto.RepartitionWindowedMetric.Builder builderForValue) { @@ -590,7 +771,7 @@ public Builder setWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder addWindowedMetrics(io.littlehorse.common.proto.RepartitionWindowedMetric value) { if (windowedMetricsBuilder_ == null) { @@ -606,7 +787,7 @@ public Builder addWindowedMetrics(io.littlehorse.common.proto.RepartitionWindowe return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder addWindowedMetrics( int index, io.littlehorse.common.proto.RepartitionWindowedMetric value) { @@ -623,7 +804,7 @@ public Builder addWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder addWindowedMetrics( io.littlehorse.common.proto.RepartitionWindowedMetric.Builder builderForValue) { @@ -637,7 +818,7 @@ public Builder addWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder addWindowedMetrics( int index, io.littlehorse.common.proto.RepartitionWindowedMetric.Builder builderForValue) { @@ -651,7 +832,7 @@ public Builder addWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder addAllWindowedMetrics( java.lang.Iterable values) { @@ -666,12 +847,12 @@ public Builder addAllWindowedMetrics( return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder clearWindowedMetrics() { if (windowedMetricsBuilder_ == null) { windowedMetrics_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { windowedMetricsBuilder_.clear(); @@ -679,7 +860,7 @@ public Builder clearWindowedMetrics() { return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public Builder removeWindowedMetrics(int index) { if (windowedMetricsBuilder_ == null) { @@ -692,14 +873,14 @@ public Builder removeWindowedMetrics(int index) { return this; } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder getWindowedMetricsBuilder( int index) { return getWindowedMetricsFieldBuilder().getBuilder(index); } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowedMetricsOrBuilder( int index) { @@ -709,7 +890,7 @@ public io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowe } } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public java.util.List getWindowedMetricsOrBuilderList() { @@ -720,14 +901,14 @@ public io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowe } } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder addWindowedMetricsBuilder() { return getWindowedMetricsFieldBuilder().addBuilder( io.littlehorse.common.proto.RepartitionWindowedMetric.getDefaultInstance()); } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder addWindowedMetricsBuilder( int index) { @@ -735,7 +916,7 @@ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder addWindowed index, io.littlehorse.common.proto.RepartitionWindowedMetric.getDefaultInstance()); } /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ public java.util.List getWindowedMetricsBuilderList() { @@ -748,7 +929,7 @@ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder addWindowed windowedMetricsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.littlehorse.common.proto.RepartitionWindowedMetric, io.littlehorse.common.proto.RepartitionWindowedMetric.Builder, io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder>( windowedMetrics_, - ((bitField0_ & 0x00000001) != 0), + ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); windowedMetrics_ = null; @@ -760,14 +941,14 @@ public io.littlehorse.common.proto.RepartitionWindowedMetric.Builder addWindowed private com.google.protobuf.SingleFieldBuilderV3< io.littlehorse.sdk.common.proto.TenantId, io.littlehorse.sdk.common.proto.TenantId.Builder, io.littlehorse.sdk.common.proto.TenantIdOrBuilder> tenantIdBuilder_; /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return Whether the tenantId field is set. */ public boolean hasTenantId() { - return ((bitField0_ & 0x00000002) != 0); + return ((bitField0_ & 0x00000004) != 0); } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return The tenantId. */ public io.littlehorse.sdk.common.proto.TenantId getTenantId() { @@ -778,7 +959,7 @@ public io.littlehorse.sdk.common.proto.TenantId getTenantId() { } } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public Builder setTenantId(io.littlehorse.sdk.common.proto.TenantId value) { if (tenantIdBuilder_ == null) { @@ -789,12 +970,12 @@ public Builder setTenantId(io.littlehorse.sdk.common.proto.TenantId value) { } else { tenantIdBuilder_.setMessage(value); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public Builder setTenantId( io.littlehorse.sdk.common.proto.TenantId.Builder builderForValue) { @@ -803,16 +984,16 @@ public Builder setTenantId( } else { tenantIdBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public Builder mergeTenantId(io.littlehorse.sdk.common.proto.TenantId value) { if (tenantIdBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && + if (((bitField0_ & 0x00000004) != 0) && tenantId_ != null && tenantId_ != io.littlehorse.sdk.common.proto.TenantId.getDefaultInstance()) { getTenantIdBuilder().mergeFrom(value); @@ -822,15 +1003,15 @@ public Builder mergeTenantId(io.littlehorse.sdk.common.proto.TenantId value) { } else { tenantIdBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public Builder clearTenantId() { - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); tenantId_ = null; if (tenantIdBuilder_ != null) { tenantIdBuilder_.dispose(); @@ -840,15 +1021,15 @@ public Builder clearTenantId() { return this; } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public io.littlehorse.sdk.common.proto.TenantId.Builder getTenantIdBuilder() { - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return getTenantIdFieldBuilder().getBuilder(); } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ public io.littlehorse.sdk.common.proto.TenantIdOrBuilder getTenantIdOrBuilder() { if (tenantIdBuilder_ != null) { @@ -859,7 +1040,7 @@ public io.littlehorse.sdk.common.proto.TenantIdOrBuilder getTenantIdOrBuilder() } } /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ private com.google.protobuf.SingleFieldBuilderV3< io.littlehorse.sdk.common.proto.TenantId, io.littlehorse.sdk.common.proto.TenantId.Builder, io.littlehorse.sdk.common.proto.TenantIdOrBuilder> diff --git a/server/src/main/java/io/littlehorse/common/proto/AggregateMetricsOrBuilder.java b/server/src/main/java/io/littlehorse/common/proto/AggregateMetricsOrBuilder.java index fe89a1ebd..241b25efc 100644 --- a/server/src/main/java/io/littlehorse/common/proto/AggregateMetricsOrBuilder.java +++ b/server/src/main/java/io/littlehorse/common/proto/AggregateMetricsOrBuilder.java @@ -8,41 +8,56 @@ public interface AggregateMetricsOrBuilder extends com.google.protobuf.MessageOrBuilder { /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * .littlehorse.MetricId metric_id = 1; + * @return Whether the metricId field is set. + */ + boolean hasMetricId(); + /** + * .littlehorse.MetricId metric_id = 1; + * @return The metricId. + */ + io.littlehorse.sdk.common.proto.MetricId getMetricId(); + /** + * .littlehorse.MetricId metric_id = 1; + */ + io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder(); + + /** + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ java.util.List getWindowedMetricsList(); /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ io.littlehorse.common.proto.RepartitionWindowedMetric getWindowedMetrics(int index); /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ int getWindowedMetricsCount(); /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ java.util.List getWindowedMetricsOrBuilderList(); /** - * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 1; + * repeated .littlehorse.RepartitionWindowedMetric windowed_metrics = 2; */ io.littlehorse.common.proto.RepartitionWindowedMetricOrBuilder getWindowedMetricsOrBuilder( int index); /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return Whether the tenantId field is set. */ boolean hasTenantId(); /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; * @return The tenantId. */ io.littlehorse.sdk.common.proto.TenantId getTenantId(); /** - * .littlehorse.TenantId tenant_id = 2; + * .littlehorse.TenantId tenant_id = 3; */ io.littlehorse.sdk.common.proto.TenantIdOrBuilder getTenantIdOrBuilder(); } diff --git a/server/src/main/java/io/littlehorse/common/proto/CommandOuterClass.java b/server/src/main/java/io/littlehorse/common/proto/CommandOuterClass.java index d60297dd7..f8a582eb6 100644 --- a/server/src/main/java/io/littlehorse/common/proto/CommandOuterClass.java +++ b/server/src/main/java/io/littlehorse/common/proto/CommandOuterClass.java @@ -259,97 +259,97 @@ public static void registerAllExtensions( "\n\013task_def_id\030\001 \001(\0132\026.littlehorse.TaskDe" + "fId\022(\n\ttenant_id\030\002 \001(\0132\025.littlehorse.Ten" + "antId\0225\n\016metric_updates\030\003 \003(\0132\035.littleho" + - "rse.TaskMetricUpdate\"~\n\020AggregateMetrics" + - "\022@\n\020windowed_metrics\030\001 \003(\0132&.littlehorse" + - ".RepartitionWindowedMetric\022(\n\ttenant_id\030" + - "\002 \001(\0132\025.littlehorse.TenantId\"\271\002\n\016WfMetri" + - "cUpdate\0220\n\014window_start\030\001 \001(\0132\032.google.p" + - "rotobuf.Timestamp\022.\n\004type\030\002 \001(\0162 .little" + - "horse.MetricsWindowLength\022)\n\nwf_spec_id\030" + - "\003 \001(\0132\025.littlehorse.WfSpecId\022\023\n\013num_entr" + - "ies\030\004 \001(\003\022\035\n\025start_to_complete_max\030\005 \001(\003" + - "\022\037\n\027start_to_complete_total\030\006 \001(\003\022\027\n\017tot" + - "al_completed\030\007 \001(\003\022\025\n\rtotal_errored\030\010 \001(" + - "\003\022\025\n\rtotal_started\030\t \001(\003\"K\n\020PartitionMet" + - "rics\0227\n\021metrics_by_tenant\030\001 \003(\0132\034.little" + - "horse.MetricsByTenant\"\205\003\n\017MetricsByTenan" + - "t\022(\n\ttenant_id\030\001 \001(\0132\025.littlehorse.Tenan" + - "tId\022L\n\021lh_status_changes\030\002 \003(\01321.littleh" + - "orse.MetricsByTenant.LhStatusChangesEntr" + - "y\022P\n\023task_status_changes\030\003 \003(\01323.littleh" + - "orse.MetricsByTenant.TaskStatusChangesEn" + - "try\032R\n\024LhStatusChangesEntry\022\013\n\003key\030\001 \001(\t" + - "\022)\n\005value\030\002 \001(\0132\032.littlehorse.StatusChan" + - "ges:\0028\001\032T\n\026TaskStatusChangesEntry\022\013\n\003key" + - "\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.littlehorse.Stat" + - "usChanges:\0028\001\"<\n\rStatusChanges\022+\n\007change" + - "s\030\001 \003(\0132\032.littlehorse.StatusChanged\"\320\001\n\r" + - "StatusChanged\022(\n\004time\030\001 \001(\0132\032.google.pro" + - "tobuf.Timestamp\0221\n\tlh_status\030\002 \001(\0132\034.lit" + - "tlehorse.LHStatusChangedH\000\0225\n\013task_statu" + - "s\030\003 \001(\0132\036.littlehorse.TaskStatusChangedH" + - "\000\022!\n\031first_event_to_last_delay\030\t \001(\003B\010\n\006" + - "status\"\205\001\n\017LHStatusChanged\0223\n\017previous_s" + - "tatus\030\001 \001(\0162\025.littlehorse.LHStatusH\000\210\001\001\022" + - ")\n\nnew_status\030\002 \001(\0162\025.littlehorse.LHStat" + - "usB\022\n\020_previous_status\"\213\001\n\021TaskStatusCha" + - "nged\0225\n\017previous_status\030\001 \001(\0162\027.littleho" + - "rse.TaskStatusH\000\210\001\001\022+\n\nnew_status\030\002 \001(\0162" + - "\027.littlehorse.TaskStatusB\022\n\020_previous_st" + - "atus\"\273\003\n\024RepartitionCommandPb\022(\n\004time\030\001 " + - "\001(\0132\032.google.protobuf.Timestamp\022\027\n\ncomma" + - "nd_id\030\002 \001(\tH\001\210\001\001\022;\n\021create_remote_tag\030\005 " + - "\001(\0132\036.littlehorse.CreateRemoteTagPbH\000\022;\n" + - "\021remove_remote_tag\030\006 \001(\0132\036.littlehorse.R" + - "emoveRemoteTagPbH\000\022?\n\024aggregate_wf_metri" + - "cs\030\007 \001(\0132\037.littlehorse.AggregateWfMetric" + - "sH\000\022C\n\026aggregate_task_metrics\030\010 \001(\0132!.li" + - "ttlehorse.AggregateTaskMetricsH\000\022:\n\021aggr" + - "egate_metrics\030\t \001(\0132\035.littlehorse.Aggreg" + - "ateMetricsH\000B\025\n\023repartition_commandB\r\n\013_" + - "command_id\"\226\003\n\020TaskMetricUpdate\022+\n\013task_" + - "def_id\030\001 \001(\0132\026.littlehorse.TaskDefId\0220\n\014" + - "window_start\030\002 \001(\0132\032.google.protobuf.Tim" + - "estamp\022.\n\004type\030\003 \001(\0162 .littlehorse.Metri" + - "csWindowLength\022\023\n\013num_entries\030\004 \001(\003\022\035\n\025s" + - "chedule_to_start_max\030\005 \001(\003\022\037\n\027schedule_t" + - "o_start_total\030\006 \001(\003\022\035\n\025start_to_complete" + - "_max\030\007 \001(\003\022\037\n\027start_to_complete_total\030\010 " + - "\001(\003\022\027\n\017total_completed\030\t \001(\003\022\025\n\rtotal_er" + - "rored\030\n \001(\003\022\025\n\rtotal_started\030\013 \001(\003\022\027\n\017to" + - "tal_scheduled\030\014 \001(\003\"4\n\021CreateRemoteTagPb" + - "\022\037\n\003tag\030\001 \001(\0132\022.littlehorse.TagPb\"=\n\021Rem" + - "oveRemoteTagPb\022\021\n\tstore_key\030\001 \001(\t\022\025\n\rpar" + - "tition_key\030\002 \001(\t\"\273\001\n\020TaskClaimEventPb\022+\n" + - "\013task_run_id\030\001 \001(\0132\026.littlehorse.TaskRun" + - "Id\022(\n\004time\030\002 \001(\0132\032.google.protobuf.Times" + - "tamp\022\026\n\016task_worker_id\030\003 \001(\t\022 \n\023task_wor" + - "ker_version\030\004 \001(\tH\000\210\001\001B\026\n\024_task_worker_v" + - "ersion\"I\n\032ExternalEventNodeTimeoutPb\022+\n\013" + - "node_run_id\030\001 \001(\0132\026.littlehorse.NodeRunI" + - "d\"A\n\022SleepNodeMaturedPb\022+\n\013node_run_id\030\001" + - " \001(\0132\026.littlehorse.NodeRunId\"m\n\022Triggere" + - "dTaskRunPb\022/\n\020task_to_schedule\030\001 \001(\0132\025.l" + - "ittlehorse.TaskNode\022&\n\006source\030\002 \001(\0132\026.li" + - "ttlehorse.NodeRunId\";\n\025TaskAttemptRetryR" + - "eady\022\"\n\002id\030\001 \001(\0132\026.littlehorse.TaskRunId" + - "\"\364\001\n\030DeadlineReassignUserTask\0229\n\013new_use" + - "r_id\030\001 \001(\0132\037.littlehorse.VariableAssignm" + - "entH\000\210\001\001\022<\n\016new_user_group\030\002 \001(\0132\037.littl" + - "ehorse.VariableAssignmentH\001\210\001\001\022-\n\tuser_t" + - "ask\030\004 \001(\0132\032.littlehorse.UserTaskRunId\022\r\n" + - "\005epoch\030\005 \001(\003B\016\n\014_new_user_idB\021\n\017_new_use" + - "r_group\"\360\001\n\tLHTimerPb\0223\n\017maturation_time" + - "\030\001 \001(\0132\032.google.protobuf.Timestamp\022\013\n\003ke" + - "y\030\002 \001(\t\022\r\n\005topic\030\003 \001(\t\022\017\n\007payload\030\004 \001(\014\022" + - "-\n\ttenant_id\030\005 \001(\0132\025.littlehorse.TenantI" + - "dH\000\210\001\001\0223\n\014principal_id\030\006 \001(\0132\030.littlehor" + - "se.PrincipalIdH\001\210\001\001B\014\n\n_tenant_idB\017\n\r_pr" + - "incipal_id\"B\n\034DeleteTaskWorkerGroupReque" + - "st\022\"\n\002id\030\001 \001(\0132\026.littlehorse.TaskDefId\"\206" + - "\001\n\031RepartitionWindowedMetric\022(\n\tmetric_i" + - "d\030\001 \001(\0132\025.littlehorse.MetricId\022\r\n\005value\030" + - "\002 \001(\001\0220\n\014window_start\030\003 \001(\0132\032.google.pro" + + "rse.TaskMetricUpdate\"\250\001\n\020AggregateMetric" + + "s\022(\n\tmetric_id\030\001 \001(\0132\025.littlehorse.Metri" + + "cId\022@\n\020windowed_metrics\030\002 \003(\0132&.littleho" + + "rse.RepartitionWindowedMetric\022(\n\ttenant_" + + "id\030\003 \001(\0132\025.littlehorse.TenantId\"\271\002\n\016WfMe" + + "tricUpdate\0220\n\014window_start\030\001 \001(\0132\032.googl" + + "e.protobuf.Timestamp\022.\n\004type\030\002 \001(\0162 .lit" + + "tlehorse.MetricsWindowLength\022)\n\nwf_spec_" + + "id\030\003 \001(\0132\025.littlehorse.WfSpecId\022\023\n\013num_e" + + "ntries\030\004 \001(\003\022\035\n\025start_to_complete_max\030\005 " + + "\001(\003\022\037\n\027start_to_complete_total\030\006 \001(\003\022\027\n\017" + + "total_completed\030\007 \001(\003\022\025\n\rtotal_errored\030\010" + + " \001(\003\022\025\n\rtotal_started\030\t \001(\003\"K\n\020Partition" + + "Metrics\0227\n\021metrics_by_tenant\030\001 \003(\0132\034.lit" + + "tlehorse.MetricsByTenant\"\205\003\n\017MetricsByTe" + + "nant\022(\n\ttenant_id\030\001 \001(\0132\025.littlehorse.Te" + + "nantId\022L\n\021lh_status_changes\030\002 \003(\01321.litt" + + "lehorse.MetricsByTenant.LhStatusChangesE" + + "ntry\022P\n\023task_status_changes\030\003 \003(\01323.litt" + + "lehorse.MetricsByTenant.TaskStatusChange" + + "sEntry\032R\n\024LhStatusChangesEntry\022\013\n\003key\030\001 " + + "\001(\t\022)\n\005value\030\002 \001(\0132\032.littlehorse.StatusC" + + "hanges:\0028\001\032T\n\026TaskStatusChangesEntry\022\013\n\003" + + "key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.littlehorse.S" + + "tatusChanges:\0028\001\"<\n\rStatusChanges\022+\n\007cha" + + "nges\030\001 \003(\0132\032.littlehorse.StatusChanged\"\320" + + "\001\n\rStatusChanged\022(\n\004time\030\001 \001(\0132\032.google." + + "protobuf.Timestamp\0221\n\tlh_status\030\002 \001(\0132\034." + + "littlehorse.LHStatusChangedH\000\0225\n\013task_st" + + "atus\030\003 \001(\0132\036.littlehorse.TaskStatusChang" + + "edH\000\022!\n\031first_event_to_last_delay\030\t \001(\003B" + + "\010\n\006status\"\205\001\n\017LHStatusChanged\0223\n\017previou" + + "s_status\030\001 \001(\0162\025.littlehorse.LHStatusH\000\210" + + "\001\001\022)\n\nnew_status\030\002 \001(\0162\025.littlehorse.LHS" + + "tatusB\022\n\020_previous_status\"\213\001\n\021TaskStatus" + + "Changed\0225\n\017previous_status\030\001 \001(\0162\027.littl" + + "ehorse.TaskStatusH\000\210\001\001\022+\n\nnew_status\030\002 \001" + + "(\0162\027.littlehorse.TaskStatusB\022\n\020_previous" + + "_status\"\273\003\n\024RepartitionCommandPb\022(\n\004time" + + "\030\001 \001(\0132\032.google.protobuf.Timestamp\022\027\n\nco" + + "mmand_id\030\002 \001(\tH\001\210\001\001\022;\n\021create_remote_tag" + + "\030\005 \001(\0132\036.littlehorse.CreateRemoteTagPbH\000" + + "\022;\n\021remove_remote_tag\030\006 \001(\0132\036.littlehors" + + "e.RemoveRemoteTagPbH\000\022?\n\024aggregate_wf_me" + + "trics\030\007 \001(\0132\037.littlehorse.AggregateWfMet" + + "ricsH\000\022C\n\026aggregate_task_metrics\030\010 \001(\0132!" + + ".littlehorse.AggregateTaskMetricsH\000\022:\n\021a" + + "ggregate_metrics\030\t \001(\0132\035.littlehorse.Agg" + + "regateMetricsH\000B\025\n\023repartition_commandB\r" + + "\n\013_command_id\"\226\003\n\020TaskMetricUpdate\022+\n\013ta" + + "sk_def_id\030\001 \001(\0132\026.littlehorse.TaskDefId\022" + + "0\n\014window_start\030\002 \001(\0132\032.google.protobuf." + + "Timestamp\022.\n\004type\030\003 \001(\0162 .littlehorse.Me" + + "tricsWindowLength\022\023\n\013num_entries\030\004 \001(\003\022\035" + + "\n\025schedule_to_start_max\030\005 \001(\003\022\037\n\027schedul" + + "e_to_start_total\030\006 \001(\003\022\035\n\025start_to_compl" + + "ete_max\030\007 \001(\003\022\037\n\027start_to_complete_total" + + "\030\010 \001(\003\022\027\n\017total_completed\030\t \001(\003\022\025\n\rtotal" + + "_errored\030\n \001(\003\022\025\n\rtotal_started\030\013 \001(\003\022\027\n" + + "\017total_scheduled\030\014 \001(\003\"4\n\021CreateRemoteTa" + + "gPb\022\037\n\003tag\030\001 \001(\0132\022.littlehorse.TagPb\"=\n\021" + + "RemoveRemoteTagPb\022\021\n\tstore_key\030\001 \001(\t\022\025\n\r" + + "partition_key\030\002 \001(\t\"\273\001\n\020TaskClaimEventPb" + + "\022+\n\013task_run_id\030\001 \001(\0132\026.littlehorse.Task" + + "RunId\022(\n\004time\030\002 \001(\0132\032.google.protobuf.Ti" + + "mestamp\022\026\n\016task_worker_id\030\003 \001(\t\022 \n\023task_" + + "worker_version\030\004 \001(\tH\000\210\001\001B\026\n\024_task_worke" + + "r_version\"I\n\032ExternalEventNodeTimeoutPb\022" + + "+\n\013node_run_id\030\001 \001(\0132\026.littlehorse.NodeR" + + "unId\"A\n\022SleepNodeMaturedPb\022+\n\013node_run_i" + + "d\030\001 \001(\0132\026.littlehorse.NodeRunId\"m\n\022Trigg" + + "eredTaskRunPb\022/\n\020task_to_schedule\030\001 \001(\0132" + + "\025.littlehorse.TaskNode\022&\n\006source\030\002 \001(\0132\026" + + ".littlehorse.NodeRunId\";\n\025TaskAttemptRet" + + "ryReady\022\"\n\002id\030\001 \001(\0132\026.littlehorse.TaskRu" + + "nId\"\364\001\n\030DeadlineReassignUserTask\0229\n\013new_" + + "user_id\030\001 \001(\0132\037.littlehorse.VariableAssi" + + "gnmentH\000\210\001\001\022<\n\016new_user_group\030\002 \001(\0132\037.li" + + "ttlehorse.VariableAssignmentH\001\210\001\001\022-\n\tuse" + + "r_task\030\004 \001(\0132\032.littlehorse.UserTaskRunId" + + "\022\r\n\005epoch\030\005 \001(\003B\016\n\014_new_user_idB\021\n\017_new_" + + "user_group\"\360\001\n\tLHTimerPb\0223\n\017maturation_t" + + "ime\030\001 \001(\0132\032.google.protobuf.Timestamp\022\013\n" + + "\003key\030\002 \001(\t\022\r\n\005topic\030\003 \001(\t\022\017\n\007payload\030\004 \001" + + "(\014\022-\n\ttenant_id\030\005 \001(\0132\025.littlehorse.Tena" + + "ntIdH\000\210\001\001\0223\n\014principal_id\030\006 \001(\0132\030.little" + + "horse.PrincipalIdH\001\210\001\001B\014\n\n_tenant_idB\017\n\r" + + "_principal_id\"B\n\034DeleteTaskWorkerGroupRe" + + "quest\022\"\n\002id\030\001 \001(\0132\026.littlehorse.TaskDefI" + + "d\"\\\n\031RepartitionWindowedMetric\022\r\n\005value\030" + + "\001 \001(\001\0220\n\014window_start\030\002 \001(\0132\032.google.pro" + "tobuf.TimestampB\037\n\033io.littlehorse.common" + ".protoP\001b\006proto3" }; @@ -408,7 +408,7 @@ public static void registerAllExtensions( internal_static_littlehorse_AggregateMetrics_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_littlehorse_AggregateMetrics_descriptor, - new java.lang.String[] { "WindowedMetrics", "TenantId", }); + new java.lang.String[] { "MetricId", "WindowedMetrics", "TenantId", }); internal_static_littlehorse_WfMetricUpdate_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_littlehorse_WfMetricUpdate_fieldAccessorTable = new @@ -540,7 +540,7 @@ public static void registerAllExtensions( internal_static_littlehorse_RepartitionWindowedMetric_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_littlehorse_RepartitionWindowedMetric_descriptor, - new java.lang.String[] { "MetricId", "Value", "WindowStart", }); + new java.lang.String[] { "Value", "WindowStart", }); com.google.protobuf.TimestampProto.getDescriptor(); io.littlehorse.sdk.common.proto.Service.getDescriptor(); io.littlehorse.sdk.common.proto.ObjectId.getDescriptor(); diff --git a/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetric.java b/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetric.java index 6eda9f89d..2e2f97882 100644 --- a/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetric.java +++ b/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetric.java @@ -38,36 +38,10 @@ protected java.lang.Object newInstance( io.littlehorse.common.proto.RepartitionWindowedMetric.class, io.littlehorse.common.proto.RepartitionWindowedMetric.Builder.class); } - public static final int METRIC_ID_FIELD_NUMBER = 1; - private io.littlehorse.sdk.common.proto.MetricId metricId_; - /** - * .littlehorse.MetricId metric_id = 1; - * @return Whether the metricId field is set. - */ - @java.lang.Override - public boolean hasMetricId() { - return metricId_ != null; - } - /** - * .littlehorse.MetricId metric_id = 1; - * @return The metricId. - */ - @java.lang.Override - public io.littlehorse.sdk.common.proto.MetricId getMetricId() { - return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - @java.lang.Override - public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { - return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; - } - - public static final int VALUE_FIELD_NUMBER = 2; + public static final int VALUE_FIELD_NUMBER = 1; private double value_ = 0D; /** - * double value = 2; + * double value = 1; * @return The value. */ @java.lang.Override @@ -75,10 +49,10 @@ public double getValue() { return value_; } - public static final int WINDOW_START_FIELD_NUMBER = 3; + public static final int WINDOW_START_FIELD_NUMBER = 2; private com.google.protobuf.Timestamp windowStart_; /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return Whether the windowStart field is set. */ @java.lang.Override @@ -86,7 +60,7 @@ public boolean hasWindowStart() { return windowStart_ != null; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return The windowStart. */ @java.lang.Override @@ -94,7 +68,7 @@ public com.google.protobuf.Timestamp getWindowStart() { return windowStart_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : windowStart_; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getWindowStartOrBuilder() { @@ -115,14 +89,11 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (metricId_ != null) { - output.writeMessage(1, getMetricId()); - } if (java.lang.Double.doubleToRawLongBits(value_) != 0) { - output.writeDouble(2, value_); + output.writeDouble(1, value_); } if (windowStart_ != null) { - output.writeMessage(3, getWindowStart()); + output.writeMessage(2, getWindowStart()); } getUnknownFields().writeTo(output); } @@ -133,17 +104,13 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; - if (metricId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getMetricId()); - } if (java.lang.Double.doubleToRawLongBits(value_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(2, value_); + .computeDoubleSize(1, value_); } if (windowStart_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getWindowStart()); + .computeMessageSize(2, getWindowStart()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -160,11 +127,6 @@ public boolean equals(final java.lang.Object obj) { } io.littlehorse.common.proto.RepartitionWindowedMetric other = (io.littlehorse.common.proto.RepartitionWindowedMetric) obj; - if (hasMetricId() != other.hasMetricId()) return false; - if (hasMetricId()) { - if (!getMetricId() - .equals(other.getMetricId())) return false; - } if (java.lang.Double.doubleToLongBits(getValue()) != java.lang.Double.doubleToLongBits( other.getValue())) return false; @@ -184,10 +146,6 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasMetricId()) { - hash = (37 * hash) + METRIC_ID_FIELD_NUMBER; - hash = (53 * hash) + getMetricId().hashCode(); - } hash = (37 * hash) + VALUE_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getValue())); @@ -326,11 +284,6 @@ private Builder( public Builder clear() { super.clear(); bitField0_ = 0; - metricId_ = null; - if (metricIdBuilder_ != null) { - metricIdBuilder_.dispose(); - metricIdBuilder_ = null; - } value_ = 0D; windowStart_ = null; if (windowStartBuilder_ != null) { @@ -371,14 +324,9 @@ public io.littlehorse.common.proto.RepartitionWindowedMetric buildPartial() { private void buildPartial0(io.littlehorse.common.proto.RepartitionWindowedMetric result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.metricId_ = metricIdBuilder_ == null - ? metricId_ - : metricIdBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { result.value_ = value_; } - if (((from_bitField0_ & 0x00000004) != 0)) { + if (((from_bitField0_ & 0x00000002) != 0)) { result.windowStart_ = windowStartBuilder_ == null ? windowStart_ : windowStartBuilder_.build(); @@ -429,9 +377,6 @@ public Builder mergeFrom(com.google.protobuf.Message other) { public Builder mergeFrom(io.littlehorse.common.proto.RepartitionWindowedMetric other) { if (other == io.littlehorse.common.proto.RepartitionWindowedMetric.getDefaultInstance()) return this; - if (other.hasMetricId()) { - mergeMetricId(other.getMetricId()); - } if (other.getValue() != 0D) { setValue(other.getValue()); } @@ -464,25 +409,18 @@ public Builder mergeFrom( case 0: done = true; break; - case 10: { - input.readMessage( - getMetricIdFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 17: { + case 9: { value_ = input.readDouble(); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; break; - } // case 17 - case 26: { + } // case 9 + case 18: { input.readMessage( getWindowStartFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; break; - } // case 26 + } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -500,128 +438,9 @@ public Builder mergeFrom( } private int bitField0_; - private io.littlehorse.sdk.common.proto.MetricId metricId_; - private com.google.protobuf.SingleFieldBuilderV3< - io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> metricIdBuilder_; - /** - * .littlehorse.MetricId metric_id = 1; - * @return Whether the metricId field is set. - */ - public boolean hasMetricId() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .littlehorse.MetricId metric_id = 1; - * @return The metricId. - */ - public io.littlehorse.sdk.common.proto.MetricId getMetricId() { - if (metricIdBuilder_ == null) { - return metricId_ == null ? io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; - } else { - return metricIdBuilder_.getMessage(); - } - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public Builder setMetricId(io.littlehorse.sdk.common.proto.MetricId value) { - if (metricIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - metricId_ = value; - } else { - metricIdBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public Builder setMetricId( - io.littlehorse.sdk.common.proto.MetricId.Builder builderForValue) { - if (metricIdBuilder_ == null) { - metricId_ = builderForValue.build(); - } else { - metricIdBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public Builder mergeMetricId(io.littlehorse.sdk.common.proto.MetricId value) { - if (metricIdBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - metricId_ != null && - metricId_ != io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance()) { - getMetricIdBuilder().mergeFrom(value); - } else { - metricId_ = value; - } - } else { - metricIdBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public Builder clearMetricId() { - bitField0_ = (bitField0_ & ~0x00000001); - metricId_ = null; - if (metricIdBuilder_ != null) { - metricIdBuilder_.dispose(); - metricIdBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public io.littlehorse.sdk.common.proto.MetricId.Builder getMetricIdBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getMetricIdFieldBuilder().getBuilder(); - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - public io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder() { - if (metricIdBuilder_ != null) { - return metricIdBuilder_.getMessageOrBuilder(); - } else { - return metricId_ == null ? - io.littlehorse.sdk.common.proto.MetricId.getDefaultInstance() : metricId_; - } - } - /** - * .littlehorse.MetricId metric_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder> - getMetricIdFieldBuilder() { - if (metricIdBuilder_ == null) { - metricIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - io.littlehorse.sdk.common.proto.MetricId, io.littlehorse.sdk.common.proto.MetricId.Builder, io.littlehorse.sdk.common.proto.MetricIdOrBuilder>( - getMetricId(), - getParentForChildren(), - isClean()); - metricId_ = null; - } - return metricIdBuilder_; - } - private double value_ ; /** - * double value = 2; + * double value = 1; * @return The value. */ @java.lang.Override @@ -629,23 +448,23 @@ public double getValue() { return value_; } /** - * double value = 2; + * double value = 1; * @param value The value to set. * @return This builder for chaining. */ public Builder setValue(double value) { value_ = value; - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * double value = 2; + * double value = 1; * @return This builder for chaining. */ public Builder clearValue() { - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); value_ = 0D; onChanged(); return this; @@ -655,14 +474,14 @@ public Builder clearValue() { private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> windowStartBuilder_; /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return Whether the windowStart field is set. */ public boolean hasWindowStart() { - return ((bitField0_ & 0x00000004) != 0); + return ((bitField0_ & 0x00000002) != 0); } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return The windowStart. */ public com.google.protobuf.Timestamp getWindowStart() { @@ -673,7 +492,7 @@ public com.google.protobuf.Timestamp getWindowStart() { } } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public Builder setWindowStart(com.google.protobuf.Timestamp value) { if (windowStartBuilder_ == null) { @@ -684,12 +503,12 @@ public Builder setWindowStart(com.google.protobuf.Timestamp value) { } else { windowStartBuilder_.setMessage(value); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public Builder setWindowStart( com.google.protobuf.Timestamp.Builder builderForValue) { @@ -698,16 +517,16 @@ public Builder setWindowStart( } else { windowStartBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public Builder mergeWindowStart(com.google.protobuf.Timestamp value) { if (windowStartBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) && + if (((bitField0_ & 0x00000002) != 0) && windowStart_ != null && windowStart_ != com.google.protobuf.Timestamp.getDefaultInstance()) { getWindowStartBuilder().mergeFrom(value); @@ -717,15 +536,15 @@ public Builder mergeWindowStart(com.google.protobuf.Timestamp value) { } else { windowStartBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public Builder clearWindowStart() { - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); windowStart_ = null; if (windowStartBuilder_ != null) { windowStartBuilder_.dispose(); @@ -735,15 +554,15 @@ public Builder clearWindowStart() { return this; } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public com.google.protobuf.Timestamp.Builder getWindowStartBuilder() { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return getWindowStartFieldBuilder().getBuilder(); } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ public com.google.protobuf.TimestampOrBuilder getWindowStartOrBuilder() { if (windowStartBuilder_ != null) { @@ -754,7 +573,7 @@ public com.google.protobuf.TimestampOrBuilder getWindowStartOrBuilder() { } } /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> diff --git a/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetricOrBuilder.java b/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetricOrBuilder.java index ce60baf5c..74a5edded 100644 --- a/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetricOrBuilder.java +++ b/server/src/main/java/io/littlehorse/common/proto/RepartitionWindowedMetricOrBuilder.java @@ -8,38 +8,23 @@ public interface RepartitionWindowedMetricOrBuilder extends com.google.protobuf.MessageOrBuilder { /** - * .littlehorse.MetricId metric_id = 1; - * @return Whether the metricId field is set. - */ - boolean hasMetricId(); - /** - * .littlehorse.MetricId metric_id = 1; - * @return The metricId. - */ - io.littlehorse.sdk.common.proto.MetricId getMetricId(); - /** - * .littlehorse.MetricId metric_id = 1; - */ - io.littlehorse.sdk.common.proto.MetricIdOrBuilder getMetricIdOrBuilder(); - - /** - * double value = 2; + * double value = 1; * @return The value. */ double getValue(); /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return Whether the windowStart field is set. */ boolean hasWindowStart(); /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; * @return The windowStart. */ com.google.protobuf.Timestamp getWindowStart(); /** - * .google.protobuf.Timestamp window_start = 3; + * .google.protobuf.Timestamp window_start = 2; */ com.google.protobuf.TimestampOrBuilder getWindowStartOrBuilder(); } diff --git a/server/src/main/java/io/littlehorse/server/LHServerListener.java b/server/src/main/java/io/littlehorse/server/LHServerListener.java index 3775abcf3..ae7367340 100644 --- a/server/src/main/java/io/littlehorse/server/LHServerListener.java +++ b/server/src/main/java/io/littlehorse/server/LHServerListener.java @@ -105,6 +105,7 @@ import io.littlehorse.sdk.common.proto.GetLatestUserTaskDefRequest; import io.littlehorse.sdk.common.proto.GetLatestWfSpecRequest; import io.littlehorse.sdk.common.proto.ListExternalEventsRequest; +import io.littlehorse.sdk.common.proto.ListMetricRunRequest; import io.littlehorse.sdk.common.proto.ListNodeRunsRequest; import io.littlehorse.sdk.common.proto.ListTaskMetricsRequest; import io.littlehorse.sdk.common.proto.ListTaskMetricsResponse; @@ -116,6 +117,7 @@ import io.littlehorse.sdk.common.proto.ListWorkflowEventsRequest; import io.littlehorse.sdk.common.proto.LittleHorseGrpc.LittleHorseImplBase; import io.littlehorse.sdk.common.proto.Metric; +import io.littlehorse.sdk.common.proto.MetricRunList; import io.littlehorse.sdk.common.proto.MigrateWfSpecRequest; import io.littlehorse.sdk.common.proto.NodeRun; import io.littlehorse.sdk.common.proto.NodeRunId; @@ -205,6 +207,7 @@ import io.littlehorse.server.streams.lhinternalscan.PublicScanReply; import io.littlehorse.server.streams.lhinternalscan.PublicScanRequest; import io.littlehorse.server.streams.lhinternalscan.publicrequests.ListExternalEventsRequestModel; +import io.littlehorse.server.streams.lhinternalscan.publicrequests.ListMetricRunRequestModel; import io.littlehorse.server.streams.lhinternalscan.publicrequests.ListNodeRunsRequestModel; import io.littlehorse.server.streams.lhinternalscan.publicrequests.ListTaskMetricsRequestModel; import io.littlehorse.server.streams.lhinternalscan.publicrequests.ListTaskRunsRequestModel; @@ -228,6 +231,7 @@ import io.littlehorse.server.streams.lhinternalscan.publicrequests.SearchWorkflowEventDefRequestModel; import io.littlehorse.server.streams.lhinternalscan.publicrequests.SearchWorkflowEventRequestModel; import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListExternalEventsReply; +import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListMetricRunReply; import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListNodeRunReply; import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListTaskMetricsReply; import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListTaskRunsReply; @@ -899,6 +903,13 @@ public void listNodeRuns(ListNodeRunsRequest req, StreamObserver ct handleScan(lnr, ctx, ListNodeRunReply.class); } + @Override + public void listMetricRuns(ListMetricRunRequest req, StreamObserver ctx) { + ListMetricRunRequestModel lnr = + LHSerializable.fromProto(req, ListMetricRunRequestModel.class, requestContext()); + handleScan(lnr, ctx, ListMetricRunReply.class); + } + @Override @Authorize(resources = ACLResource.ACL_WORKFLOW, actions = ACLAction.READ) public void listVariables(ListVariablesRequest req, StreamObserver ctx) { diff --git a/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/ObjectIdScanBoundaryStrategy.java b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/ObjectIdScanBoundaryStrategy.java index 9eb3561f5..1530e1c28 100644 --- a/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/ObjectIdScanBoundaryStrategy.java +++ b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/ObjectIdScanBoundaryStrategy.java @@ -2,7 +2,7 @@ import com.google.protobuf.Message; import io.littlehorse.common.LHConstants; -import io.littlehorse.common.model.getable.objectId.WfRunIdModel; +import io.littlehorse.common.model.getable.ObjectIdModel; import io.littlehorse.common.proto.InternalScanPb; public class ObjectIdScanBoundaryStrategy implements SearchScanBoundaryStrategy { @@ -31,10 +31,14 @@ public String getSearchAttributeString() { return partitionKey; } - public static ObjectIdScanBoundaryStrategy from(WfRunIdModel wfRunId) { + public static ObjectIdScanBoundaryStrategy from(ObjectIdModel wfRunId) { return new ObjectIdScanBoundaryStrategy(wfRunId.getPartitionKey().get(), wfRunId + "/", wfRunId + "/~"); } + public static ObjectIdScanBoundaryStrategy fromPrefix(String partitionKey, String prefix) { + return new ObjectIdScanBoundaryStrategy(partitionKey, prefix + "/", prefix + "/~"); + } + public static ObjectIdScanBoundaryStrategy prefixMetadataScan() { return new ObjectIdScanBoundaryStrategy(LHConstants.META_PARTITION_KEY, "", "~"); } diff --git a/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicrequests/ListMetricRunRequestModel.java b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicrequests/ListMetricRunRequestModel.java new file mode 100644 index 000000000..85ab004a0 --- /dev/null +++ b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicrequests/ListMetricRunRequestModel.java @@ -0,0 +1,66 @@ +package io.littlehorse.server.streams.lhinternalscan.publicrequests; + +import com.google.protobuf.Message; +import io.littlehorse.common.LHSerializable; +import io.littlehorse.common.LHStore; +import io.littlehorse.common.exceptions.LHApiException; +import io.littlehorse.common.model.getable.core.metrics.MetricRunModel; +import io.littlehorse.common.model.getable.objectId.MetricIdModel; +import io.littlehorse.common.model.getable.objectId.TenantIdModel; +import io.littlehorse.common.proto.GetableClassEnum; +import io.littlehorse.common.proto.TagStorageType; +import io.littlehorse.common.util.LHUtil; +import io.littlehorse.sdk.common.exception.LHSerdeError; +import io.littlehorse.sdk.common.proto.ListMetricRunRequest; +import io.littlehorse.sdk.common.proto.MetricRun; +import io.littlehorse.sdk.common.proto.MetricRunList; +import io.littlehorse.server.streams.lhinternalscan.ObjectIdScanBoundaryStrategy; +import io.littlehorse.server.streams.lhinternalscan.PublicScanRequest; +import io.littlehorse.server.streams.lhinternalscan.SearchScanBoundaryStrategy; +import io.littlehorse.server.streams.lhinternalscan.publicsearchreplies.ListMetricRunReply; +import io.littlehorse.server.streams.topology.core.ExecutionContext; + +public class ListMetricRunRequestModel + extends PublicScanRequest { + + private MetricIdModel metricId; + private TenantIdModel tenantId; + + @Override + public GetableClassEnum getObjectType() { + return GetableClassEnum.METRIC_RUN; + } + + @Override + public LHStore getStoreType() { + return LHStore.REPARTITION; + } + + @Override + public TagStorageType indexTypeForSearch() throws LHApiException { + return TagStorageType.LOCAL; + } + + @Override + public SearchScanBoundaryStrategy getScanBoundary(String searchAttributeString) throws LHApiException { + return ObjectIdScanBoundaryStrategy.fromPrefix( + LHUtil.getCompositeId(tenantId.toString(), metricId.toString()), metricId.toString()); + } + + @Override + public ListMetricRunRequest.Builder toProto() { + return ListMetricRunRequest.newBuilder().setMetricId(metricId.toProto()); + } + + @Override + public void initFrom(Message proto, ExecutionContext context) throws LHSerdeError { + ListMetricRunRequest p = (ListMetricRunRequest) proto; + this.tenantId = context.authorization().tenantId(); + this.metricId = LHSerializable.fromProto(p.getMetricId(), MetricIdModel.class, context); + } + + @Override + public Class getProtoBaseClass() { + return ListMetricRunRequest.class; + } +} diff --git a/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicsearchreplies/ListMetricRunReply.java b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicsearchreplies/ListMetricRunReply.java new file mode 100644 index 000000000..6e0f857f9 --- /dev/null +++ b/server/src/main/java/io/littlehorse/server/streams/lhinternalscan/publicsearchreplies/ListMetricRunReply.java @@ -0,0 +1,23 @@ +package io.littlehorse.server.streams.lhinternalscan.publicsearchreplies; + +import io.littlehorse.common.model.getable.core.metrics.MetricRunModel; +import io.littlehorse.sdk.common.proto.MetricRun; +import io.littlehorse.sdk.common.proto.MetricRunList; +import io.littlehorse.server.streams.lhinternalscan.PublicScanReply; + +public class ListMetricRunReply extends PublicScanReply { + @Override + public Class getResultProtoClass() { + return MetricRun.class; + } + + @Override + public Class getResultJavaClass() { + return MetricRunModel.class; + } + + @Override + public Class getProtoBaseClass() { + return MetricRunList.class; + } +} diff --git a/server/src/main/java/io/littlehorse/server/streams/topology/core/MetricsUpdater.java b/server/src/main/java/io/littlehorse/server/streams/topology/core/MetricsUpdater.java index fa1bd5a4b..d2c5eacb8 100644 --- a/server/src/main/java/io/littlehorse/server/streams/topology/core/MetricsUpdater.java +++ b/server/src/main/java/io/littlehorse/server/streams/topology/core/MetricsUpdater.java @@ -19,6 +19,7 @@ import io.littlehorse.server.streams.stores.TenantScopedStore; import io.littlehorse.server.streams.topology.core.GetableUpdates.GetableStatusUpdate; import java.time.LocalDateTime; +import java.util.Objects; import java.util.Optional; import lombok.extern.slf4j.Slf4j; @@ -49,7 +50,9 @@ public void listen(GetableStatusUpdate statusUpdate) { if (storedGetable != null) { MetricModel metric = storedGetable.getStoredObject(); if (metric != null) { - if (wfRunEvent.getNewStatus().equals(LHStatus.RUNNING)) { + if (Objects.isNull(wfRunEvent.getPreviousStatus()) + && wfRunEvent.getNewStatus().equals(LHStatus.RUNNING)) { + log.info("Updating metrics for {}", metric); StoredGetable getable = tenantStore.get( new PartitionMetricIdModel(metric.getObjectId(), statusUpdate.getTenantId()) .getStoreableKey(), diff --git a/server/src/main/java/io/littlehorse/server/streams/topology/core/processors/CommandProcessor.java b/server/src/main/java/io/littlehorse/server/streams/topology/core/processors/CommandProcessor.java index 16a0056d2..9f3661d46 100644 --- a/server/src/main/java/io/littlehorse/server/streams/topology/core/processors/CommandProcessor.java +++ b/server/src/main/java/io/littlehorse/server/streams/topology/core/processors/CommandProcessor.java @@ -189,7 +189,8 @@ private void forwardMetricsUpdates(long timestamp) { tenantStore.put(new StoredGetable<>(partitionMetric)); AggregateMetricsModel current = commandsPerTenant.getOrDefault( partitionMetricId.getTenantId(), - new AggregateMetricsModel(partitionMetricId.getTenantId(), new ArrayList<>())); + new AggregateMetricsModel( + partitionMetricId.getTenantId(), partitionMetricId.getMetricId(), new ArrayList<>())); current.addWindowedMetric(windowedMetrics); commandsPerTenant.putIfAbsent(partitionMetricId.getTenantId(), current); } @@ -206,7 +207,6 @@ private void forwardRepartitionCommands(Collection repart CommandProcessorOutput output = new CommandProcessorOutput(topicName, command, partitionKey); Record kafkaRecord = new Record<>(partitionKey, output, System.currentTimeMillis()); - log.info("Forwarding repartition command: {}", partitionKey); ctx.forward(kafkaRecord); } } diff --git a/server/src/test/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModelTest.java b/server/src/test/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModelTest.java index 80dff8c70..f43738e32 100644 --- a/server/src/test/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModelTest.java +++ b/server/src/test/java/io/littlehorse/common/model/getable/global/metrics/PartitionMetricModelTest.java @@ -78,8 +78,6 @@ void shouldBuildRepartitionCommand() { PartitionWindowedMetricModel partitionWindowed = partitionMetric.getActiveWindowedMetrics().iterator().next(); assertThat(windowedMetric.getValue()).isEqualTo(partitionWindowed.getValue()); - assertThat(windowedMetric.getMetricId()) - .isEqualTo(partitionMetric.getObjectId().getMetricId()); assertThat(windowedMetric.getWindowStart()).isEqualTo(partitionWindowed.getWindowStart()); }); }