diff --git a/api/orchestration.go b/api/orchestration.go index a320f602..fd3b0944 100644 --- a/api/orchestration.go +++ b/api/orchestration.go @@ -70,6 +70,10 @@ type PurgeOptions func(*protos.PurgeInstancesRequest) error type RerunOptions func(*protos.RerunWorkflowFromEventRequest) error +type ListInstanceIDsOptions func(*protos.ListInstanceIDsRequest) error + +type GetInstanceHistoryOptions func(*protos.GetInstanceHistoryRequest) error + // WithInstanceID configures an explicit orchestration instance ID. If not specified, // a random UUID value will be used for the orchestration instance ID. func WithInstanceID(id InstanceID) NewOrchestrationOptions { @@ -221,3 +225,17 @@ func WithRerunNewInstanceID(id InstanceID) RerunOptions { return nil } } + +func WithListInstanceIDsPageSize(pageSize uint32) ListInstanceIDsOptions { + return func(req *protos.ListInstanceIDsRequest) error { + req.PageSize = &pageSize + return nil + } +} + +func WithListInstanceIDsContinuationToken(token string) ListInstanceIDsOptions { + return func(req *protos.ListInstanceIDsRequest) error { + req.ContinuationToken = &token + return nil + } +} diff --git a/api/protos/backend_service.pb.go b/api/protos/backend_service.pb.go index e478c96c..52ab5ef6 100644 --- a/api/protos/backend_service.pb.go +++ b/api/protos/backend_service.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v5.29.3 +// protoc v6.30.2 // source: backend_service.proto package protos @@ -2032,7 +2032,7 @@ var file_backend_service_proto_rawDesc = []byte{ 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x2e, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xfd, 0x10, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x65, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x92, 0x12, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, @@ -2168,13 +2168,22 @@ var file_backend_service_proto_rawDesc = []byte{ 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x56, 0x0a, 0x2b, 0x69, 0x6f, 0x2e, 0x64, 0x61, 0x70, - 0x72, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5a, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x73, 0xaa, 0x02, 0x19, 0x44, 0x61, 0x70, 0x72, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x73, 0x12, 0x17, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x1a, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x56, 0x0a, 0x2b, 0x69, + 0x6f, 0x2e, 0x64, 0x61, 0x70, 0x72, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x61, + 0x73, 0x6b, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x5a, 0x0b, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0xaa, 0x02, 0x19, 0x44, 0x61, 0x70, 0x72, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2240,15 +2249,19 @@ var file_backend_service_proto_goTypes = []interface{}{ (*CleanEntityStorageRequest)(nil), // 46: CleanEntityStorageRequest (*GetWorkItemsRequest)(nil), // 47: GetWorkItemsRequest (*StreamInstanceHistoryRequest)(nil), // 48: StreamInstanceHistoryRequest - (*CreateInstanceResponse)(nil), // 49: CreateInstanceResponse - (*GetInstanceResponse)(nil), // 50: GetInstanceResponse - (*GetEntityResponse)(nil), // 51: GetEntityResponse - (*QueryInstancesResponse)(nil), // 52: QueryInstancesResponse - (*QueryEntitiesResponse)(nil), // 53: QueryEntitiesResponse - (*PurgeInstancesResponse)(nil), // 54: PurgeInstancesResponse - (*CleanEntityStorageResponse)(nil), // 55: CleanEntityStorageResponse - (*WorkItem)(nil), // 56: WorkItem - (*HistoryChunk)(nil), // 57: HistoryChunk + (*ListInstanceIDsRequest)(nil), // 49: ListInstanceIDsRequest + (*GetInstanceHistoryRequest)(nil), // 50: GetInstanceHistoryRequest + (*CreateInstanceResponse)(nil), // 51: CreateInstanceResponse + (*GetInstanceResponse)(nil), // 52: GetInstanceResponse + (*GetEntityResponse)(nil), // 53: GetEntityResponse + (*QueryInstancesResponse)(nil), // 54: QueryInstancesResponse + (*QueryEntitiesResponse)(nil), // 55: QueryEntitiesResponse + (*PurgeInstancesResponse)(nil), // 56: PurgeInstancesResponse + (*CleanEntityStorageResponse)(nil), // 57: CleanEntityStorageResponse + (*WorkItem)(nil), // 58: WorkItem + (*HistoryChunk)(nil), // 59: HistoryChunk + (*ListInstanceIDsResponse)(nil), // 60: ListInstanceIDsResponse + (*GetInstanceHistoryResponse)(nil), // 61: GetInstanceHistoryResponse } var file_backend_service_proto_depIdxs = []int32{ 31, // 0: durabletask.protos.backend.v1.AddEventRequest.instance:type_name -> OrchestrationInstance @@ -2308,28 +2321,32 @@ var file_backend_service_proto_depIdxs = []int32{ 17, // 54: durabletask.protos.backend.v1.BackendService.AbandonEntityWorkItem:input_type -> durabletask.protos.backend.v1.AbandonEntityWorkItemRequest 19, // 55: durabletask.protos.backend.v1.BackendService.Ping:input_type -> durabletask.protos.backend.v1.PingRequest 26, // 56: durabletask.protos.backend.v1.BackendService.GetMetrics:input_type -> durabletask.protos.backend.v1.GetMetricsRequest - 49, // 57: durabletask.protos.backend.v1.BackendService.CreateInstance:output_type -> CreateInstanceResponse - 1, // 58: durabletask.protos.backend.v1.BackendService.AddEvent:output_type -> durabletask.protos.backend.v1.AddEventResponse - 50, // 59: durabletask.protos.backend.v1.BackendService.GetInstance:output_type -> GetInstanceResponse - 51, // 60: durabletask.protos.backend.v1.BackendService.GetEntity:output_type -> GetEntityResponse - 52, // 61: durabletask.protos.backend.v1.BackendService.QueryInstances:output_type -> QueryInstancesResponse - 53, // 62: durabletask.protos.backend.v1.BackendService.QueryEntities:output_type -> QueryEntitiesResponse - 3, // 63: durabletask.protos.backend.v1.BackendService.WaitForInstance:output_type -> durabletask.protos.backend.v1.WaitForInstanceResponse - 54, // 64: durabletask.protos.backend.v1.BackendService.PurgeInstances:output_type -> PurgeInstancesResponse - 55, // 65: durabletask.protos.backend.v1.BackendService.CleanEntityStorage:output_type -> CleanEntityStorageResponse - 56, // 66: durabletask.protos.backend.v1.BackendService.GetWorkItems:output_type -> WorkItem - 5, // 67: durabletask.protos.backend.v1.BackendService.GetOrchestrationRuntimeState:output_type -> durabletask.protos.backend.v1.GetOrchestrationRuntimeStateResponse - 57, // 68: durabletask.protos.backend.v1.BackendService.StreamInstanceHistory:output_type -> HistoryChunk - 7, // 69: durabletask.protos.backend.v1.BackendService.CompleteActivityWorkItem:output_type -> durabletask.protos.backend.v1.CompleteActivityWorkItemResponse - 9, // 70: durabletask.protos.backend.v1.BackendService.AbandonActivityWorkItem:output_type -> durabletask.protos.backend.v1.AbandonActivityWorkItemResponse - 11, // 71: durabletask.protos.backend.v1.BackendService.CompleteOrchestrationWorkItem:output_type -> durabletask.protos.backend.v1.CompleteOrchestrationWorkItemResponse - 14, // 72: durabletask.protos.backend.v1.BackendService.AbandonOrchestrationWorkItem:output_type -> durabletask.protos.backend.v1.AbandonOrchestrationWorkItemResponse - 16, // 73: durabletask.protos.backend.v1.BackendService.CompleteEntityWorkItem:output_type -> durabletask.protos.backend.v1.CompleteEntityWorkItemResponse - 18, // 74: durabletask.protos.backend.v1.BackendService.AbandonEntityWorkItem:output_type -> durabletask.protos.backend.v1.AbandonEntityWorkItemResponse - 20, // 75: durabletask.protos.backend.v1.BackendService.Ping:output_type -> durabletask.protos.backend.v1.PingResponse - 27, // 76: durabletask.protos.backend.v1.BackendService.GetMetrics:output_type -> durabletask.protos.backend.v1.GetMetricsResponse - 57, // [57:77] is the sub-list for method output_type - 37, // [37:57] is the sub-list for method input_type + 49, // 57: durabletask.protos.backend.v1.BackendService.ListInstanceIDs:input_type -> ListInstanceIDsRequest + 50, // 58: durabletask.protos.backend.v1.BackendService.GetInstanceHistory:input_type -> GetInstanceHistoryRequest + 51, // 59: durabletask.protos.backend.v1.BackendService.CreateInstance:output_type -> CreateInstanceResponse + 1, // 60: durabletask.protos.backend.v1.BackendService.AddEvent:output_type -> durabletask.protos.backend.v1.AddEventResponse + 52, // 61: durabletask.protos.backend.v1.BackendService.GetInstance:output_type -> GetInstanceResponse + 53, // 62: durabletask.protos.backend.v1.BackendService.GetEntity:output_type -> GetEntityResponse + 54, // 63: durabletask.protos.backend.v1.BackendService.QueryInstances:output_type -> QueryInstancesResponse + 55, // 64: durabletask.protos.backend.v1.BackendService.QueryEntities:output_type -> QueryEntitiesResponse + 3, // 65: durabletask.protos.backend.v1.BackendService.WaitForInstance:output_type -> durabletask.protos.backend.v1.WaitForInstanceResponse + 56, // 66: durabletask.protos.backend.v1.BackendService.PurgeInstances:output_type -> PurgeInstancesResponse + 57, // 67: durabletask.protos.backend.v1.BackendService.CleanEntityStorage:output_type -> CleanEntityStorageResponse + 58, // 68: durabletask.protos.backend.v1.BackendService.GetWorkItems:output_type -> WorkItem + 5, // 69: durabletask.protos.backend.v1.BackendService.GetOrchestrationRuntimeState:output_type -> durabletask.protos.backend.v1.GetOrchestrationRuntimeStateResponse + 59, // 70: durabletask.protos.backend.v1.BackendService.StreamInstanceHistory:output_type -> HistoryChunk + 7, // 71: durabletask.protos.backend.v1.BackendService.CompleteActivityWorkItem:output_type -> durabletask.protos.backend.v1.CompleteActivityWorkItemResponse + 9, // 72: durabletask.protos.backend.v1.BackendService.AbandonActivityWorkItem:output_type -> durabletask.protos.backend.v1.AbandonActivityWorkItemResponse + 11, // 73: durabletask.protos.backend.v1.BackendService.CompleteOrchestrationWorkItem:output_type -> durabletask.protos.backend.v1.CompleteOrchestrationWorkItemResponse + 14, // 74: durabletask.protos.backend.v1.BackendService.AbandonOrchestrationWorkItem:output_type -> durabletask.protos.backend.v1.AbandonOrchestrationWorkItemResponse + 16, // 75: durabletask.protos.backend.v1.BackendService.CompleteEntityWorkItem:output_type -> durabletask.protos.backend.v1.CompleteEntityWorkItemResponse + 18, // 76: durabletask.protos.backend.v1.BackendService.AbandonEntityWorkItem:output_type -> durabletask.protos.backend.v1.AbandonEntityWorkItemResponse + 20, // 77: durabletask.protos.backend.v1.BackendService.Ping:output_type -> durabletask.protos.backend.v1.PingResponse + 27, // 78: durabletask.protos.backend.v1.BackendService.GetMetrics:output_type -> durabletask.protos.backend.v1.GetMetricsResponse + 60, // 79: durabletask.protos.backend.v1.BackendService.ListInstanceIDs:output_type -> ListInstanceIDsResponse + 61, // 80: durabletask.protos.backend.v1.BackendService.GetInstanceHistory:output_type -> GetInstanceHistoryResponse + 59, // [59:81] is the sub-list for method output_type + 37, // [37:59] is the sub-list for method input_type 37, // [37:37] is the sub-list for extension type_name 37, // [37:37] is the sub-list for extension extendee 0, // [0:37] is the sub-list for field type_name diff --git a/api/protos/backend_service_grpc.pb.go b/api/protos/backend_service_grpc.pb.go index 491a99c7..f3dffee3 100644 --- a/api/protos/backend_service_grpc.pb.go +++ b/api/protos/backend_service_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v5.29.3 +// - protoc v6.30.2 // source: backend_service.proto package protos @@ -42,6 +42,8 @@ const ( BackendService_AbandonEntityWorkItem_FullMethodName = "/durabletask.protos.backend.v1.BackendService/AbandonEntityWorkItem" BackendService_Ping_FullMethodName = "/durabletask.protos.backend.v1.BackendService/Ping" BackendService_GetMetrics_FullMethodName = "/durabletask.protos.backend.v1.BackendService/GetMetrics" + BackendService_ListInstanceIDs_FullMethodName = "/durabletask.protos.backend.v1.BackendService/ListInstanceIDs" + BackendService_GetInstanceHistory_FullMethodName = "/durabletask.protos.backend.v1.BackendService/GetInstanceHistory" ) // BackendServiceClient is the client API for BackendService service. @@ -89,6 +91,8 @@ type BackendServiceClient interface { Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) // Returns the current metrics for the backend service. GetMetrics(ctx context.Context, in *GetMetricsRequest, opts ...grpc.CallOption) (*GetMetricsResponse, error) + ListInstanceIDs(ctx context.Context, in *ListInstanceIDsRequest, opts ...grpc.CallOption) (*ListInstanceIDsResponse, error) + GetInstanceHistory(ctx context.Context, in *GetInstanceHistoryRequest, opts ...grpc.CallOption) (*GetInstanceHistoryResponse, error) } type backendServiceClient struct { @@ -325,6 +329,24 @@ func (c *backendServiceClient) GetMetrics(ctx context.Context, in *GetMetricsReq return out, nil } +func (c *backendServiceClient) ListInstanceIDs(ctx context.Context, in *ListInstanceIDsRequest, opts ...grpc.CallOption) (*ListInstanceIDsResponse, error) { + out := new(ListInstanceIDsResponse) + err := c.cc.Invoke(ctx, BackendService_ListInstanceIDs_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *backendServiceClient) GetInstanceHistory(ctx context.Context, in *GetInstanceHistoryRequest, opts ...grpc.CallOption) (*GetInstanceHistoryResponse, error) { + out := new(GetInstanceHistoryResponse) + err := c.cc.Invoke(ctx, BackendService_GetInstanceHistory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // BackendServiceServer is the server API for BackendService service. // All implementations must embed UnimplementedBackendServiceServer // for forward compatibility @@ -370,6 +392,8 @@ type BackendServiceServer interface { Ping(context.Context, *PingRequest) (*PingResponse, error) // Returns the current metrics for the backend service. GetMetrics(context.Context, *GetMetricsRequest) (*GetMetricsResponse, error) + ListInstanceIDs(context.Context, *ListInstanceIDsRequest) (*ListInstanceIDsResponse, error) + GetInstanceHistory(context.Context, *GetInstanceHistoryRequest) (*GetInstanceHistoryResponse, error) mustEmbedUnimplementedBackendServiceServer() } @@ -437,6 +461,12 @@ func (UnimplementedBackendServiceServer) Ping(context.Context, *PingRequest) (*P func (UnimplementedBackendServiceServer) GetMetrics(context.Context, *GetMetricsRequest) (*GetMetricsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMetrics not implemented") } +func (UnimplementedBackendServiceServer) ListInstanceIDs(context.Context, *ListInstanceIDsRequest) (*ListInstanceIDsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInstanceIDs not implemented") +} +func (UnimplementedBackendServiceServer) GetInstanceHistory(context.Context, *GetInstanceHistoryRequest) (*GetInstanceHistoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInstanceHistory not implemented") +} func (UnimplementedBackendServiceServer) mustEmbedUnimplementedBackendServiceServer() {} // UnsafeBackendServiceServer may be embedded to opt out of forward compatibility for this service. @@ -816,6 +846,42 @@ func _BackendService_GetMetrics_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _BackendService_ListInstanceIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListInstanceIDsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BackendServiceServer).ListInstanceIDs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: BackendService_ListInstanceIDs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BackendServiceServer).ListInstanceIDs(ctx, req.(*ListInstanceIDsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BackendService_GetInstanceHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInstanceHistoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BackendServiceServer).GetInstanceHistory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: BackendService_GetInstanceHistory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BackendServiceServer).GetInstanceHistory(ctx, req.(*GetInstanceHistoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + // BackendService_ServiceDesc is the grpc.ServiceDesc for BackendService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -895,6 +961,14 @@ var BackendService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetMetrics", Handler: _BackendService_GetMetrics_Handler, }, + { + MethodName: "ListInstanceIDs", + Handler: _BackendService_ListInstanceIDs_Handler, + }, + { + MethodName: "GetInstanceHistory", + Handler: _BackendService_GetInstanceHistory_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/api/protos/orchestrator_service.pb.go b/api/protos/orchestrator_service.pb.go index e69ff7d6..64dd70e6 100644 --- a/api/protos/orchestrator_service.pb.go +++ b/api/protos/orchestrator_service.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v5.29.3 +// protoc v6.30.2 // source: orchestrator_service.proto package protos @@ -7408,6 +7408,223 @@ func (x *RerunWorkflowFromEventResponse) GetNewInstanceID() string { return "" } +// ListInstanceIDsRequest is used to list all orchestration instances. +type ListInstanceIDsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // continuationToken is the continuation token to use for pagination. This + // is the token which the next page should start from. If not given, the + // first page will be returned. + ContinuationToken *string `protobuf:"bytes,1,opt,name=continuationToken,proto3,oneof" json:"continuationToken,omitempty"` + // pageSize is the maximum number of instances to return for this page. If + // not given, all instances will be attempted to be returned. + PageSize *uint32 `protobuf:"varint,2,opt,name=pageSize,proto3,oneof" json:"pageSize,omitempty"` +} + +func (x *ListInstanceIDsRequest) Reset() { + *x = ListInstanceIDsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_orchestrator_service_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInstanceIDsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInstanceIDsRequest) ProtoMessage() {} + +func (x *ListInstanceIDsRequest) ProtoReflect() protoreflect.Message { + mi := &file_orchestrator_service_proto_msgTypes[107] + 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 ListInstanceIDsRequest.ProtoReflect.Descriptor instead. +func (*ListInstanceIDsRequest) Descriptor() ([]byte, []int) { + return file_orchestrator_service_proto_rawDescGZIP(), []int{107} +} + +func (x *ListInstanceIDsRequest) GetContinuationToken() string { + if x != nil && x.ContinuationToken != nil { + return *x.ContinuationToken + } + return "" +} + +func (x *ListInstanceIDsRequest) GetPageSize() uint32 { + if x != nil && x.PageSize != nil { + return *x.PageSize + } + return 0 +} + +// ListInstanceIDsResponse is the response to executing ListInstanceIDs. +type ListInstanceIDsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // instanceIds is the list of instance IDs returned. + InstanceIds []string `protobuf:"bytes,1,rep,name=instanceIds,proto3" json:"instanceIds,omitempty"` + // continuationToken is the continuation token to use for pagination. If + // there are no more pages, this will be null. + ContinuationToken *string `protobuf:"bytes,2,opt,name=continuationToken,proto3,oneof" json:"continuationToken,omitempty"` +} + +func (x *ListInstanceIDsResponse) Reset() { + *x = ListInstanceIDsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_orchestrator_service_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInstanceIDsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInstanceIDsResponse) ProtoMessage() {} + +func (x *ListInstanceIDsResponse) ProtoReflect() protoreflect.Message { + mi := &file_orchestrator_service_proto_msgTypes[108] + 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 ListInstanceIDsResponse.ProtoReflect.Descriptor instead. +func (*ListInstanceIDsResponse) Descriptor() ([]byte, []int) { + return file_orchestrator_service_proto_rawDescGZIP(), []int{108} +} + +func (x *ListInstanceIDsResponse) GetInstanceIds() []string { + if x != nil { + return x.InstanceIds + } + return nil +} + +func (x *ListInstanceIDsResponse) GetContinuationToken() string { + if x != nil && x.ContinuationToken != nil { + return *x.ContinuationToken + } + return "" +} + +// GetInstanceHistoryRequest is used to get the full history of an +// orchestration instance. +type GetInstanceHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InstanceId string `protobuf:"bytes,1,opt,name=instanceId,proto3" json:"instanceId,omitempty"` +} + +func (x *GetInstanceHistoryRequest) Reset() { + *x = GetInstanceHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_orchestrator_service_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceHistoryRequest) ProtoMessage() {} + +func (x *GetInstanceHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_orchestrator_service_proto_msgTypes[109] + 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 GetInstanceHistoryRequest.ProtoReflect.Descriptor instead. +func (*GetInstanceHistoryRequest) Descriptor() ([]byte, []int) { + return file_orchestrator_service_proto_rawDescGZIP(), []int{109} +} + +func (x *GetInstanceHistoryRequest) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +// GetInstanceHistoryResponse is the response to executing GetInstanceHistory. +type GetInstanceHistoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Events []*HistoryEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *GetInstanceHistoryResponse) Reset() { + *x = GetInstanceHistoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_orchestrator_service_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceHistoryResponse) ProtoMessage() {} + +func (x *GetInstanceHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_orchestrator_service_proto_msgTypes[110] + 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 GetInstanceHistoryResponse.ProtoReflect.Descriptor instead. +func (*GetInstanceHistoryResponse) Descriptor() ([]byte, []int) { + return file_orchestrator_service_proto_rawDescGZIP(), []int{110} +} + +func (x *GetInstanceHistoryResponse) GetEvents() []*HistoryEvent { + if x != nil { + return x.Events + } + return nil +} + var File_orchestrator_service_proto protoreflect.FileDescriptor var file_orchestrator_service_proto_rawDesc = []byte{ @@ -8709,151 +8926,186 @@ var file_orchestrator_service_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, - 0x44, 0x2a, 0xb5, 0x02, 0x0a, 0x13, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x52, 0x43, - 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4f, - 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, - 0x29, 0x0a, 0x25, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x45, - 0x44, 0x5f, 0x41, 0x53, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, + 0x44, 0x22, 0x8f, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, + 0x73, 0x12, 0x31, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3b, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0xb5, 0x02, 0x0a, + 0x13, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, + 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, + 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4f, - 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x23, - 0x0a, 0x1f, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, - 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, - 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x07, 0x2a, 0x41, 0x0a, 0x19, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, - 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x10, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, - 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x5f, 0x43, 0x41, - 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, - 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x32, 0xb6, 0x0e, 0x0a, - 0x15, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 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, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x40, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x16, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x52, - 0x65, 0x77, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, - 0x52, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x52, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x14, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x46, 0x0a, 0x19, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x52, 0x61, 0x69, - 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x52, 0x61, 0x69, 0x73, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x52, 0x61, - 0x69, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3a, 0x0a, 0x11, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0f, - 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x0f, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x10, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x17, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x67, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x50, 0x75, 0x72, - 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x09, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x30, 0x01, 0x12, 0x40, - 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x15, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x48, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x15, 0x2e, 0x4f, - 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x1a, 0x15, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x12, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, - 0x12, 0x12, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x15, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x15, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x75, - 0x6e, 0x6b, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x48, 0x75, 0x62, 0x12, 0x15, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x48, 0x75, 0x62, 0x12, 0x15, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x32, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x11, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x12, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x43, 0x6c, - 0x65, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x1b, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x54, - 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, - 0x0a, 0x1f, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x72, 0x63, - 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x20, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x4f, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x4f, 0x72, 0x63, - 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x19, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, - 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x49, - 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x45, 0x44, 0x5f, 0x41, 0x53, 0x5f, + 0x4e, 0x45, 0x57, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, + 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, + 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, + 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x52, 0x43, + 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x20, + 0x0a, 0x1c, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, + 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x52, 0x43, 0x48, 0x45, 0x53, 0x54, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, + 0x45, 0x44, 0x10, 0x07, 0x2a, 0x41, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x45, 0x52, 0x4d, + 0x49, 0x4e, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x1d, 0x57, + 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, + 0x0a, 0x23, 0x57, 0x4f, 0x52, 0x4b, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x52, 0x45, + 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x32, 0xcb, 0x0f, 0x0a, 0x15, 0x54, 0x61, 0x73, 0x6b, + 0x48, 0x75, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x37, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 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, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x13, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x69, 0x6e, 0x64, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x52, 0x65, 0x77, 0x69, 0x6e, + 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x52, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x14, 0x57, 0x61, 0x69, + 0x74, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x19, + 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x52, 0x61, 0x69, 0x73, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x52, 0x61, 0x69, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x52, 0x61, 0x69, 0x73, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x11, 0x54, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x11, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0f, 0x53, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0f, 0x2e, 0x53, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x53, 0x75, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, + 0x0e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x0e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0f, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x41, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x16, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, + 0x50, 0x75, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x09, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x30, 0x01, 0x12, 0x40, 0x0a, 0x14, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x11, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x15, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x18, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x15, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x15, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x2e, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, + 0x15, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x1d, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, + 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x30, 0x01, 0x12, + 0x3e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, + 0x12, 0x15, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, + 0x12, 0x15, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x73, 0x6b, 0x48, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, + 0x14, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x09, + 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x11, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x47, + 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x15, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x1b, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, + 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x41, 0x62, + 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x1f, 0x41, 0x62, 0x61, + 0x6e, 0x64, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x2e, 0x41, + 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x52, 0x0a, 0x19, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x2e, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x52, 0x65, - 0x72, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x46, 0x72, 0x6f, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x46, 0x72, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x46, 0x72, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x41, 0x62, 0x61, 0x6e, + 0x64, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x46, 0x72, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x46, + 0x72, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x46, + 0x72, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x44, 0x73, 0x12, 0x17, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x56, 0x0a, 0x2b, 0x69, 0x6f, 0x2e, 0x64, 0x61, 0x70, 0x72, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x2e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, @@ -8876,7 +9128,7 @@ func file_orchestrator_service_proto_rawDescGZIP() []byte { } var file_orchestrator_service_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_orchestrator_service_proto_msgTypes = make([]protoimpl.MessageInfo, 110) +var file_orchestrator_service_proto_msgTypes = make([]protoimpl.MessageInfo, 114) var file_orchestrator_service_proto_goTypes = []interface{}{ (OrchestrationStatus)(0), // 0: OrchestrationStatus (CreateOrchestrationAction)(0), // 1: CreateOrchestrationAction @@ -8988,75 +9240,79 @@ var file_orchestrator_service_proto_goTypes = []interface{}{ (*HistoryChunk)(nil), // 107: HistoryChunk (*RerunWorkflowFromEventRequest)(nil), // 108: RerunWorkflowFromEventRequest (*RerunWorkflowFromEventResponse)(nil), // 109: RerunWorkflowFromEventResponse - nil, // 110: ExecutionStartedEvent.TagsEntry - nil, // 111: CreateInstanceRequest.TagsEntry - nil, // 112: OrchestrationState.TagsEntry - (*wrapperspb.StringValue)(nil), // 113: google.protobuf.StringValue - (*timestamppb.Timestamp)(nil), // 114: google.protobuf.Timestamp - (*wrapperspb.Int32Value)(nil), // 115: google.protobuf.Int32Value - (*wrapperspb.BoolValue)(nil), // 116: google.protobuf.BoolValue - (*durationpb.Duration)(nil), // 117: google.protobuf.Duration - (*emptypb.Empty)(nil), // 118: google.protobuf.Empty + (*ListInstanceIDsRequest)(nil), // 110: ListInstanceIDsRequest + (*ListInstanceIDsResponse)(nil), // 111: ListInstanceIDsResponse + (*GetInstanceHistoryRequest)(nil), // 112: GetInstanceHistoryRequest + (*GetInstanceHistoryResponse)(nil), // 113: GetInstanceHistoryResponse + nil, // 114: ExecutionStartedEvent.TagsEntry + nil, // 115: CreateInstanceRequest.TagsEntry + nil, // 116: OrchestrationState.TagsEntry + (*wrapperspb.StringValue)(nil), // 117: google.protobuf.StringValue + (*timestamppb.Timestamp)(nil), // 118: google.protobuf.Timestamp + (*wrapperspb.Int32Value)(nil), // 119: google.protobuf.Int32Value + (*wrapperspb.BoolValue)(nil), // 120: google.protobuf.BoolValue + (*durationpb.Duration)(nil), // 121: google.protobuf.Duration + (*emptypb.Empty)(nil), // 122: google.protobuf.Empty } var file_orchestrator_service_proto_depIdxs = []int32{ - 113, // 0: OrchestrationInstance.executionId:type_name -> google.protobuf.StringValue - 113, // 1: ActivityRequest.version:type_name -> google.protobuf.StringValue - 113, // 2: ActivityRequest.input:type_name -> google.protobuf.StringValue + 117, // 0: OrchestrationInstance.executionId:type_name -> google.protobuf.StringValue + 117, // 1: ActivityRequest.version:type_name -> google.protobuf.StringValue + 117, // 2: ActivityRequest.input:type_name -> google.protobuf.StringValue 4, // 3: ActivityRequest.orchestrationInstance:type_name -> OrchestrationInstance 9, // 4: ActivityRequest.parentTraceContext:type_name -> TraceContext - 113, // 5: ActivityResponse.result:type_name -> google.protobuf.StringValue + 117, // 5: ActivityResponse.result:type_name -> google.protobuf.StringValue 7, // 6: ActivityResponse.failureDetails:type_name -> TaskFailureDetails - 113, // 7: TaskFailureDetails.stackTrace:type_name -> google.protobuf.StringValue + 117, // 7: TaskFailureDetails.stackTrace:type_name -> google.protobuf.StringValue 7, // 8: TaskFailureDetails.innerFailure:type_name -> TaskFailureDetails - 113, // 9: ParentInstanceInfo.name:type_name -> google.protobuf.StringValue - 113, // 10: ParentInstanceInfo.version:type_name -> google.protobuf.StringValue + 117, // 9: ParentInstanceInfo.name:type_name -> google.protobuf.StringValue + 117, // 10: ParentInstanceInfo.version:type_name -> google.protobuf.StringValue 4, // 11: ParentInstanceInfo.orchestrationInstance:type_name -> OrchestrationInstance - 113, // 12: TraceContext.traceState:type_name -> google.protobuf.StringValue - 113, // 13: ExecutionStartedEvent.version:type_name -> google.protobuf.StringValue - 113, // 14: ExecutionStartedEvent.input:type_name -> google.protobuf.StringValue + 117, // 12: TraceContext.traceState:type_name -> google.protobuf.StringValue + 117, // 13: ExecutionStartedEvent.version:type_name -> google.protobuf.StringValue + 117, // 14: ExecutionStartedEvent.input:type_name -> google.protobuf.StringValue 4, // 15: ExecutionStartedEvent.orchestrationInstance:type_name -> OrchestrationInstance 8, // 16: ExecutionStartedEvent.parentInstance:type_name -> ParentInstanceInfo - 114, // 17: ExecutionStartedEvent.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp + 118, // 17: ExecutionStartedEvent.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp 9, // 18: ExecutionStartedEvent.parentTraceContext:type_name -> TraceContext - 113, // 19: ExecutionStartedEvent.orchestrationSpanID:type_name -> google.protobuf.StringValue - 110, // 20: ExecutionStartedEvent.tags:type_name -> ExecutionStartedEvent.TagsEntry + 117, // 19: ExecutionStartedEvent.orchestrationSpanID:type_name -> google.protobuf.StringValue + 114, // 20: ExecutionStartedEvent.tags:type_name -> ExecutionStartedEvent.TagsEntry 0, // 21: ExecutionCompletedEvent.orchestrationStatus:type_name -> OrchestrationStatus - 113, // 22: ExecutionCompletedEvent.result:type_name -> google.protobuf.StringValue + 117, // 22: ExecutionCompletedEvent.result:type_name -> google.protobuf.StringValue 7, // 23: ExecutionCompletedEvent.failureDetails:type_name -> TaskFailureDetails - 113, // 24: ExecutionTerminatedEvent.input:type_name -> google.protobuf.StringValue - 113, // 25: TaskScheduledEvent.version:type_name -> google.protobuf.StringValue - 113, // 26: TaskScheduledEvent.input:type_name -> google.protobuf.StringValue + 117, // 24: ExecutionTerminatedEvent.input:type_name -> google.protobuf.StringValue + 117, // 25: TaskScheduledEvent.version:type_name -> google.protobuf.StringValue + 117, // 26: TaskScheduledEvent.input:type_name -> google.protobuf.StringValue 9, // 27: TaskScheduledEvent.parentTraceContext:type_name -> TraceContext - 113, // 28: TaskCompletedEvent.result:type_name -> google.protobuf.StringValue + 117, // 28: TaskCompletedEvent.result:type_name -> google.protobuf.StringValue 7, // 29: TaskFailedEvent.failureDetails:type_name -> TaskFailureDetails - 113, // 30: SubOrchestrationInstanceCreatedEvent.version:type_name -> google.protobuf.StringValue - 113, // 31: SubOrchestrationInstanceCreatedEvent.input:type_name -> google.protobuf.StringValue + 117, // 30: SubOrchestrationInstanceCreatedEvent.version:type_name -> google.protobuf.StringValue + 117, // 31: SubOrchestrationInstanceCreatedEvent.input:type_name -> google.protobuf.StringValue 9, // 32: SubOrchestrationInstanceCreatedEvent.parentTraceContext:type_name -> TraceContext - 113, // 33: SubOrchestrationInstanceCompletedEvent.result:type_name -> google.protobuf.StringValue + 117, // 33: SubOrchestrationInstanceCompletedEvent.result:type_name -> google.protobuf.StringValue 7, // 34: SubOrchestrationInstanceFailedEvent.failureDetails:type_name -> TaskFailureDetails - 114, // 35: TimerCreatedEvent.fireAt:type_name -> google.protobuf.Timestamp - 114, // 36: TimerFiredEvent.fireAt:type_name -> google.protobuf.Timestamp - 113, // 37: EventSentEvent.input:type_name -> google.protobuf.StringValue - 113, // 38: EventRaisedEvent.input:type_name -> google.protobuf.StringValue - 113, // 39: GenericEvent.data:type_name -> google.protobuf.StringValue + 118, // 35: TimerCreatedEvent.fireAt:type_name -> google.protobuf.Timestamp + 118, // 36: TimerFiredEvent.fireAt:type_name -> google.protobuf.Timestamp + 117, // 37: EventSentEvent.input:type_name -> google.protobuf.StringValue + 117, // 38: EventRaisedEvent.input:type_name -> google.protobuf.StringValue + 117, // 39: GenericEvent.data:type_name -> google.protobuf.StringValue 55, // 40: HistoryStateEvent.orchestrationState:type_name -> OrchestrationState - 113, // 41: ContinueAsNewEvent.input:type_name -> google.protobuf.StringValue - 113, // 42: ExecutionSuspendedEvent.input:type_name -> google.protobuf.StringValue - 113, // 43: ExecutionResumedEvent.input:type_name -> google.protobuf.StringValue - 114, // 44: EntityOperationSignaledEvent.scheduledTime:type_name -> google.protobuf.Timestamp - 113, // 45: EntityOperationSignaledEvent.input:type_name -> google.protobuf.StringValue - 113, // 46: EntityOperationSignaledEvent.targetInstanceId:type_name -> google.protobuf.StringValue - 114, // 47: EntityOperationCalledEvent.scheduledTime:type_name -> google.protobuf.Timestamp - 113, // 48: EntityOperationCalledEvent.input:type_name -> google.protobuf.StringValue - 113, // 49: EntityOperationCalledEvent.parentInstanceId:type_name -> google.protobuf.StringValue - 113, // 50: EntityOperationCalledEvent.parentExecutionId:type_name -> google.protobuf.StringValue - 113, // 51: EntityOperationCalledEvent.targetInstanceId:type_name -> google.protobuf.StringValue - 113, // 52: EntityLockRequestedEvent.parentInstanceId:type_name -> google.protobuf.StringValue - 113, // 53: EntityOperationCompletedEvent.output:type_name -> google.protobuf.StringValue + 117, // 41: ContinueAsNewEvent.input:type_name -> google.protobuf.StringValue + 117, // 42: ExecutionSuspendedEvent.input:type_name -> google.protobuf.StringValue + 117, // 43: ExecutionResumedEvent.input:type_name -> google.protobuf.StringValue + 118, // 44: EntityOperationSignaledEvent.scheduledTime:type_name -> google.protobuf.Timestamp + 117, // 45: EntityOperationSignaledEvent.input:type_name -> google.protobuf.StringValue + 117, // 46: EntityOperationSignaledEvent.targetInstanceId:type_name -> google.protobuf.StringValue + 118, // 47: EntityOperationCalledEvent.scheduledTime:type_name -> google.protobuf.Timestamp + 117, // 48: EntityOperationCalledEvent.input:type_name -> google.protobuf.StringValue + 117, // 49: EntityOperationCalledEvent.parentInstanceId:type_name -> google.protobuf.StringValue + 117, // 50: EntityOperationCalledEvent.parentExecutionId:type_name -> google.protobuf.StringValue + 117, // 51: EntityOperationCalledEvent.targetInstanceId:type_name -> google.protobuf.StringValue + 117, // 52: EntityLockRequestedEvent.parentInstanceId:type_name -> google.protobuf.StringValue + 117, // 53: EntityOperationCompletedEvent.output:type_name -> google.protobuf.StringValue 7, // 54: EntityOperationFailedEvent.failureDetails:type_name -> TaskFailureDetails - 113, // 55: EntityUnlockSentEvent.parentInstanceId:type_name -> google.protobuf.StringValue - 113, // 56: EntityUnlockSentEvent.targetInstanceId:type_name -> google.protobuf.StringValue - 114, // 57: HistoryEvent.timestamp:type_name -> google.protobuf.Timestamp + 117, // 55: EntityUnlockSentEvent.parentInstanceId:type_name -> google.protobuf.StringValue + 117, // 56: EntityUnlockSentEvent.targetInstanceId:type_name -> google.protobuf.StringValue + 118, // 57: HistoryEvent.timestamp:type_name -> google.protobuf.Timestamp 10, // 58: HistoryEvent.executionStarted:type_name -> ExecutionStartedEvent 11, // 59: HistoryEvent.executionCompleted:type_name -> ExecutionCompletedEvent 12, // 60: HistoryEvent.executionTerminated:type_name -> ExecutionTerminatedEvent @@ -9085,22 +9341,22 @@ var file_orchestrator_service_proto_depIdxs = []int32{ 36, // 83: HistoryEvent.entityLockGranted:type_name -> EntityLockGrantedEvent 35, // 84: HistoryEvent.entityUnlockSent:type_name -> EntityUnlockSentEvent 3, // 85: HistoryEvent.router:type_name -> TaskRouter - 113, // 86: ScheduleTaskAction.version:type_name -> google.protobuf.StringValue - 113, // 87: ScheduleTaskAction.input:type_name -> google.protobuf.StringValue + 117, // 86: ScheduleTaskAction.version:type_name -> google.protobuf.StringValue + 117, // 87: ScheduleTaskAction.input:type_name -> google.protobuf.StringValue 3, // 88: ScheduleTaskAction.router:type_name -> TaskRouter - 113, // 89: CreateSubOrchestrationAction.version:type_name -> google.protobuf.StringValue - 113, // 90: CreateSubOrchestrationAction.input:type_name -> google.protobuf.StringValue + 117, // 89: CreateSubOrchestrationAction.version:type_name -> google.protobuf.StringValue + 117, // 90: CreateSubOrchestrationAction.input:type_name -> google.protobuf.StringValue 3, // 91: CreateSubOrchestrationAction.router:type_name -> TaskRouter - 114, // 92: CreateTimerAction.fireAt:type_name -> google.protobuf.Timestamp + 118, // 92: CreateTimerAction.fireAt:type_name -> google.protobuf.Timestamp 4, // 93: SendEventAction.instance:type_name -> OrchestrationInstance - 113, // 94: SendEventAction.data:type_name -> google.protobuf.StringValue + 117, // 94: SendEventAction.data:type_name -> google.protobuf.StringValue 0, // 95: CompleteOrchestrationAction.orchestrationStatus:type_name -> OrchestrationStatus - 113, // 96: CompleteOrchestrationAction.result:type_name -> google.protobuf.StringValue - 113, // 97: CompleteOrchestrationAction.details:type_name -> google.protobuf.StringValue - 113, // 98: CompleteOrchestrationAction.newVersion:type_name -> google.protobuf.StringValue + 117, // 96: CompleteOrchestrationAction.result:type_name -> google.protobuf.StringValue + 117, // 97: CompleteOrchestrationAction.details:type_name -> google.protobuf.StringValue + 117, // 98: CompleteOrchestrationAction.newVersion:type_name -> google.protobuf.StringValue 37, // 99: CompleteOrchestrationAction.carryoverEvents:type_name -> HistoryEvent 7, // 100: CompleteOrchestrationAction.failureDetails:type_name -> TaskFailureDetails - 113, // 101: TerminateOrchestrationAction.reason:type_name -> google.protobuf.StringValue + 117, // 101: TerminateOrchestrationAction.reason:type_name -> google.protobuf.StringValue 30, // 102: SendEntityMessageAction.entityOperationSignaled:type_name -> EntityOperationSignaledEvent 31, // 103: SendEntityMessageAction.entityOperationCalled:type_name -> EntityOperationCalledEvent 32, // 104: SendEntityMessageAction.entityLockRequested:type_name -> EntityLockRequestedEvent @@ -9113,163 +9369,168 @@ var file_orchestrator_service_proto_depIdxs = []int32{ 43, // 111: OrchestratorAction.terminateOrchestration:type_name -> TerminateOrchestrationAction 44, // 112: OrchestratorAction.sendEntityMessage:type_name -> SendEntityMessageAction 3, // 113: OrchestratorAction.router:type_name -> TaskRouter - 113, // 114: OrchestratorRequest.executionId:type_name -> google.protobuf.StringValue + 117, // 114: OrchestratorRequest.executionId:type_name -> google.protobuf.StringValue 37, // 115: OrchestratorRequest.pastEvents:type_name -> HistoryEvent 37, // 116: OrchestratorRequest.newEvents:type_name -> HistoryEvent 84, // 117: OrchestratorRequest.entityParameters:type_name -> OrchestratorEntityParameters 3, // 118: OrchestratorRequest.router:type_name -> TaskRouter 45, // 119: OrchestratorResponse.actions:type_name -> OrchestratorAction - 113, // 120: OrchestratorResponse.customStatus:type_name -> google.protobuf.StringValue - 115, // 121: OrchestratorResponse.numEventsProcessed:type_name -> google.protobuf.Int32Value - 113, // 122: CreateInstanceRequest.version:type_name -> google.protobuf.StringValue - 113, // 123: CreateInstanceRequest.input:type_name -> google.protobuf.StringValue - 114, // 124: CreateInstanceRequest.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp + 117, // 120: OrchestratorResponse.customStatus:type_name -> google.protobuf.StringValue + 119, // 121: OrchestratorResponse.numEventsProcessed:type_name -> google.protobuf.Int32Value + 117, // 122: CreateInstanceRequest.version:type_name -> google.protobuf.StringValue + 117, // 123: CreateInstanceRequest.input:type_name -> google.protobuf.StringValue + 118, // 124: CreateInstanceRequest.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp 49, // 125: CreateInstanceRequest.orchestrationIdReusePolicy:type_name -> OrchestrationIdReusePolicy - 113, // 126: CreateInstanceRequest.executionId:type_name -> google.protobuf.StringValue - 111, // 127: CreateInstanceRequest.tags:type_name -> CreateInstanceRequest.TagsEntry + 117, // 126: CreateInstanceRequest.executionId:type_name -> google.protobuf.StringValue + 115, // 127: CreateInstanceRequest.tags:type_name -> CreateInstanceRequest.TagsEntry 9, // 128: CreateInstanceRequest.parentTraceContext:type_name -> TraceContext 0, // 129: OrchestrationIdReusePolicy.operationStatus:type_name -> OrchestrationStatus 1, // 130: OrchestrationIdReusePolicy.action:type_name -> CreateOrchestrationAction 55, // 131: GetInstanceResponse.orchestrationState:type_name -> OrchestrationState - 113, // 132: RewindInstanceRequest.reason:type_name -> google.protobuf.StringValue - 113, // 133: OrchestrationState.version:type_name -> google.protobuf.StringValue + 117, // 132: RewindInstanceRequest.reason:type_name -> google.protobuf.StringValue + 117, // 133: OrchestrationState.version:type_name -> google.protobuf.StringValue 0, // 134: OrchestrationState.orchestrationStatus:type_name -> OrchestrationStatus - 114, // 135: OrchestrationState.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp - 114, // 136: OrchestrationState.createdTimestamp:type_name -> google.protobuf.Timestamp - 114, // 137: OrchestrationState.lastUpdatedTimestamp:type_name -> google.protobuf.Timestamp - 113, // 138: OrchestrationState.input:type_name -> google.protobuf.StringValue - 113, // 139: OrchestrationState.output:type_name -> google.protobuf.StringValue - 113, // 140: OrchestrationState.customStatus:type_name -> google.protobuf.StringValue + 118, // 135: OrchestrationState.scheduledStartTimestamp:type_name -> google.protobuf.Timestamp + 118, // 136: OrchestrationState.createdTimestamp:type_name -> google.protobuf.Timestamp + 118, // 137: OrchestrationState.lastUpdatedTimestamp:type_name -> google.protobuf.Timestamp + 117, // 138: OrchestrationState.input:type_name -> google.protobuf.StringValue + 117, // 139: OrchestrationState.output:type_name -> google.protobuf.StringValue + 117, // 140: OrchestrationState.customStatus:type_name -> google.protobuf.StringValue 7, // 141: OrchestrationState.failureDetails:type_name -> TaskFailureDetails - 113, // 142: OrchestrationState.executionId:type_name -> google.protobuf.StringValue - 114, // 143: OrchestrationState.completedTimestamp:type_name -> google.protobuf.Timestamp - 113, // 144: OrchestrationState.parentInstanceId:type_name -> google.protobuf.StringValue - 112, // 145: OrchestrationState.tags:type_name -> OrchestrationState.TagsEntry - 113, // 146: RaiseEventRequest.input:type_name -> google.protobuf.StringValue - 113, // 147: TerminateRequest.output:type_name -> google.protobuf.StringValue - 113, // 148: SuspendRequest.reason:type_name -> google.protobuf.StringValue - 113, // 149: ResumeRequest.reason:type_name -> google.protobuf.StringValue + 117, // 142: OrchestrationState.executionId:type_name -> google.protobuf.StringValue + 118, // 143: OrchestrationState.completedTimestamp:type_name -> google.protobuf.Timestamp + 117, // 144: OrchestrationState.parentInstanceId:type_name -> google.protobuf.StringValue + 116, // 145: OrchestrationState.tags:type_name -> OrchestrationState.TagsEntry + 117, // 146: RaiseEventRequest.input:type_name -> google.protobuf.StringValue + 117, // 147: TerminateRequest.output:type_name -> google.protobuf.StringValue + 117, // 148: SuspendRequest.reason:type_name -> google.protobuf.StringValue + 117, // 149: ResumeRequest.reason:type_name -> google.protobuf.StringValue 65, // 150: QueryInstancesRequest.query:type_name -> InstanceQuery 0, // 151: InstanceQuery.runtimeStatus:type_name -> OrchestrationStatus - 114, // 152: InstanceQuery.createdTimeFrom:type_name -> google.protobuf.Timestamp - 114, // 153: InstanceQuery.createdTimeTo:type_name -> google.protobuf.Timestamp - 113, // 154: InstanceQuery.taskHubNames:type_name -> google.protobuf.StringValue - 113, // 155: InstanceQuery.continuationToken:type_name -> google.protobuf.StringValue - 113, // 156: InstanceQuery.instanceIdPrefix:type_name -> google.protobuf.StringValue + 118, // 152: InstanceQuery.createdTimeFrom:type_name -> google.protobuf.Timestamp + 118, // 153: InstanceQuery.createdTimeTo:type_name -> google.protobuf.Timestamp + 117, // 154: InstanceQuery.taskHubNames:type_name -> google.protobuf.StringValue + 117, // 155: InstanceQuery.continuationToken:type_name -> google.protobuf.StringValue + 117, // 156: InstanceQuery.instanceIdPrefix:type_name -> google.protobuf.StringValue 55, // 157: QueryInstancesResponse.orchestrationState:type_name -> OrchestrationState - 113, // 158: QueryInstancesResponse.continuationToken:type_name -> google.protobuf.StringValue + 117, // 158: QueryInstancesResponse.continuationToken:type_name -> google.protobuf.StringValue 68, // 159: PurgeInstancesRequest.purgeInstanceFilter:type_name -> PurgeInstanceFilter - 114, // 160: PurgeInstanceFilter.createdTimeFrom:type_name -> google.protobuf.Timestamp - 114, // 161: PurgeInstanceFilter.createdTimeTo:type_name -> google.protobuf.Timestamp + 118, // 160: PurgeInstanceFilter.createdTimeFrom:type_name -> google.protobuf.Timestamp + 118, // 161: PurgeInstanceFilter.createdTimeTo:type_name -> google.protobuf.Timestamp 0, // 162: PurgeInstanceFilter.runtimeStatus:type_name -> OrchestrationStatus - 116, // 163: PurgeInstancesResponse.isComplete:type_name -> google.protobuf.BoolValue - 113, // 164: SignalEntityRequest.input:type_name -> google.protobuf.StringValue - 114, // 165: SignalEntityRequest.scheduledTime:type_name -> google.protobuf.Timestamp + 120, // 163: PurgeInstancesResponse.isComplete:type_name -> google.protobuf.BoolValue + 117, // 164: SignalEntityRequest.input:type_name -> google.protobuf.StringValue + 118, // 165: SignalEntityRequest.scheduledTime:type_name -> google.protobuf.Timestamp 81, // 166: GetEntityResponse.entity:type_name -> EntityMetadata - 113, // 167: EntityQuery.instanceIdStartsWith:type_name -> google.protobuf.StringValue - 114, // 168: EntityQuery.lastModifiedFrom:type_name -> google.protobuf.Timestamp - 114, // 169: EntityQuery.lastModifiedTo:type_name -> google.protobuf.Timestamp - 115, // 170: EntityQuery.pageSize:type_name -> google.protobuf.Int32Value - 113, // 171: EntityQuery.continuationToken:type_name -> google.protobuf.StringValue + 117, // 167: EntityQuery.instanceIdStartsWith:type_name -> google.protobuf.StringValue + 118, // 168: EntityQuery.lastModifiedFrom:type_name -> google.protobuf.Timestamp + 118, // 169: EntityQuery.lastModifiedTo:type_name -> google.protobuf.Timestamp + 119, // 170: EntityQuery.pageSize:type_name -> google.protobuf.Int32Value + 117, // 171: EntityQuery.continuationToken:type_name -> google.protobuf.StringValue 78, // 172: QueryEntitiesRequest.query:type_name -> EntityQuery 81, // 173: QueryEntitiesResponse.entities:type_name -> EntityMetadata - 113, // 174: QueryEntitiesResponse.continuationToken:type_name -> google.protobuf.StringValue - 114, // 175: EntityMetadata.lastModifiedTime:type_name -> google.protobuf.Timestamp - 113, // 176: EntityMetadata.lockedBy:type_name -> google.protobuf.StringValue - 113, // 177: EntityMetadata.serializedState:type_name -> google.protobuf.StringValue - 113, // 178: CleanEntityStorageRequest.continuationToken:type_name -> google.protobuf.StringValue - 113, // 179: CleanEntityStorageResponse.continuationToken:type_name -> google.protobuf.StringValue - 117, // 180: OrchestratorEntityParameters.entityMessageReorderWindow:type_name -> google.protobuf.Duration - 113, // 181: EntityBatchRequest.entityState:type_name -> google.protobuf.StringValue + 117, // 174: QueryEntitiesResponse.continuationToken:type_name -> google.protobuf.StringValue + 118, // 175: EntityMetadata.lastModifiedTime:type_name -> google.protobuf.Timestamp + 117, // 176: EntityMetadata.lockedBy:type_name -> google.protobuf.StringValue + 117, // 177: EntityMetadata.serializedState:type_name -> google.protobuf.StringValue + 117, // 178: CleanEntityStorageRequest.continuationToken:type_name -> google.protobuf.StringValue + 117, // 179: CleanEntityStorageResponse.continuationToken:type_name -> google.protobuf.StringValue + 121, // 180: OrchestratorEntityParameters.entityMessageReorderWindow:type_name -> google.protobuf.Duration + 117, // 181: EntityBatchRequest.entityState:type_name -> google.protobuf.StringValue 88, // 182: EntityBatchRequest.operations:type_name -> OperationRequest 89, // 183: EntityBatchResult.results:type_name -> OperationResult 93, // 184: EntityBatchResult.actions:type_name -> OperationAction - 113, // 185: EntityBatchResult.entityState:type_name -> google.protobuf.StringValue + 117, // 185: EntityBatchResult.entityState:type_name -> google.protobuf.StringValue 7, // 186: EntityBatchResult.failureDetails:type_name -> TaskFailureDetails 90, // 187: EntityBatchResult.operationInfos:type_name -> OperationInfo - 113, // 188: EntityRequest.entityState:type_name -> google.protobuf.StringValue + 117, // 188: EntityRequest.entityState:type_name -> google.protobuf.StringValue 37, // 189: EntityRequest.operationRequests:type_name -> HistoryEvent - 113, // 190: OperationRequest.input:type_name -> google.protobuf.StringValue + 117, // 190: OperationRequest.input:type_name -> google.protobuf.StringValue 91, // 191: OperationResult.success:type_name -> OperationResultSuccess 92, // 192: OperationResult.failure:type_name -> OperationResultFailure 4, // 193: OperationInfo.responseDestination:type_name -> OrchestrationInstance - 113, // 194: OperationResultSuccess.result:type_name -> google.protobuf.StringValue + 117, // 194: OperationResultSuccess.result:type_name -> google.protobuf.StringValue 7, // 195: OperationResultFailure.failureDetails:type_name -> TaskFailureDetails 94, // 196: OperationAction.sendSignal:type_name -> SendSignalAction 95, // 197: OperationAction.startNewOrchestration:type_name -> StartNewOrchestrationAction - 113, // 198: SendSignalAction.input:type_name -> google.protobuf.StringValue - 114, // 199: SendSignalAction.scheduledTime:type_name -> google.protobuf.Timestamp - 113, // 200: StartNewOrchestrationAction.version:type_name -> google.protobuf.StringValue - 113, // 201: StartNewOrchestrationAction.input:type_name -> google.protobuf.StringValue - 114, // 202: StartNewOrchestrationAction.scheduledTime:type_name -> google.protobuf.Timestamp + 117, // 198: SendSignalAction.input:type_name -> google.protobuf.StringValue + 118, // 199: SendSignalAction.scheduledTime:type_name -> google.protobuf.Timestamp + 117, // 200: StartNewOrchestrationAction.version:type_name -> google.protobuf.StringValue + 117, // 201: StartNewOrchestrationAction.input:type_name -> google.protobuf.StringValue + 118, // 202: StartNewOrchestrationAction.scheduledTime:type_name -> google.protobuf.Timestamp 2, // 203: GetWorkItemsRequest.capabilities:type_name -> WorkerCapability 46, // 204: WorkItem.orchestratorRequest:type_name -> OrchestratorRequest 5, // 205: WorkItem.activityRequest:type_name -> ActivityRequest 85, // 206: WorkItem.entityRequest:type_name -> EntityBatchRequest 105, // 207: WorkItem.healthPing:type_name -> HealthPing 87, // 208: WorkItem.entityRequestV2:type_name -> EntityRequest - 113, // 209: StreamInstanceHistoryRequest.executionId:type_name -> google.protobuf.StringValue + 117, // 209: StreamInstanceHistoryRequest.executionId:type_name -> google.protobuf.StringValue 37, // 210: HistoryChunk.events:type_name -> HistoryEvent - 113, // 211: RerunWorkflowFromEventRequest.input:type_name -> google.protobuf.StringValue - 118, // 212: TaskHubSidecarService.Hello:input_type -> google.protobuf.Empty - 48, // 213: TaskHubSidecarService.StartInstance:input_type -> CreateInstanceRequest - 51, // 214: TaskHubSidecarService.GetInstance:input_type -> GetInstanceRequest - 53, // 215: TaskHubSidecarService.RewindInstance:input_type -> RewindInstanceRequest - 51, // 216: TaskHubSidecarService.WaitForInstanceStart:input_type -> GetInstanceRequest - 51, // 217: TaskHubSidecarService.WaitForInstanceCompletion:input_type -> GetInstanceRequest - 56, // 218: TaskHubSidecarService.RaiseEvent:input_type -> RaiseEventRequest - 58, // 219: TaskHubSidecarService.TerminateInstance:input_type -> TerminateRequest - 60, // 220: TaskHubSidecarService.SuspendInstance:input_type -> SuspendRequest - 62, // 221: TaskHubSidecarService.ResumeInstance:input_type -> ResumeRequest - 64, // 222: TaskHubSidecarService.QueryInstances:input_type -> QueryInstancesRequest - 67, // 223: TaskHubSidecarService.PurgeInstances:input_type -> PurgeInstancesRequest - 102, // 224: TaskHubSidecarService.GetWorkItems:input_type -> GetWorkItemsRequest - 6, // 225: TaskHubSidecarService.CompleteActivityTask:input_type -> ActivityResponse - 47, // 226: TaskHubSidecarService.CompleteOrchestratorTask:input_type -> OrchestratorResponse - 86, // 227: TaskHubSidecarService.CompleteEntityTask:input_type -> EntityBatchResult - 106, // 228: TaskHubSidecarService.StreamInstanceHistory:input_type -> StreamInstanceHistoryRequest - 70, // 229: TaskHubSidecarService.CreateTaskHub:input_type -> CreateTaskHubRequest - 72, // 230: TaskHubSidecarService.DeleteTaskHub:input_type -> DeleteTaskHubRequest - 74, // 231: TaskHubSidecarService.SignalEntity:input_type -> SignalEntityRequest - 76, // 232: TaskHubSidecarService.GetEntity:input_type -> GetEntityRequest - 79, // 233: TaskHubSidecarService.QueryEntities:input_type -> QueryEntitiesRequest - 82, // 234: TaskHubSidecarService.CleanEntityStorage:input_type -> CleanEntityStorageRequest - 96, // 235: TaskHubSidecarService.AbandonTaskActivityWorkItem:input_type -> AbandonActivityTaskRequest - 98, // 236: TaskHubSidecarService.AbandonTaskOrchestratorWorkItem:input_type -> AbandonOrchestrationTaskRequest - 100, // 237: TaskHubSidecarService.AbandonTaskEntityWorkItem:input_type -> AbandonEntityTaskRequest - 108, // 238: TaskHubSidecarService.RerunWorkflowFromEvent:input_type -> RerunWorkflowFromEventRequest - 118, // 239: TaskHubSidecarService.Hello:output_type -> google.protobuf.Empty - 50, // 240: TaskHubSidecarService.StartInstance:output_type -> CreateInstanceResponse - 52, // 241: TaskHubSidecarService.GetInstance:output_type -> GetInstanceResponse - 54, // 242: TaskHubSidecarService.RewindInstance:output_type -> RewindInstanceResponse - 52, // 243: TaskHubSidecarService.WaitForInstanceStart:output_type -> GetInstanceResponse - 52, // 244: TaskHubSidecarService.WaitForInstanceCompletion:output_type -> GetInstanceResponse - 57, // 245: TaskHubSidecarService.RaiseEvent:output_type -> RaiseEventResponse - 59, // 246: TaskHubSidecarService.TerminateInstance:output_type -> TerminateResponse - 61, // 247: TaskHubSidecarService.SuspendInstance:output_type -> SuspendResponse - 63, // 248: TaskHubSidecarService.ResumeInstance:output_type -> ResumeResponse - 66, // 249: TaskHubSidecarService.QueryInstances:output_type -> QueryInstancesResponse - 69, // 250: TaskHubSidecarService.PurgeInstances:output_type -> PurgeInstancesResponse - 103, // 251: TaskHubSidecarService.GetWorkItems:output_type -> WorkItem - 104, // 252: TaskHubSidecarService.CompleteActivityTask:output_type -> CompleteTaskResponse - 104, // 253: TaskHubSidecarService.CompleteOrchestratorTask:output_type -> CompleteTaskResponse - 104, // 254: TaskHubSidecarService.CompleteEntityTask:output_type -> CompleteTaskResponse - 107, // 255: TaskHubSidecarService.StreamInstanceHistory:output_type -> HistoryChunk - 71, // 256: TaskHubSidecarService.CreateTaskHub:output_type -> CreateTaskHubResponse - 73, // 257: TaskHubSidecarService.DeleteTaskHub:output_type -> DeleteTaskHubResponse - 75, // 258: TaskHubSidecarService.SignalEntity:output_type -> SignalEntityResponse - 77, // 259: TaskHubSidecarService.GetEntity:output_type -> GetEntityResponse - 80, // 260: TaskHubSidecarService.QueryEntities:output_type -> QueryEntitiesResponse - 83, // 261: TaskHubSidecarService.CleanEntityStorage:output_type -> CleanEntityStorageResponse - 97, // 262: TaskHubSidecarService.AbandonTaskActivityWorkItem:output_type -> AbandonActivityTaskResponse - 99, // 263: TaskHubSidecarService.AbandonTaskOrchestratorWorkItem:output_type -> AbandonOrchestrationTaskResponse - 101, // 264: TaskHubSidecarService.AbandonTaskEntityWorkItem:output_type -> AbandonEntityTaskResponse - 109, // 265: TaskHubSidecarService.RerunWorkflowFromEvent:output_type -> RerunWorkflowFromEventResponse - 239, // [239:266] is the sub-list for method output_type - 212, // [212:239] is the sub-list for method input_type - 212, // [212:212] is the sub-list for extension type_name - 212, // [212:212] is the sub-list for extension extendee - 0, // [0:212] is the sub-list for field type_name + 117, // 211: RerunWorkflowFromEventRequest.input:type_name -> google.protobuf.StringValue + 37, // 212: GetInstanceHistoryResponse.events:type_name -> HistoryEvent + 122, // 213: TaskHubSidecarService.Hello:input_type -> google.protobuf.Empty + 48, // 214: TaskHubSidecarService.StartInstance:input_type -> CreateInstanceRequest + 51, // 215: TaskHubSidecarService.GetInstance:input_type -> GetInstanceRequest + 53, // 216: TaskHubSidecarService.RewindInstance:input_type -> RewindInstanceRequest + 51, // 217: TaskHubSidecarService.WaitForInstanceStart:input_type -> GetInstanceRequest + 51, // 218: TaskHubSidecarService.WaitForInstanceCompletion:input_type -> GetInstanceRequest + 56, // 219: TaskHubSidecarService.RaiseEvent:input_type -> RaiseEventRequest + 58, // 220: TaskHubSidecarService.TerminateInstance:input_type -> TerminateRequest + 60, // 221: TaskHubSidecarService.SuspendInstance:input_type -> SuspendRequest + 62, // 222: TaskHubSidecarService.ResumeInstance:input_type -> ResumeRequest + 64, // 223: TaskHubSidecarService.QueryInstances:input_type -> QueryInstancesRequest + 67, // 224: TaskHubSidecarService.PurgeInstances:input_type -> PurgeInstancesRequest + 102, // 225: TaskHubSidecarService.GetWorkItems:input_type -> GetWorkItemsRequest + 6, // 226: TaskHubSidecarService.CompleteActivityTask:input_type -> ActivityResponse + 47, // 227: TaskHubSidecarService.CompleteOrchestratorTask:input_type -> OrchestratorResponse + 86, // 228: TaskHubSidecarService.CompleteEntityTask:input_type -> EntityBatchResult + 106, // 229: TaskHubSidecarService.StreamInstanceHistory:input_type -> StreamInstanceHistoryRequest + 70, // 230: TaskHubSidecarService.CreateTaskHub:input_type -> CreateTaskHubRequest + 72, // 231: TaskHubSidecarService.DeleteTaskHub:input_type -> DeleteTaskHubRequest + 74, // 232: TaskHubSidecarService.SignalEntity:input_type -> SignalEntityRequest + 76, // 233: TaskHubSidecarService.GetEntity:input_type -> GetEntityRequest + 79, // 234: TaskHubSidecarService.QueryEntities:input_type -> QueryEntitiesRequest + 82, // 235: TaskHubSidecarService.CleanEntityStorage:input_type -> CleanEntityStorageRequest + 96, // 236: TaskHubSidecarService.AbandonTaskActivityWorkItem:input_type -> AbandonActivityTaskRequest + 98, // 237: TaskHubSidecarService.AbandonTaskOrchestratorWorkItem:input_type -> AbandonOrchestrationTaskRequest + 100, // 238: TaskHubSidecarService.AbandonTaskEntityWorkItem:input_type -> AbandonEntityTaskRequest + 108, // 239: TaskHubSidecarService.RerunWorkflowFromEvent:input_type -> RerunWorkflowFromEventRequest + 110, // 240: TaskHubSidecarService.ListInstanceIDs:input_type -> ListInstanceIDsRequest + 112, // 241: TaskHubSidecarService.GetInstanceHistory:input_type -> GetInstanceHistoryRequest + 122, // 242: TaskHubSidecarService.Hello:output_type -> google.protobuf.Empty + 50, // 243: TaskHubSidecarService.StartInstance:output_type -> CreateInstanceResponse + 52, // 244: TaskHubSidecarService.GetInstance:output_type -> GetInstanceResponse + 54, // 245: TaskHubSidecarService.RewindInstance:output_type -> RewindInstanceResponse + 52, // 246: TaskHubSidecarService.WaitForInstanceStart:output_type -> GetInstanceResponse + 52, // 247: TaskHubSidecarService.WaitForInstanceCompletion:output_type -> GetInstanceResponse + 57, // 248: TaskHubSidecarService.RaiseEvent:output_type -> RaiseEventResponse + 59, // 249: TaskHubSidecarService.TerminateInstance:output_type -> TerminateResponse + 61, // 250: TaskHubSidecarService.SuspendInstance:output_type -> SuspendResponse + 63, // 251: TaskHubSidecarService.ResumeInstance:output_type -> ResumeResponse + 66, // 252: TaskHubSidecarService.QueryInstances:output_type -> QueryInstancesResponse + 69, // 253: TaskHubSidecarService.PurgeInstances:output_type -> PurgeInstancesResponse + 103, // 254: TaskHubSidecarService.GetWorkItems:output_type -> WorkItem + 104, // 255: TaskHubSidecarService.CompleteActivityTask:output_type -> CompleteTaskResponse + 104, // 256: TaskHubSidecarService.CompleteOrchestratorTask:output_type -> CompleteTaskResponse + 104, // 257: TaskHubSidecarService.CompleteEntityTask:output_type -> CompleteTaskResponse + 107, // 258: TaskHubSidecarService.StreamInstanceHistory:output_type -> HistoryChunk + 71, // 259: TaskHubSidecarService.CreateTaskHub:output_type -> CreateTaskHubResponse + 73, // 260: TaskHubSidecarService.DeleteTaskHub:output_type -> DeleteTaskHubResponse + 75, // 261: TaskHubSidecarService.SignalEntity:output_type -> SignalEntityResponse + 77, // 262: TaskHubSidecarService.GetEntity:output_type -> GetEntityResponse + 80, // 263: TaskHubSidecarService.QueryEntities:output_type -> QueryEntitiesResponse + 83, // 264: TaskHubSidecarService.CleanEntityStorage:output_type -> CleanEntityStorageResponse + 97, // 265: TaskHubSidecarService.AbandonTaskActivityWorkItem:output_type -> AbandonActivityTaskResponse + 99, // 266: TaskHubSidecarService.AbandonTaskOrchestratorWorkItem:output_type -> AbandonOrchestrationTaskResponse + 101, // 267: TaskHubSidecarService.AbandonTaskEntityWorkItem:output_type -> AbandonEntityTaskResponse + 109, // 268: TaskHubSidecarService.RerunWorkflowFromEvent:output_type -> RerunWorkflowFromEventResponse + 111, // 269: TaskHubSidecarService.ListInstanceIDs:output_type -> ListInstanceIDsResponse + 113, // 270: TaskHubSidecarService.GetInstanceHistory:output_type -> GetInstanceHistoryResponse + 242, // [242:271] is the sub-list for method output_type + 213, // [213:242] is the sub-list for method input_type + 213, // [213:213] is the sub-list for extension type_name + 213, // [213:213] is the sub-list for extension extendee + 0, // [0:213] is the sub-list for field type_name } func init() { file_orchestrator_service_proto_init() } @@ -10562,6 +10823,54 @@ func file_orchestrator_service_proto_init() { return nil } } + file_orchestrator_service_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInstanceIDsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_orchestrator_service_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInstanceIDsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_orchestrator_service_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInstanceHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_orchestrator_service_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInstanceHistoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_orchestrator_service_proto_msgTypes[0].OneofWrappers = []interface{}{} file_orchestrator_service_proto_msgTypes[5].OneofWrappers = []interface{}{} @@ -10634,13 +10943,15 @@ func file_orchestrator_service_proto_init() { (*WorkItem_EntityRequestV2)(nil), } file_orchestrator_service_proto_msgTypes[105].OneofWrappers = []interface{}{} + file_orchestrator_service_proto_msgTypes[107].OneofWrappers = []interface{}{} + file_orchestrator_service_proto_msgTypes[108].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_orchestrator_service_proto_rawDesc, NumEnums: 3, - NumMessages: 110, + NumMessages: 114, NumExtensions: 0, NumServices: 1, }, diff --git a/api/protos/orchestrator_service_grpc.pb.go b/api/protos/orchestrator_service_grpc.pb.go index 8898e91f..2d0e5d0c 100644 --- a/api/protos/orchestrator_service_grpc.pb.go +++ b/api/protos/orchestrator_service_grpc.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v5.29.3 +// - protoc v6.30.2 // source: orchestrator_service.proto package protos @@ -50,6 +50,8 @@ const ( TaskHubSidecarService_AbandonTaskOrchestratorWorkItem_FullMethodName = "/TaskHubSidecarService/AbandonTaskOrchestratorWorkItem" TaskHubSidecarService_AbandonTaskEntityWorkItem_FullMethodName = "/TaskHubSidecarService/AbandonTaskEntityWorkItem" TaskHubSidecarService_RerunWorkflowFromEvent_FullMethodName = "/TaskHubSidecarService/RerunWorkflowFromEvent" + TaskHubSidecarService_ListInstanceIDs_FullMethodName = "/TaskHubSidecarService/ListInstanceIDs" + TaskHubSidecarService_GetInstanceHistory_FullMethodName = "/TaskHubSidecarService/GetInstanceHistory" ) // TaskHubSidecarServiceClient is the client API for TaskHubSidecarService service. @@ -104,6 +106,8 @@ type TaskHubSidecarServiceClient interface { AbandonTaskEntityWorkItem(ctx context.Context, in *AbandonEntityTaskRequest, opts ...grpc.CallOption) (*AbandonEntityTaskResponse, error) // Rerun a Workflow from a specific event ID of a workflow instance. RerunWorkflowFromEvent(ctx context.Context, in *RerunWorkflowFromEventRequest, opts ...grpc.CallOption) (*RerunWorkflowFromEventResponse, error) + ListInstanceIDs(ctx context.Context, in *ListInstanceIDsRequest, opts ...grpc.CallOption) (*ListInstanceIDsResponse, error) + GetInstanceHistory(ctx context.Context, in *GetInstanceHistoryRequest, opts ...grpc.CallOption) (*GetInstanceHistoryResponse, error) } type taskHubSidecarServiceClient struct { @@ -403,6 +407,24 @@ func (c *taskHubSidecarServiceClient) RerunWorkflowFromEvent(ctx context.Context return out, nil } +func (c *taskHubSidecarServiceClient) ListInstanceIDs(ctx context.Context, in *ListInstanceIDsRequest, opts ...grpc.CallOption) (*ListInstanceIDsResponse, error) { + out := new(ListInstanceIDsResponse) + err := c.cc.Invoke(ctx, TaskHubSidecarService_ListInstanceIDs_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *taskHubSidecarServiceClient) GetInstanceHistory(ctx context.Context, in *GetInstanceHistoryRequest, opts ...grpc.CallOption) (*GetInstanceHistoryResponse, error) { + out := new(GetInstanceHistoryResponse) + err := c.cc.Invoke(ctx, TaskHubSidecarService_GetInstanceHistory_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // TaskHubSidecarServiceServer is the server API for TaskHubSidecarService service. // All implementations must embed UnimplementedTaskHubSidecarServiceServer // for forward compatibility @@ -455,6 +477,8 @@ type TaskHubSidecarServiceServer interface { AbandonTaskEntityWorkItem(context.Context, *AbandonEntityTaskRequest) (*AbandonEntityTaskResponse, error) // Rerun a Workflow from a specific event ID of a workflow instance. RerunWorkflowFromEvent(context.Context, *RerunWorkflowFromEventRequest) (*RerunWorkflowFromEventResponse, error) + ListInstanceIDs(context.Context, *ListInstanceIDsRequest) (*ListInstanceIDsResponse, error) + GetInstanceHistory(context.Context, *GetInstanceHistoryRequest) (*GetInstanceHistoryResponse, error) mustEmbedUnimplementedTaskHubSidecarServiceServer() } @@ -543,6 +567,12 @@ func (UnimplementedTaskHubSidecarServiceServer) AbandonTaskEntityWorkItem(contex func (UnimplementedTaskHubSidecarServiceServer) RerunWorkflowFromEvent(context.Context, *RerunWorkflowFromEventRequest) (*RerunWorkflowFromEventResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RerunWorkflowFromEvent not implemented") } +func (UnimplementedTaskHubSidecarServiceServer) ListInstanceIDs(context.Context, *ListInstanceIDsRequest) (*ListInstanceIDsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInstanceIDs not implemented") +} +func (UnimplementedTaskHubSidecarServiceServer) GetInstanceHistory(context.Context, *GetInstanceHistoryRequest) (*GetInstanceHistoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInstanceHistory not implemented") +} func (UnimplementedTaskHubSidecarServiceServer) mustEmbedUnimplementedTaskHubSidecarServiceServer() {} // UnsafeTaskHubSidecarServiceServer may be embedded to opt out of forward compatibility for this service. @@ -1048,6 +1078,42 @@ func _TaskHubSidecarService_RerunWorkflowFromEvent_Handler(srv interface{}, ctx return interceptor(ctx, in, info, handler) } +func _TaskHubSidecarService_ListInstanceIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListInstanceIDsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TaskHubSidecarServiceServer).ListInstanceIDs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TaskHubSidecarService_ListInstanceIDs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TaskHubSidecarServiceServer).ListInstanceIDs(ctx, req.(*ListInstanceIDsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TaskHubSidecarService_GetInstanceHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInstanceHistoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TaskHubSidecarServiceServer).GetInstanceHistory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TaskHubSidecarService_GetInstanceHistory_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TaskHubSidecarServiceServer).GetInstanceHistory(ctx, req.(*GetInstanceHistoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + // TaskHubSidecarService_ServiceDesc is the grpc.ServiceDesc for TaskHubSidecarService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1155,6 +1221,14 @@ var TaskHubSidecarService_ServiceDesc = grpc.ServiceDesc{ MethodName: "RerunWorkflowFromEvent", Handler: _TaskHubSidecarService_RerunWorkflowFromEvent_Handler, }, + { + MethodName: "ListInstanceIDs", + Handler: _TaskHubSidecarService_ListInstanceIDs_Handler, + }, + { + MethodName: "GetInstanceHistory", + Handler: _TaskHubSidecarService_GetInstanceHistory_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/api/protos/runtime_state.pb.go b/api/protos/runtime_state.pb.go index dffc0d31..e865c3ec 100644 --- a/api/protos/runtime_state.pb.go +++ b/api/protos/runtime_state.pb.go @@ -13,7 +13,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v5.29.3 +// protoc v6.30.2 // source: runtime_state.proto package protos diff --git a/backend/backend.go b/backend/backend.go index 1a8aa20f..dc985623 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -33,6 +33,10 @@ type ( OrchestrationRuntimeState = protos.OrchestrationRuntimeState OrchestrationRuntimeStateMessage = protos.OrchestrationRuntimeStateMessage RerunWorkflowFromEventRequest = protos.RerunWorkflowFromEventRequest + ListInstanceIDsRequest = protos.ListInstanceIDsRequest + ListInstanceIDsResponse = protos.ListInstanceIDsResponse + GetInstanceHistoryRequest = protos.GetInstanceHistoryRequest + GetInstanceHistoryResponse = protos.GetInstanceHistoryResponse ) type OrchestrationIdReusePolicyOptions func(*protos.OrchestrationIdReusePolicy) error @@ -149,6 +153,13 @@ type Backend interface { // // [api.ErrTaskCancelled] is returned if the task was cancelled. WaitForActivityCompletion(context.Context, *protos.ActivityRequest) (*protos.ActivityResponse, error) + + // ListInstanceIDs lists orchestration instance IDs based on the provided + // query parameters. + ListInstanceIDs(ctx context.Context, req *protos.ListInstanceIDsRequest) (*protos.ListInstanceIDsResponse, error) + + // GetInstanceHistory returns the full current history of a workflow instance. + GetInstanceHistory(ctx context.Context, req *protos.GetInstanceHistoryRequest) (*protos.GetInstanceHistoryResponse, error) } // MarshalHistoryEvent serializes the [HistoryEvent] into a protobuf byte array. diff --git a/backend/executor.go b/backend/executor.go index 5e9848de..3318cc01 100644 --- a/backend/executor.go +++ b/backend/executor.go @@ -545,6 +545,14 @@ func (g *grpcExecutor) RerunWorkflowFromEvent(ctx context.Context, req *protos.R return &protos.RerunWorkflowFromEventResponse{NewInstanceID: newInstanceID.String()}, nil } +func (g *grpcExecutor) ListInstanceIDs(ctx context.Context, req *protos.ListInstanceIDsRequest) (*protos.ListInstanceIDsResponse, error) { + return g.backend.ListInstanceIDs(ctx, req) +} + +func (g *grpcExecutor) GetInstanceHistory(ctx context.Context, req *protos.GetInstanceHistoryRequest) (*protos.GetInstanceHistoryResponse, error) { + return g.backend.GetInstanceHistory(ctx, req) +} + // TerminateInstance implements protos.TaskHubSidecarServiceServer func (g *grpcExecutor) TerminateInstance(ctx context.Context, req *protos.TerminateRequest) (*protos.TerminateResponse, error) { e := &protos.HistoryEvent{ @@ -674,4 +682,42 @@ func createGetInstanceResponse(req *protos.GetInstanceRequest, metadata *Orchest return &protos.GetInstanceResponse{Exists: true, OrchestrationState: state} } -func (grpcExecutor) mustEmbedUnimplementedTaskHubSidecarServiceServer() {} +func (executor *grpcExecutor) AbandonTaskActivityWorkItem(ctx context.Context, in *protos.AbandonActivityTaskRequest) (*protos.AbandonActivityTaskResponse, error) { + return nil, nil +} + +func (*grpcExecutor) AbandonTaskEntityWorkItem(ctx context.Context, in *protos.AbandonEntityTaskRequest) (*protos.AbandonEntityTaskResponse, error) { + return nil, nil +} + +func (*grpcExecutor) AbandonTaskOrchestratorWorkItem(ctx context.Context, in *protos.AbandonOrchestrationTaskRequest) (*protos.AbandonOrchestrationTaskResponse, error) { + return nil, nil +} + +func (*grpcExecutor) CleanEntityStorage(ctx context.Context, in *protos.CleanEntityStorageRequest) (*protos.CleanEntityStorageResponse, error) { + return nil, nil +} + +func (*grpcExecutor) CompleteEntityTask(ctx context.Context, in *protos.EntityBatchResult) (*protos.CompleteTaskResponse, error) { + return nil, nil +} + +func (*grpcExecutor) GetEntity(ctx context.Context, in *protos.GetEntityRequest) (*protos.GetEntityResponse, error) { + return nil, nil +} + +func (*grpcExecutor) QueryEntities(ctx context.Context, in *protos.QueryEntitiesRequest) (*protos.QueryEntitiesResponse, error) { + return nil, nil +} + +func (*grpcExecutor) RewindInstance(ctx context.Context, in *protos.RewindInstanceRequest) (*protos.RewindInstanceResponse, error) { + return nil, nil +} + +func (*grpcExecutor) SignalEntity(ctx context.Context, in *protos.SignalEntityRequest) (*protos.SignalEntityResponse, error) { + return nil, nil +} + +func (*grpcExecutor) StreamInstanceHistory(in *protos.StreamInstanceHistoryRequest, srv protos.TaskHubSidecarService_StreamInstanceHistoryServer) error { + return nil +} diff --git a/backend/postgres/postgres.go b/backend/postgres/postgres.go index 057d5f8d..0784385d 100644 --- a/backend/postgres/postgres.go +++ b/backend/postgres/postgres.go @@ -845,17 +845,33 @@ func (be *postgresBackend) GetOrchestrationRuntimeState(ctx context.Context, wi return nil, err } + resp, err := be.GetInstanceHistory(ctx, &backend.GetInstanceHistoryRequest{ + InstanceId: wi.InstanceID.String(), + }) + if err != nil { + return nil, err + } + + state := runtimestate.NewOrchestrationRuntimeState(string(wi.InstanceID), nil, resp.GetEvents()) + return state, nil +} + +func (be *postgresBackend) GetInstanceHistory(ctx context.Context, wi *backend.GetInstanceHistoryRequest) (*backend.GetInstanceHistoryResponse, error) { + if err := be.ensureDB(); err != nil { + return nil, err + } + rows, err := be.db.Query( ctx, "SELECT EventPayload FROM History WHERE InstanceID = $1 ORDER BY SequenceNumber ASC", - string(wi.InstanceID), + string(wi.InstanceId), ) if err != nil { return nil, err } defer rows.Close() - existingEvents := make([]*protos.HistoryEvent, 0, 50) + events := make([]*protos.HistoryEvent, 0, 50) for rows.Next() { var eventPayload []byte if err := rows.Scan(&eventPayload); err != nil { @@ -867,11 +883,38 @@ func (be *postgresBackend) GetOrchestrationRuntimeState(ctx context.Context, wi return nil, err } - existingEvents = append(existingEvents, e) + events = append(events, e) } - state := runtimestate.NewOrchestrationRuntimeState(string(wi.InstanceID), nil, existingEvents) - return state, nil + return &backend.GetInstanceHistoryResponse{ + Events: events, + }, nil +} + +func (be *postgresBackend) ListInstanceIDs(ctx context.Context, wi *backend.ListInstanceIDsRequest) (*backend.ListInstanceIDsResponse, error) { + if err := be.ensureDB(); err != nil { + return nil, err + } + + rows, err := be.db.Query(ctx, "SELECT InstanceID FROM Instances ORDER BY SequenceNumber ASC") + if err != nil { + return nil, err + } + defer rows.Close() + + ids := make([]string, 0, 50) + for rows.Next() { + var id string + if err := rows.Scan(&id); err != nil { + return nil, fmt.Errorf("failed to read instance ID: %w", err) + } + + ids = append(ids, id) + } + + return &backend.ListInstanceIDsResponse{ + InstanceIds: ids, + }, nil } // GetOrchestrationWorkItem implements backend.Backend diff --git a/backend/sqlite/sqlite.go b/backend/sqlite/sqlite.go index 4879757a..65a98488 100644 --- a/backend/sqlite/sqlite.go +++ b/backend/sqlite/sqlite.go @@ -1112,3 +1112,64 @@ func (be *sqliteBackend) String() string { func (be *sqliteBackend) RerunWorkflowFromEvent(ctx context.Context, req *backend.RerunWorkflowFromEventRequest) (api.InstanceID, error) { return "", status.Error(codes.Unimplemented, "not implemented") } + +func (be *sqliteBackend) GetInstanceHistory(ctx context.Context, wi *backend.GetInstanceHistoryRequest) (*backend.GetInstanceHistoryResponse, error) { + if err := be.ensureDB(); err != nil { + return nil, err + } + + rows, err := be.db.QueryContext( + ctx, + "SELECT [EventPayload] FROM History WHERE [InstanceID] = ? ORDER BY [SequenceNumber] ASC", + string(wi.InstanceId), + ) + if err != nil { + return nil, err + } + defer rows.Close() + + events := make([]*protos.HistoryEvent, 0, 50) + for rows.Next() { + var eventPayload []byte + if err := rows.Scan(&eventPayload); err != nil { + return nil, fmt.Errorf("failed to read history event: %w", err) + } + + e, err := backend.UnmarshalHistoryEvent(eventPayload) + if err != nil { + return nil, err + } + + events = append(events, e) + } + + return &backend.GetInstanceHistoryResponse{ + Events: events, + }, nil +} + +func (be *sqliteBackend) ListInstanceIDs(ctx context.Context, wi *backend.ListInstanceIDsRequest) (*backend.ListInstanceIDsResponse, error) { + if err := be.ensureDB(); err != nil { + return nil, err + } + + rows, err := be.db.QueryContext(ctx, "SELECT [InstanceID] FROM Instances") + if err != nil { + return nil, err + } + defer rows.Close() + + ids := make([]string, 0, 50) + for rows.Next() { + var id string + if err := rows.Scan(&id); err != nil { + return nil, fmt.Errorf("failed to read instance ID: %w", err) + } + + ids = append(ids, id) + } + + return &backend.ListInstanceIDsResponse{ + InstanceIds: ids, + }, nil +} diff --git a/client/client_grpc.go b/client/client_grpc.go index dce162bd..4c716e33 100644 --- a/client/client_grpc.go +++ b/client/client_grpc.go @@ -12,6 +12,7 @@ import ( "github.com/dapr/durabletask-go/api" "github.com/dapr/durabletask-go/api/protos" "github.com/dapr/durabletask-go/backend" + "github.com/dapr/kit/ptr" ) // REVIEW: Can this be merged with backend/client.go somehow? @@ -236,6 +237,46 @@ func (c *TaskHubGrpcClient) RerunWorkflowFromEvent(ctx context.Context, id api.I return api.InstanceID(resp.GetNewInstanceID()), nil } +func (c *TaskHubGrpcClient) ListInstanceIDs(ctx context.Context, opts ...api.ListInstanceIDsOptions) (*backend.ListInstanceIDsResponse, error) { + req := protos.ListInstanceIDsRequest{ + PageSize: ptr.Of(uint32(1024)), + } + + for _, configure := range opts { + configure(&req) + } + + resp, err := c.client.ListInstanceIDs(ctx, &req) + if err != nil { + if ctx.Err() != nil { + return nil, ctx.Err() + } + return nil, fmt.Errorf("failed to list instance IDs: %w", err) + } + + return resp, nil +} + +func (c *TaskHubGrpcClient) GetInstanceHistory(ctx context.Context, id api.InstanceID, opts ...api.GetInstanceHistoryOptions) (*backend.GetInstanceHistoryResponse, error) { + req := protos.GetInstanceHistoryRequest{ + InstanceId: id.String(), + } + + for _, configure := range opts { + configure(&req) + } + + resp, err := c.client.GetInstanceHistory(ctx, &req) + if err != nil { + if ctx.Err() != nil { + return nil, ctx.Err() + } + return nil, fmt.Errorf("failed to get instance history: %w", err) + } + + return resp, nil +} + func makeGetInstanceRequest(id api.InstanceID, opts []api.FetchOrchestrationMetadataOptions) *protos.GetInstanceRequest { req := &protos.GetInstanceRequest{ InstanceId: string(id), diff --git a/samples/azurefunctions/middleware.go b/samples/azurefunctions/middleware.go index d48bd3c4..995b4d35 100644 --- a/samples/azurefunctions/middleware.go +++ b/samples/azurefunctions/middleware.go @@ -68,9 +68,9 @@ func MapOrchestrator(o task.Orchestrator) func(http.ResponseWriter, *http.Reques fmt.Printf("ERROR: Unexpected failure executing the orchestrator function: %v\n", err) return } - fmt.Printf("Orchestrator returned a response: %v\n", results.Response) + fmt.Printf("Orchestrator returned a response: %v\n", results) - respBytes, err := proto.Marshal(results.Response) + respBytes, err := proto.Marshal(results) if err != nil { fmt.Printf("ERROR: Failed to marshal orchestrator results to protobuf: %v\n", err) return diff --git a/submodules/durabletask-protobuf b/submodules/durabletask-protobuf index 39d5b4fb..5d4bd98e 160000 --- a/submodules/durabletask-protobuf +++ b/submodules/durabletask-protobuf @@ -1 +1 @@ -Subproject commit 39d5b4fbe70debd7a2a6b4ca1ce439ee471def71 +Subproject commit 5d4bd98e41785e1e15e8b6b9715fd46bd9516d0e diff --git a/tests/grpc/grpc_test.go b/tests/grpc/grpc_test.go index 0e7e7bfd..a413c9a3 100644 --- a/tests/grpc/grpc_test.go +++ b/tests/grpc/grpc_test.go @@ -7,6 +7,7 @@ import ( "log" "net" "os" + "strconv" "testing" "time" @@ -540,3 +541,51 @@ func Test_SingleActivity_TaskSpan(t *testing.T) { // assert child-parent relationship assert.Equal(t, spans[1].Parent().SpanID(), spans[2].SpanContext().SpanID()) } + +func Test_Grpc_ListInstanceIDs(t *testing.T) { + r := task.NewTaskRegistry() + r.AddOrchestratorN("foo", func(ctx *task.OrchestrationContext) (any, error) { + return 42, nil + }) + + cancelListener := startGrpcListener(t, r) + defer cancelListener() + + for i := range 5 { + _, err := grpcClient.ScheduleNewOrchestration(ctx, "foo", api.WithInstanceID(api.InstanceID(strconv.Itoa(i)))) + require.NoError(t, err) + } + + resp, err := grpcClient.ListInstanceIDs(ctx) + require.NoError(t, err) + assert.Subset(t, resp.InstanceIds, []string{"0", "1", "2", "3", "4"}) +} + +func Test_Grpc_GetInstanceHistory(t *testing.T) { + r := task.NewTaskRegistry() + r.AddOrchestratorN("foo", func(ctx *task.OrchestrationContext) (any, error) { + if err := ctx.CallActivity("bar").Await(nil); err != nil { + return nil, err + } + if err := ctx.CallActivity("bar").Await(nil); err != nil { + return nil, err + } + if err := ctx.CallActivity("bar").Await(nil); err != nil { + return nil, err + } + return 42, nil + }) + r.AddActivityN("bar", func(ctx task.ActivityContext) (any, error) { + return 42, nil + }) + + cancelListener := startGrpcListener(t, r) + defer cancelListener() + + id, err := grpcClient.ScheduleNewOrchestration(ctx, "foo") + require.NoError(t, err) + + resp, err := grpcClient.GetInstanceHistory(ctx, id) + require.NoError(t, err) + require.Len(t, resp.Events, 12) +} diff --git a/tests/mocks/Backend.go b/tests/mocks/Backend.go index 14137a63..237d36ca 100644 --- a/tests/mocks/Backend.go +++ b/tests/mocks/Backend.go @@ -605,6 +605,65 @@ func (_c *Backend_DeleteTaskHub_Call) RunAndReturn(run func(context.Context) err return _c } +// GetInstanceHistory provides a mock function with given fields: ctx, req +func (_m *Backend) GetInstanceHistory(ctx context.Context, req *protos.GetInstanceHistoryRequest) (*protos.GetInstanceHistoryResponse, error) { + ret := _m.Called(ctx, req) + + if len(ret) == 0 { + panic("no return value specified for GetInstanceHistory") + } + + var r0 *protos.GetInstanceHistoryResponse + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *protos.GetInstanceHistoryRequest) (*protos.GetInstanceHistoryResponse, error)); ok { + return rf(ctx, req) + } + if rf, ok := ret.Get(0).(func(context.Context, *protos.GetInstanceHistoryRequest) *protos.GetInstanceHistoryResponse); ok { + r0 = rf(ctx, req) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*protos.GetInstanceHistoryResponse) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *protos.GetInstanceHistoryRequest) error); ok { + r1 = rf(ctx, req) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Backend_GetInstanceHistory_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetInstanceHistory' +type Backend_GetInstanceHistory_Call struct { + *mock.Call +} + +// GetInstanceHistory is a helper method to define mock.On call +// - ctx context.Context +// - req *protos.GetInstanceHistoryRequest +func (_e *Backend_Expecter) GetInstanceHistory(ctx interface{}, req interface{}) *Backend_GetInstanceHistory_Call { + return &Backend_GetInstanceHistory_Call{Call: _e.mock.On("GetInstanceHistory", ctx, req)} +} + +func (_c *Backend_GetInstanceHistory_Call) Run(run func(ctx context.Context, req *protos.GetInstanceHistoryRequest)) *Backend_GetInstanceHistory_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*protos.GetInstanceHistoryRequest)) + }) + return _c +} + +func (_c *Backend_GetInstanceHistory_Call) Return(_a0 *protos.GetInstanceHistoryResponse, _a1 error) *Backend_GetInstanceHistory_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *Backend_GetInstanceHistory_Call) RunAndReturn(run func(context.Context, *protos.GetInstanceHistoryRequest) (*protos.GetInstanceHistoryResponse, error)) *Backend_GetInstanceHistory_Call { + _c.Call.Return(run) + return _c +} + // GetOrchestrationMetadata provides a mock function with given fields: _a0, _a1 func (_m *Backend) GetOrchestrationMetadata(_a0 context.Context, _a1 api.InstanceID) (*protos.OrchestrationMetadata, error) { ret := _m.Called(_a0, _a1) @@ -723,6 +782,65 @@ func (_c *Backend_GetOrchestrationRuntimeState_Call) RunAndReturn(run func(conte return _c } +// ListInstanceIDs provides a mock function with given fields: ctx, req +func (_m *Backend) ListInstanceIDs(ctx context.Context, req *protos.ListInstanceIDsRequest) (*protos.ListInstanceIDsResponse, error) { + ret := _m.Called(ctx, req) + + if len(ret) == 0 { + panic("no return value specified for ListInstanceIDs") + } + + var r0 *protos.ListInstanceIDsResponse + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *protos.ListInstanceIDsRequest) (*protos.ListInstanceIDsResponse, error)); ok { + return rf(ctx, req) + } + if rf, ok := ret.Get(0).(func(context.Context, *protos.ListInstanceIDsRequest) *protos.ListInstanceIDsResponse); ok { + r0 = rf(ctx, req) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*protos.ListInstanceIDsResponse) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *protos.ListInstanceIDsRequest) error); ok { + r1 = rf(ctx, req) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Backend_ListInstanceIDs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListInstanceIDs' +type Backend_ListInstanceIDs_Call struct { + *mock.Call +} + +// ListInstanceIDs is a helper method to define mock.On call +// - ctx context.Context +// - req *protos.ListInstanceIDsRequest +func (_e *Backend_Expecter) ListInstanceIDs(ctx interface{}, req interface{}) *Backend_ListInstanceIDs_Call { + return &Backend_ListInstanceIDs_Call{Call: _e.mock.On("ListInstanceIDs", ctx, req)} +} + +func (_c *Backend_ListInstanceIDs_Call) Run(run func(ctx context.Context, req *protos.ListInstanceIDsRequest)) *Backend_ListInstanceIDs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*protos.ListInstanceIDsRequest)) + }) + return _c +} + +func (_c *Backend_ListInstanceIDs_Call) Return(_a0 *protos.ListInstanceIDsResponse, _a1 error) *Backend_ListInstanceIDs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *Backend_ListInstanceIDs_Call) RunAndReturn(run func(context.Context, *protos.ListInstanceIDsRequest) (*protos.ListInstanceIDsResponse, error)) *Backend_ListInstanceIDs_Call { + _c.Call.Return(run) + return _c +} + // NextActivityWorkItem provides a mock function with given fields: _a0 func (_m *Backend) NextActivityWorkItem(_a0 context.Context) (*backend.ActivityWorkItem, error) { ret := _m.Called(_a0) diff --git a/workflow/api.go b/workflow/api.go index 97ad2b34..7702f866 100644 --- a/workflow/api.go +++ b/workflow/api.go @@ -15,6 +15,8 @@ type RaiseEventOptions api.RaiseEventOptions type TerminateOptions api.TerminateOptions type PurgeOptions api.PurgeOptions type RerunOptions api.RerunOptions +type ListInstanceIDsOptions api.ListInstanceIDsOptions +type GetInstanceHistoryOptions api.GetInstanceHistoryOptions // WithInstanceID configures an explicit workflow instance ID. If not // specified, a random UUID value will be used for the workflow instance ID. @@ -99,3 +101,11 @@ func WithRerunInput(input any) RerunOptions { func WithRerunNewInstanceID(id string) RerunOptions { return RerunOptions(api.WithRerunNewInstanceID(api.InstanceID(id))) } + +func WithListInstanceIDsPageSize(pageSize uint32) ListInstanceIDsOptions { + return ListInstanceIDsOptions(api.WithListInstanceIDsPageSize(pageSize)) +} + +func WithListInstanceIDsContinuationToken(token string) ListInstanceIDsOptions { + return ListInstanceIDsOptions(api.WithListInstanceIDsContinuationToken(token)) +} diff --git a/workflow/client.go b/workflow/client.go index 11311cde..571a7d9d 100644 --- a/workflow/client.go +++ b/workflow/client.go @@ -144,3 +144,29 @@ func (c *Client) RerunWorkflowFromEvent(ctx context.Context, id string, eventID newID, err := c.thgc.RerunWorkflowFromEvent(ctx, api.InstanceID(id), eventID, oops...) return string(newID), err } + +func (c *Client) ListInstanceIDs(ctx context.Context, opts ...ListInstanceIDsOptions) (*ListInstanceIDsResponse, error) { + oops := make([]api.ListInstanceIDsOptions, len(opts)) + for i, o := range opts { + oops[i] = api.ListInstanceIDsOptions(o) + } + resp, err := c.thgc.ListInstanceIDs(ctx, oops...) + if err != nil { + return nil, err + } + + return (*ListInstanceIDsResponse)(resp), nil +} + +func (c *Client) GetInstanceHistory(ctx context.Context, id string, opts ...GetInstanceHistoryOptions) (*GetInstanceHistoryResponse, error) { + oops := make([]api.GetInstanceHistoryOptions, len(opts)) + for i, o := range opts { + oops[i] = api.GetInstanceHistoryOptions(o) + } + resp, err := c.thgc.GetInstanceHistory(ctx, api.InstanceID(id), oops...) + if err != nil { + return nil, err + } + + return (*GetInstanceHistoryResponse)(resp), nil +} diff --git a/workflow/state.go b/workflow/state.go index d463f669..5387f04f 100644 --- a/workflow/state.go +++ b/workflow/state.go @@ -17,6 +17,8 @@ const ( ) type WorkflowMetadata protos.OrchestrationMetadata +type ListInstanceIDsResponse protos.ListInstanceIDsResponse +type GetInstanceHistoryResponse protos.GetInstanceHistoryResponse func (w WorkflowMetadata) String() string { switch w.RuntimeStatus {