From 255a0e86cc7caa4180b256e695ff71ef35642fed Mon Sep 17 00:00:00 2001 From: Dominik Korittki <23359034+dkorittki@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:57:59 +0100 Subject: [PATCH 1/5] chore: use modified engine --- router-tests/go.mod | 2 +- router-tests/go.sum | 4 ++-- router/go.mod | 2 +- router/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/router-tests/go.mod b/router-tests/go.mod index 7e079a84ce..6835498c47 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -28,7 +28,7 @@ require ( github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects v0.0.0-20250715110703-10f2e5f9c79e github.com/wundergraph/cosmo/router v0.0.0-20260319123623-f186a0f724f6 github.com/wundergraph/cosmo/router-plugin v0.0.0-20250808194725-de123ba1c65e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b go.opentelemetry.io/otel v1.39.0 go.opentelemetry.io/otel/sdk v1.39.0 go.opentelemetry.io/otel/sdk/metric v1.39.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index 1a190938ef..00ff0a7bfe 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -357,8 +357,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265 h1:KVmojt3oH13VX8Yr8NZ+fuOiruLyznderHITJs1MyWE= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b h1:sJgEmO88eVy2bdZr4dMDQSsNbcAKmjRnIB4x47sgLKs= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= diff --git a/router/go.mod b/router/go.mod index b433cf95bb..d224aaf069 100644 --- a/router/go.mod +++ b/router/go.mod @@ -31,7 +31,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index f4a331eac6..ee0ac9e981 100644 --- a/router/go.sum +++ b/router/go.sum @@ -329,8 +329,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265 h1:KVmojt3oH13VX8Yr8NZ+fuOiruLyznderHITJs1MyWE= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b h1:sJgEmO88eVy2bdZr4dMDQSsNbcAKmjRnIB4x47sgLKs= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.265.0.20260320132633-5036bd63ed9b/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= From 127643283c099207b3cd0779708d5ab07ec4d5b1 Mon Sep 17 00:00:00 2001 From: Dominik Korittki <23359034+dkorittki@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:47:42 +0100 Subject: [PATCH 2/5] chore: add tests --- .../subgraphs/projects/generated/mapping.json | 27 +- .../projects/generated/service.pb.go | 8807 ++++++----------- .../projects/generated/service.proto | 30 + .../projects/generated/service_grpc.pb.go | 208 +- .../pkg/subgraphs/projects/src/schema.graphql | 1 + .../subgraphs/projects/src/service/service.go | 63 + router-tests/protocol/grpc_subgraph_test.go | 10 + .../testenv/testdata/configWithGRPC.json | 28 +- 8 files changed, 3054 insertions(+), 6120 deletions(-) diff --git a/demo/pkg/subgraphs/projects/generated/mapping.json b/demo/pkg/subgraphs/projects/generated/mapping.json index 7252608478..51f4cf04ac 100644 --- a/demo/pkg/subgraphs/projects/generated/mapping.json +++ b/demo/pkg/subgraphs/projects/generated/mapping.json @@ -188,6 +188,21 @@ "rpc": "RequireEmployeeTaggedProjectSummaryById", "request": "RequireEmployeeTaggedProjectSummaryByIdRequest", "response": "RequireEmployeeTaggedProjectSummaryByIdResponse" + }, + { + "fieldMapping": { + "original": "filteredProjectSummary", + "mapped": "filtered_project_summary", + "argumentMappings": [ + { + "original": "tag", + "mapped": "tag" + } + ] + }, + "rpc": "RequireEmployeeFilteredProjectSummaryById", + "request": "RequireEmployeeFilteredProjectSummaryByIdRequest", + "response": "RequireEmployeeFilteredProjectSummaryByIdResponse" } ] }, @@ -974,6 +989,16 @@ "original": "totalProjectCount", "mapped": "total_project_count", "argumentMappings": [] + }, + { + "original": "filteredProjectSummary", + "mapped": "filtered_project_summary", + "argumentMappings": [ + { + "original": "tag", + "mapped": "tag" + } + ] } ] }, @@ -1401,4 +1426,4 @@ "response": "ResolveEmployeeTotalProjectCountResponse" } ] -} \ No newline at end of file +} diff --git a/demo/pkg/subgraphs/projects/generated/service.pb.go b/demo/pkg/subgraphs/projects/generated/service.pb.go index 1f0d755682..d21d66179a 100644 --- a/demo/pkg/subgraphs/projects/generated/service.pb.go +++ b/demo/pkg/subgraphs/projects/generated/service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v5.29.3 +// protoc-gen-go v1.36.11 +// protoc v7.34.0 // source: generated/service.proto package projects @@ -12,6 +12,7 @@ import ( wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -304,20 +305,17 @@ func (ProjectUpdateType) EnumDescriptor() ([]byte, []int) { // Wrapper message for a list of Employee. type ListOfEmployee struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfEmployee_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfEmployee_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfEmployee) Reset() { *x = ListOfEmployee{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfEmployee) String() string { @@ -328,7 +326,7 @@ func (*ListOfEmployee) ProtoMessage() {} func (x *ListOfEmployee) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -352,20 +350,17 @@ func (x *ListOfEmployee) GetList() *ListOfEmployee_List { // Wrapper message for a list of Int. type ListOfInt struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfInt_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfInt_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfInt) Reset() { *x = ListOfInt{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfInt) String() string { @@ -376,7 +371,7 @@ func (*ListOfInt) ProtoMessage() {} func (x *ListOfInt) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -400,20 +395,17 @@ func (x *ListOfInt) GetList() *ListOfInt_List { // Wrapper message for a list of Task. type ListOfListOfListOfTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfListOfTask) Reset() { *x = ListOfListOfListOfTask{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfListOfTask) String() string { @@ -424,7 +416,7 @@ func (*ListOfListOfListOfTask) ProtoMessage() {} func (x *ListOfListOfListOfTask) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -448,20 +440,17 @@ func (x *ListOfListOfListOfTask) GetList() *ListOfListOfListOfTask_List { // Wrapper message for a list of Milestone. type ListOfListOfMilestone struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfMilestone_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfMilestone_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfMilestone) Reset() { *x = ListOfListOfMilestone{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfMilestone) String() string { @@ -472,7 +461,7 @@ func (*ListOfListOfMilestone) ProtoMessage() {} func (x *ListOfListOfMilestone) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -496,20 +485,17 @@ func (x *ListOfListOfMilestone) GetList() *ListOfListOfMilestone_List { // Wrapper message for a list of Project. type ListOfListOfProject struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfProject_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfProject_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfProject) Reset() { *x = ListOfListOfProject{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfProject) String() string { @@ -520,7 +506,7 @@ func (*ListOfListOfProject) ProtoMessage() {} func (x *ListOfListOfProject) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -544,20 +530,17 @@ func (x *ListOfListOfProject) GetList() *ListOfListOfProject_List { // Wrapper message for a list of ProjectResource. type ListOfListOfProjectResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfProjectResource_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfProjectResource_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfProjectResource) Reset() { *x = ListOfListOfProjectResource{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfProjectResource) String() string { @@ -568,7 +551,7 @@ func (*ListOfListOfProjectResource) ProtoMessage() {} func (x *ListOfListOfProjectResource) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -592,20 +575,17 @@ func (x *ListOfListOfProjectResource) GetList() *ListOfListOfProjectResource_Lis // Wrapper message for a list of String. type ListOfListOfString struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfString_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfString_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfString) Reset() { *x = ListOfListOfString{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfString) String() string { @@ -616,7 +596,7 @@ func (*ListOfListOfString) ProtoMessage() {} func (x *ListOfListOfString) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -640,20 +620,17 @@ func (x *ListOfListOfString) GetList() *ListOfListOfString_List { // Wrapper message for a list of Task. type ListOfListOfTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfTask) Reset() { *x = ListOfListOfTask{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfTask) String() string { @@ -664,7 +641,7 @@ func (*ListOfListOfTask) ProtoMessage() {} func (x *ListOfListOfTask) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -688,20 +665,17 @@ func (x *ListOfListOfTask) GetList() *ListOfListOfTask_List { // Wrapper message for a list of Milestone. type ListOfMilestone struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfMilestone_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfMilestone_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfMilestone) Reset() { *x = ListOfMilestone{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfMilestone) String() string { @@ -712,7 +686,7 @@ func (*ListOfMilestone) ProtoMessage() {} func (x *ListOfMilestone) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -736,20 +710,17 @@ func (x *ListOfMilestone) GetList() *ListOfMilestone_List { // Wrapper message for a list of Project. type ListOfProject struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfProject_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfProject_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfProject) Reset() { *x = ListOfProject{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfProject) String() string { @@ -760,7 +731,7 @@ func (*ListOfProject) ProtoMessage() {} func (x *ListOfProject) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -784,20 +755,17 @@ func (x *ListOfProject) GetList() *ListOfProject_List { // Wrapper message for a list of ProjectResource. type ListOfProjectResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfProjectResource_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfProjectResource_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfProjectResource) Reset() { *x = ListOfProjectResource{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfProjectResource) String() string { @@ -808,7 +776,7 @@ func (*ListOfProjectResource) ProtoMessage() {} func (x *ListOfProjectResource) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -832,20 +800,17 @@ func (x *ListOfProjectResource) GetList() *ListOfProjectResource_List { // Wrapper message for a list of String. type ListOfString struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfString_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfString_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfString) Reset() { *x = ListOfString{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfString) String() string { @@ -856,7 +821,7 @@ func (*ListOfString) ProtoMessage() {} func (x *ListOfString) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -880,20 +845,17 @@ func (x *ListOfString) GetList() *ListOfString_List { // Wrapper message for a list of Task. type ListOfTask struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + List *ListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` unknownFields protoimpl.UnknownFields - - List *ListOfTask_List `protobuf:"bytes,1,opt,name=list,proto3" json:"list,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfTask) Reset() { *x = ListOfTask{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfTask) String() string { @@ -904,7 +866,7 @@ func (*ListOfTask) ProtoMessage() {} func (x *ListOfTask) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -928,21 +890,18 @@ func (x *ListOfTask) GetList() *ListOfTask_List { // Key message for Project entity lookup type LookupProjectByIdRequestKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Key field for Project entity lookup. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProjectByIdRequestKey) Reset() { *x = LookupProjectByIdRequestKey{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProjectByIdRequestKey) String() string { @@ -953,7 +912,7 @@ func (*LookupProjectByIdRequestKey) ProtoMessage() {} func (x *LookupProjectByIdRequestKey) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -977,22 +936,19 @@ func (x *LookupProjectByIdRequestKey) GetId() string { // Request message for Project entity lookup. type LookupProjectByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of keys to look up Project entities. // Order matters - each key maps to one entity in LookupProjectByIdResponse. - Keys []*LookupProjectByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Keys []*LookupProjectByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProjectByIdRequest) Reset() { *x = LookupProjectByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProjectByIdRequest) String() string { @@ -1003,7 +959,7 @@ func (*LookupProjectByIdRequest) ProtoMessage() {} func (x *LookupProjectByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1027,10 +983,7 @@ func (x *LookupProjectByIdRequest) GetKeys() []*LookupProjectByIdRequestKey { // Response message for Project entity lookup. type LookupProjectByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of Project entities in the same order as the keys in LookupProjectByIdRequest. // Always return the same number of entities as keys. Use null for entities that cannot be found. // @@ -1044,16 +997,16 @@ type LookupProjectByIdResponse struct { // result: // - id: 1 # User with id 1 found // - null # User with id 2 not found - Result []*Project `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*Project `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProjectByIdResponse) Reset() { *x = LookupProjectByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProjectByIdResponse) String() string { @@ -1064,7 +1017,7 @@ func (*LookupProjectByIdResponse) ProtoMessage() {} func (x *LookupProjectByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1088,21 +1041,18 @@ func (x *LookupProjectByIdResponse) GetResult() []*Project { // Key message for Milestone entity lookup type LookupMilestoneByIdRequestKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Key field for Milestone entity lookup. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupMilestoneByIdRequestKey) Reset() { *x = LookupMilestoneByIdRequestKey{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupMilestoneByIdRequestKey) String() string { @@ -1113,7 +1063,7 @@ func (*LookupMilestoneByIdRequestKey) ProtoMessage() {} func (x *LookupMilestoneByIdRequestKey) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1137,22 +1087,19 @@ func (x *LookupMilestoneByIdRequestKey) GetId() string { // Request message for Milestone entity lookup. type LookupMilestoneByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of keys to look up Milestone entities. // Order matters - each key maps to one entity in LookupMilestoneByIdResponse. - Keys []*LookupMilestoneByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Keys []*LookupMilestoneByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupMilestoneByIdRequest) Reset() { *x = LookupMilestoneByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupMilestoneByIdRequest) String() string { @@ -1163,7 +1110,7 @@ func (*LookupMilestoneByIdRequest) ProtoMessage() {} func (x *LookupMilestoneByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1187,10 +1134,7 @@ func (x *LookupMilestoneByIdRequest) GetKeys() []*LookupMilestoneByIdRequestKey // Response message for Milestone entity lookup. type LookupMilestoneByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of Milestone entities in the same order as the keys in LookupMilestoneByIdRequest. // Always return the same number of entities as keys. Use null for entities that cannot be found. // @@ -1204,16 +1148,16 @@ type LookupMilestoneByIdResponse struct { // result: // - id: 1 # User with id 1 found // - null # User with id 2 not found - Result []*Milestone `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*Milestone `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupMilestoneByIdResponse) Reset() { *x = LookupMilestoneByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupMilestoneByIdResponse) String() string { @@ -1224,7 +1168,7 @@ func (*LookupMilestoneByIdResponse) ProtoMessage() {} func (x *LookupMilestoneByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1248,21 +1192,18 @@ func (x *LookupMilestoneByIdResponse) GetResult() []*Milestone { // Key message for Task entity lookup type LookupTaskByIdRequestKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Key field for Task entity lookup. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupTaskByIdRequestKey) Reset() { *x = LookupTaskByIdRequestKey{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupTaskByIdRequestKey) String() string { @@ -1273,7 +1214,7 @@ func (*LookupTaskByIdRequestKey) ProtoMessage() {} func (x *LookupTaskByIdRequestKey) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1297,22 +1238,19 @@ func (x *LookupTaskByIdRequestKey) GetId() string { // Request message for Task entity lookup. type LookupTaskByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of keys to look up Task entities. // Order matters - each key maps to one entity in LookupTaskByIdResponse. - Keys []*LookupTaskByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Keys []*LookupTaskByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupTaskByIdRequest) Reset() { *x = LookupTaskByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupTaskByIdRequest) String() string { @@ -1323,7 +1261,7 @@ func (*LookupTaskByIdRequest) ProtoMessage() {} func (x *LookupTaskByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1347,10 +1285,7 @@ func (x *LookupTaskByIdRequest) GetKeys() []*LookupTaskByIdRequestKey { // Response message for Task entity lookup. type LookupTaskByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of Task entities in the same order as the keys in LookupTaskByIdRequest. // Always return the same number of entities as keys. Use null for entities that cannot be found. // @@ -1364,16 +1299,16 @@ type LookupTaskByIdResponse struct { // result: // - id: 1 # User with id 1 found // - null # User with id 2 not found - Result []*Task `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*Task `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupTaskByIdResponse) Reset() { *x = LookupTaskByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupTaskByIdResponse) String() string { @@ -1384,7 +1319,7 @@ func (*LookupTaskByIdResponse) ProtoMessage() {} func (x *LookupTaskByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1408,21 +1343,18 @@ func (x *LookupTaskByIdResponse) GetResult() []*Task { // Key message for Employee entity lookup type LookupEmployeeByIdRequestKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Key field for Employee entity lookup. - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupEmployeeByIdRequestKey) Reset() { *x = LookupEmployeeByIdRequestKey{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupEmployeeByIdRequestKey) String() string { @@ -1433,7 +1365,7 @@ func (*LookupEmployeeByIdRequestKey) ProtoMessage() {} func (x *LookupEmployeeByIdRequestKey) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1457,22 +1389,19 @@ func (x *LookupEmployeeByIdRequestKey) GetId() string { // Request message for Employee entity lookup. type LookupEmployeeByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of keys to look up Employee entities. // Order matters - each key maps to one entity in LookupEmployeeByIdResponse. - Keys []*LookupEmployeeByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Keys []*LookupEmployeeByIdRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupEmployeeByIdRequest) Reset() { *x = LookupEmployeeByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupEmployeeByIdRequest) String() string { @@ -1483,7 +1412,7 @@ func (*LookupEmployeeByIdRequest) ProtoMessage() {} func (x *LookupEmployeeByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1507,10 +1436,7 @@ func (x *LookupEmployeeByIdRequest) GetKeys() []*LookupEmployeeByIdRequestKey { // Response message for Employee entity lookup. type LookupEmployeeByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of Employee entities in the same order as the keys in LookupEmployeeByIdRequest. // Always return the same number of entities as keys. Use null for entities that cannot be found. // @@ -1524,16 +1450,16 @@ type LookupEmployeeByIdResponse struct { // result: // - id: 1 # User with id 1 found // - null # User with id 2 not found - Result []*Employee `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*Employee `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupEmployeeByIdResponse) Reset() { *x = LookupEmployeeByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupEmployeeByIdResponse) String() string { @@ -1544,7 +1470,7 @@ func (*LookupEmployeeByIdResponse) ProtoMessage() {} func (x *LookupEmployeeByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1568,21 +1494,18 @@ func (x *LookupEmployeeByIdResponse) GetResult() []*Employee { // Key message for Product entity lookup type LookupProductByUpcRequestKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Key field for Product entity lookup. - Upc string `protobuf:"bytes,1,opt,name=upc,proto3" json:"upc,omitempty"` + Upc string `protobuf:"bytes,1,opt,name=upc,proto3" json:"upc,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProductByUpcRequestKey) Reset() { *x = LookupProductByUpcRequestKey{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProductByUpcRequestKey) String() string { @@ -1593,7 +1516,7 @@ func (*LookupProductByUpcRequestKey) ProtoMessage() {} func (x *LookupProductByUpcRequestKey) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1617,22 +1540,19 @@ func (x *LookupProductByUpcRequestKey) GetUpc() string { // Request message for Product entity lookup. type LookupProductByUpcRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of keys to look up Product entities. // Order matters - each key maps to one entity in LookupProductByUpcResponse. - Keys []*LookupProductByUpcRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Keys []*LookupProductByUpcRequestKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProductByUpcRequest) Reset() { *x = LookupProductByUpcRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProductByUpcRequest) String() string { @@ -1643,7 +1563,7 @@ func (*LookupProductByUpcRequest) ProtoMessage() {} func (x *LookupProductByUpcRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1667,10 +1587,7 @@ func (x *LookupProductByUpcRequest) GetKeys() []*LookupProductByUpcRequestKey { // Response message for Product entity lookup. type LookupProductByUpcResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // List of Product entities in the same order as the keys in LookupProductByUpcRequest. // Always return the same number of entities as keys. Use null for entities that cannot be found. // @@ -1684,16 +1601,16 @@ type LookupProductByUpcResponse struct { // result: // - id: 1 # User with id 1 found // - null # User with id 2 not found - Result []*Product `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*Product `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LookupProductByUpcResponse) Reset() { *x = LookupProductByUpcResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupProductByUpcResponse) String() string { @@ -1704,7 +1621,7 @@ func (*LookupProductByUpcResponse) ProtoMessage() {} func (x *LookupProductByUpcResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1728,18 +1645,16 @@ func (x *LookupProductByUpcResponse) GetResult() []*Product { // Request message for projects operation. type QueryProjectsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectsRequest) Reset() { *x = QueryProjectsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectsRequest) String() string { @@ -1750,7 +1665,7 @@ func (*QueryProjectsRequest) ProtoMessage() {} func (x *QueryProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1767,20 +1682,17 @@ func (*QueryProjectsRequest) Descriptor() ([]byte, []int) { // Response message for projects operation. type QueryProjectsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` unknownFields protoimpl.UnknownFields - - Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectsResponse) Reset() { *x = QueryProjectsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectsResponse) String() string { @@ -1791,7 +1703,7 @@ func (*QueryProjectsResponse) ProtoMessage() {} func (x *QueryProjectsResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1815,20 +1727,17 @@ func (x *QueryProjectsResponse) GetProjects() []*Project { // Request message for project operation. type QueryProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectRequest) Reset() { *x = QueryProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectRequest) String() string { @@ -1839,7 +1748,7 @@ func (*QueryProjectRequest) ProtoMessage() {} func (x *QueryProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1863,20 +1772,17 @@ func (x *QueryProjectRequest) GetId() string { // Response message for project operation. type QueryProjectResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` unknownFields protoimpl.UnknownFields - - Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectResponse) Reset() { *x = QueryProjectResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectResponse) String() string { @@ -1887,7 +1793,7 @@ func (*QueryProjectResponse) ProtoMessage() {} func (x *QueryProjectResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1911,18 +1817,16 @@ func (x *QueryProjectResponse) GetProject() *Project { // Request message for projectStatuses operation. type QueryProjectStatusesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectStatusesRequest) Reset() { *x = QueryProjectStatusesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectStatusesRequest) String() string { @@ -1933,7 +1837,7 @@ func (*QueryProjectStatusesRequest) ProtoMessage() {} func (x *QueryProjectStatusesRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1950,20 +1854,17 @@ func (*QueryProjectStatusesRequest) Descriptor() ([]byte, []int) { // Response message for projectStatuses operation. type QueryProjectStatusesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProjectStatuses []ProjectStatus `protobuf:"varint,1,rep,packed,name=project_statuses,json=projectStatuses,proto3,enum=service.ProjectStatus" json:"project_statuses,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ProjectStatuses []ProjectStatus `protobuf:"varint,1,rep,packed,name=project_statuses,json=projectStatuses,proto3,enum=service.ProjectStatus" json:"project_statuses,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectStatusesResponse) Reset() { *x = QueryProjectStatusesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectStatusesResponse) String() string { @@ -1974,7 +1875,7 @@ func (*QueryProjectStatusesResponse) ProtoMessage() {} func (x *QueryProjectStatusesResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1998,20 +1899,17 @@ func (x *QueryProjectStatusesResponse) GetProjectStatuses() []ProjectStatus { // Request message for projectsByStatus operation. type QueryProjectsByStatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status ProjectStatus `protobuf:"varint,1,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Status ProjectStatus `protobuf:"varint,1,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectsByStatusRequest) Reset() { *x = QueryProjectsByStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectsByStatusRequest) String() string { @@ -2022,7 +1920,7 @@ func (*QueryProjectsByStatusRequest) ProtoMessage() {} func (x *QueryProjectsByStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2046,20 +1944,17 @@ func (x *QueryProjectsByStatusRequest) GetStatus() ProjectStatus { // Response message for projectsByStatus operation. type QueryProjectsByStatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProjectsByStatus []*Project `protobuf:"bytes,1,rep,name=projects_by_status,json=projectsByStatus,proto3" json:"projects_by_status,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ProjectsByStatus []*Project `protobuf:"bytes,1,rep,name=projects_by_status,json=projectsByStatus,proto3" json:"projects_by_status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectsByStatusResponse) Reset() { *x = QueryProjectsByStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectsByStatusResponse) String() string { @@ -2070,7 +1965,7 @@ func (*QueryProjectsByStatusResponse) ProtoMessage() {} func (x *QueryProjectsByStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2094,20 +1989,17 @@ func (x *QueryProjectsByStatusResponse) GetProjectsByStatus() []*Project { // Request message for projectResources operation. type QueryProjectResourcesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectResourcesRequest) Reset() { *x = QueryProjectResourcesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectResourcesRequest) String() string { @@ -2118,7 +2010,7 @@ func (*QueryProjectResourcesRequest) ProtoMessage() {} func (x *QueryProjectResourcesRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2142,20 +2034,17 @@ func (x *QueryProjectResourcesRequest) GetProjectId() string { // Response message for projectResources operation. type QueryProjectResourcesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProjectResources []*ProjectResource `protobuf:"bytes,1,rep,name=project_resources,json=projectResources,proto3" json:"project_resources,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ProjectResources []*ProjectResource `protobuf:"bytes,1,rep,name=project_resources,json=projectResources,proto3" json:"project_resources,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectResourcesResponse) Reset() { *x = QueryProjectResourcesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectResourcesResponse) String() string { @@ -2166,7 +2055,7 @@ func (*QueryProjectResourcesResponse) ProtoMessage() {} func (x *QueryProjectResourcesResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2190,20 +2079,17 @@ func (x *QueryProjectResourcesResponse) GetProjectResources() []*ProjectResource // Request message for searchProjects operation. type QuerySearchProjectsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` unknownFields protoimpl.UnknownFields - - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QuerySearchProjectsRequest) Reset() { *x = QuerySearchProjectsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QuerySearchProjectsRequest) String() string { @@ -2214,7 +2100,7 @@ func (*QuerySearchProjectsRequest) ProtoMessage() {} func (x *QuerySearchProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2238,20 +2124,17 @@ func (x *QuerySearchProjectsRequest) GetQuery() string { // Response message for searchProjects operation. type QuerySearchProjectsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` SearchProjects []*ProjectSearchResult `protobuf:"bytes,1,rep,name=search_projects,json=searchProjects,proto3" json:"search_projects,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QuerySearchProjectsResponse) Reset() { *x = QuerySearchProjectsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QuerySearchProjectsResponse) String() string { @@ -2262,7 +2145,7 @@ func (*QuerySearchProjectsResponse) ProtoMessage() {} func (x *QuerySearchProjectsResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2286,20 +2169,17 @@ func (x *QuerySearchProjectsResponse) GetSearchProjects() []*ProjectSearchResult // Request message for milestones operation. type QueryMilestonesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryMilestonesRequest) Reset() { *x = QueryMilestonesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryMilestonesRequest) String() string { @@ -2310,7 +2190,7 @@ func (*QueryMilestonesRequest) ProtoMessage() {} func (x *QueryMilestonesRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2334,20 +2214,17 @@ func (x *QueryMilestonesRequest) GetProjectId() string { // Response message for milestones operation. type QueryMilestonesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Milestones []*Milestone `protobuf:"bytes,1,rep,name=milestones,proto3" json:"milestones,omitempty"` unknownFields protoimpl.UnknownFields - - Milestones []*Milestone `protobuf:"bytes,1,rep,name=milestones,proto3" json:"milestones,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryMilestonesResponse) Reset() { *x = QueryMilestonesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryMilestonesResponse) String() string { @@ -2358,7 +2235,7 @@ func (*QueryMilestonesResponse) ProtoMessage() {} func (x *QueryMilestonesResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2382,20 +2259,17 @@ func (x *QueryMilestonesResponse) GetMilestones() []*Milestone { // Request message for tasks operation. type QueryTasksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryTasksRequest) Reset() { *x = QueryTasksRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryTasksRequest) String() string { @@ -2406,7 +2280,7 @@ func (*QueryTasksRequest) ProtoMessage() {} func (x *QueryTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2430,20 +2304,17 @@ func (x *QueryTasksRequest) GetProjectId() string { // Response message for tasks operation. type QueryTasksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` unknownFields protoimpl.UnknownFields - - Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryTasksResponse) Reset() { *x = QueryTasksResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryTasksResponse) String() string { @@ -2454,7 +2325,7 @@ func (*QueryTasksResponse) ProtoMessage() {} func (x *QueryTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2478,20 +2349,17 @@ func (x *QueryTasksResponse) GetTasks() []*Task { // Request message for projectActivities operation. type QueryProjectActivitiesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectActivitiesRequest) Reset() { *x = QueryProjectActivitiesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectActivitiesRequest) String() string { @@ -2502,7 +2370,7 @@ func (*QueryProjectActivitiesRequest) ProtoMessage() {} func (x *QueryProjectActivitiesRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2526,20 +2394,17 @@ func (x *QueryProjectActivitiesRequest) GetProjectId() string { // Response message for projectActivities operation. type QueryProjectActivitiesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProjectActivities []*ProjectActivity `protobuf:"bytes,1,rep,name=project_activities,json=projectActivities,proto3" json:"project_activities,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ProjectActivities []*ProjectActivity `protobuf:"bytes,1,rep,name=project_activities,json=projectActivities,proto3" json:"project_activities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectActivitiesResponse) Reset() { *x = QueryProjectActivitiesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectActivitiesResponse) String() string { @@ -2550,7 +2415,7 @@ func (*QueryProjectActivitiesResponse) ProtoMessage() {} func (x *QueryProjectActivitiesResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2574,18 +2439,16 @@ func (x *QueryProjectActivitiesResponse) GetProjectActivities() []*ProjectActivi // Request message for projectTags operation. type QueryProjectTagsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryProjectTagsRequest) Reset() { *x = QueryProjectTagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectTagsRequest) String() string { @@ -2596,7 +2459,7 @@ func (*QueryProjectTagsRequest) ProtoMessage() {} func (x *QueryProjectTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2613,20 +2476,17 @@ func (*QueryProjectTagsRequest) Descriptor() ([]byte, []int) { // Response message for projectTags operation. type QueryProjectTagsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectTags *ListOfString `protobuf:"bytes,1,opt,name=project_tags,json=projectTags,proto3" json:"project_tags,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectTags *ListOfString `protobuf:"bytes,1,opt,name=project_tags,json=projectTags,proto3" json:"project_tags,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryProjectTagsResponse) Reset() { *x = QueryProjectTagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryProjectTagsResponse) String() string { @@ -2637,7 +2497,7 @@ func (*QueryProjectTagsResponse) ProtoMessage() {} func (x *QueryProjectTagsResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2661,18 +2521,16 @@ func (x *QueryProjectTagsResponse) GetProjectTags() *ListOfString { // Request message for archivedProjects operation. type QueryArchivedProjectsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryArchivedProjectsRequest) Reset() { *x = QueryArchivedProjectsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryArchivedProjectsRequest) String() string { @@ -2683,7 +2541,7 @@ func (*QueryArchivedProjectsRequest) ProtoMessage() {} func (x *QueryArchivedProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2700,20 +2558,17 @@ func (*QueryArchivedProjectsRequest) Descriptor() ([]byte, []int) { // Response message for archivedProjects operation. type QueryArchivedProjectsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ArchivedProjects []*Project `protobuf:"bytes,1,rep,name=archived_projects,json=archivedProjects,proto3" json:"archived_projects,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ArchivedProjects []*Project `protobuf:"bytes,1,rep,name=archived_projects,json=archivedProjects,proto3" json:"archived_projects,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryArchivedProjectsResponse) Reset() { *x = QueryArchivedProjectsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryArchivedProjectsResponse) String() string { @@ -2724,7 +2579,7 @@ func (*QueryArchivedProjectsResponse) ProtoMessage() {} func (x *QueryArchivedProjectsResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2748,20 +2603,17 @@ func (x *QueryArchivedProjectsResponse) GetArchivedProjects() []*Project { // Request message for tasksByPriority operation. type QueryTasksByPriorityRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryTasksByPriorityRequest) Reset() { *x = QueryTasksByPriorityRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryTasksByPriorityRequest) String() string { @@ -2772,7 +2624,7 @@ func (*QueryTasksByPriorityRequest) ProtoMessage() {} func (x *QueryTasksByPriorityRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2796,20 +2648,17 @@ func (x *QueryTasksByPriorityRequest) GetProjectId() string { // Response message for tasksByPriority operation. type QueryTasksByPriorityResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TasksByPriority *ListOfListOfTask `protobuf:"bytes,1,opt,name=tasks_by_priority,json=tasksByPriority,proto3" json:"tasks_by_priority,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TasksByPriority *ListOfListOfTask `protobuf:"bytes,1,opt,name=tasks_by_priority,json=tasksByPriority,proto3" json:"tasks_by_priority,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryTasksByPriorityResponse) Reset() { *x = QueryTasksByPriorityResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryTasksByPriorityResponse) String() string { @@ -2820,7 +2669,7 @@ func (*QueryTasksByPriorityResponse) ProtoMessage() {} func (x *QueryTasksByPriorityResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2844,20 +2693,17 @@ func (x *QueryTasksByPriorityResponse) GetTasksByPriority() *ListOfListOfTask { // Request message for resourceMatrix operation. type QueryResourceMatrixRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryResourceMatrixRequest) Reset() { *x = QueryResourceMatrixRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryResourceMatrixRequest) String() string { @@ -2868,7 +2714,7 @@ func (*QueryResourceMatrixRequest) ProtoMessage() {} func (x *QueryResourceMatrixRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2892,20 +2738,17 @@ func (x *QueryResourceMatrixRequest) GetProjectId() string { // Response message for resourceMatrix operation. type QueryResourceMatrixResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ResourceMatrix *ListOfListOfProjectResource `protobuf:"bytes,1,opt,name=resource_matrix,json=resourceMatrix,proto3" json:"resource_matrix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryResourceMatrixResponse) Reset() { *x = QueryResourceMatrixResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryResourceMatrixResponse) String() string { @@ -2916,7 +2759,7 @@ func (*QueryResourceMatrixResponse) ProtoMessage() {} func (x *QueryResourceMatrixResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2940,18 +2783,16 @@ func (x *QueryResourceMatrixResponse) GetResourceMatrix() *ListOfListOfProjectRe // Request message for killService operation. type QueryKillServiceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryKillServiceRequest) Reset() { *x = QueryKillServiceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryKillServiceRequest) String() string { @@ -2962,7 +2803,7 @@ func (*QueryKillServiceRequest) ProtoMessage() {} func (x *QueryKillServiceRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2979,20 +2820,17 @@ func (*QueryKillServiceRequest) Descriptor() ([]byte, []int) { // Response message for killService operation. type QueryKillServiceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + KillService bool `protobuf:"varint,1,opt,name=kill_service,json=killService,proto3" json:"kill_service,omitempty"` unknownFields protoimpl.UnknownFields - - KillService bool `protobuf:"varint,1,opt,name=kill_service,json=killService,proto3" json:"kill_service,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryKillServiceResponse) Reset() { *x = QueryKillServiceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryKillServiceResponse) String() string { @@ -3003,7 +2841,7 @@ func (*QueryKillServiceResponse) ProtoMessage() {} func (x *QueryKillServiceResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3027,18 +2865,16 @@ func (x *QueryKillServiceResponse) GetKillService() bool { // Request message for panic operation. type QueryPanicRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryPanicRequest) Reset() { *x = QueryPanicRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryPanicRequest) String() string { @@ -3049,7 +2885,7 @@ func (*QueryPanicRequest) ProtoMessage() {} func (x *QueryPanicRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3066,20 +2902,17 @@ func (*QueryPanicRequest) Descriptor() ([]byte, []int) { // Response message for panic operation. type QueryPanicResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Panic bool `protobuf:"varint,1,opt,name=panic,proto3" json:"panic,omitempty"` unknownFields protoimpl.UnknownFields - - Panic bool `protobuf:"varint,1,opt,name=panic,proto3" json:"panic,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryPanicResponse) Reset() { *x = QueryPanicResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryPanicResponse) String() string { @@ -3090,7 +2923,7 @@ func (*QueryPanicResponse) ProtoMessage() {} func (x *QueryPanicResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3114,20 +2947,17 @@ func (x *QueryPanicResponse) GetPanic() bool { // Request message for nodesById operation. type QueryNodesByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryNodesByIdRequest) Reset() { *x = QueryNodesByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryNodesByIdRequest) String() string { @@ -3138,7 +2968,7 @@ func (*QueryNodesByIdRequest) ProtoMessage() {} func (x *QueryNodesByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3162,20 +2992,17 @@ func (x *QueryNodesByIdRequest) GetId() string { // Response message for nodesById operation. type QueryNodesByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NodesById []*Node `protobuf:"bytes,1,rep,name=nodes_by_id,json=nodesById,proto3" json:"nodes_by_id,omitempty"` unknownFields protoimpl.UnknownFields - - NodesById []*Node `protobuf:"bytes,1,rep,name=nodes_by_id,json=nodesById,proto3" json:"nodes_by_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryNodesByIdResponse) Reset() { *x = QueryNodesByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryNodesByIdResponse) String() string { @@ -3186,7 +3013,7 @@ func (*QueryNodesByIdResponse) ProtoMessage() {} func (x *QueryNodesByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3210,20 +3037,17 @@ func (x *QueryNodesByIdResponse) GetNodesById() []*Node { // Request message for addProject operation. type MutationAddProjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Project *ProjectInput `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` unknownFields protoimpl.UnknownFields - - Project *ProjectInput `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddProjectRequest) Reset() { *x = MutationAddProjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddProjectRequest) String() string { @@ -3234,7 +3058,7 @@ func (*MutationAddProjectRequest) ProtoMessage() {} func (x *MutationAddProjectRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3258,20 +3082,17 @@ func (x *MutationAddProjectRequest) GetProject() *ProjectInput { // Response message for addProject operation. type MutationAddProjectResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AddProject *Project `protobuf:"bytes,1,opt,name=add_project,json=addProject,proto3" json:"add_project,omitempty"` unknownFields protoimpl.UnknownFields - - AddProject *Project `protobuf:"bytes,1,opt,name=add_project,json=addProject,proto3" json:"add_project,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddProjectResponse) Reset() { *x = MutationAddProjectResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddProjectResponse) String() string { @@ -3282,7 +3103,7 @@ func (*MutationAddProjectResponse) ProtoMessage() {} func (x *MutationAddProjectResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3306,20 +3127,17 @@ func (x *MutationAddProjectResponse) GetAddProject() *Project { // Request message for addMilestone operation. type MutationAddMilestoneRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Milestone *MilestoneInput `protobuf:"bytes,1,opt,name=milestone,proto3" json:"milestone,omitempty"` unknownFields protoimpl.UnknownFields - - Milestone *MilestoneInput `protobuf:"bytes,1,opt,name=milestone,proto3" json:"milestone,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddMilestoneRequest) Reset() { *x = MutationAddMilestoneRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddMilestoneRequest) String() string { @@ -3330,7 +3148,7 @@ func (*MutationAddMilestoneRequest) ProtoMessage() {} func (x *MutationAddMilestoneRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3354,20 +3172,17 @@ func (x *MutationAddMilestoneRequest) GetMilestone() *MilestoneInput { // Response message for addMilestone operation. type MutationAddMilestoneResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AddMilestone *Milestone `protobuf:"bytes,1,opt,name=add_milestone,json=addMilestone,proto3" json:"add_milestone,omitempty"` unknownFields protoimpl.UnknownFields - - AddMilestone *Milestone `protobuf:"bytes,1,opt,name=add_milestone,json=addMilestone,proto3" json:"add_milestone,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddMilestoneResponse) Reset() { *x = MutationAddMilestoneResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddMilestoneResponse) String() string { @@ -3378,7 +3193,7 @@ func (*MutationAddMilestoneResponse) ProtoMessage() {} func (x *MutationAddMilestoneResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3402,20 +3217,17 @@ func (x *MutationAddMilestoneResponse) GetAddMilestone() *Milestone { // Request message for addTask operation. type MutationAddTaskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Task *TaskInput `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` unknownFields protoimpl.UnknownFields - - Task *TaskInput `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddTaskRequest) Reset() { *x = MutationAddTaskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddTaskRequest) String() string { @@ -3426,7 +3238,7 @@ func (*MutationAddTaskRequest) ProtoMessage() {} func (x *MutationAddTaskRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3450,20 +3262,17 @@ func (x *MutationAddTaskRequest) GetTask() *TaskInput { // Response message for addTask operation. type MutationAddTaskResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AddTask *Task `protobuf:"bytes,1,opt,name=add_task,json=addTask,proto3" json:"add_task,omitempty"` unknownFields protoimpl.UnknownFields - - AddTask *Task `protobuf:"bytes,1,opt,name=add_task,json=addTask,proto3" json:"add_task,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationAddTaskResponse) Reset() { *x = MutationAddTaskResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationAddTaskResponse) String() string { @@ -3474,7 +3283,7 @@ func (*MutationAddTaskResponse) ProtoMessage() {} func (x *MutationAddTaskResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3498,21 +3307,18 @@ func (x *MutationAddTaskResponse) GetAddTask() *Task { // Request message for updateProjectStatus operation. type MutationUpdateProjectStatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MutationUpdateProjectStatusRequest) Reset() { *x = MutationUpdateProjectStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationUpdateProjectStatusRequest) String() string { @@ -3523,7 +3329,7 @@ func (*MutationUpdateProjectStatusRequest) ProtoMessage() {} func (x *MutationUpdateProjectStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3554,20 +3360,17 @@ func (x *MutationUpdateProjectStatusRequest) GetStatus() ProjectStatus { // Response message for updateProjectStatus operation. type MutationUpdateProjectStatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UpdateProjectStatus *ProjectUpdate `protobuf:"bytes,1,opt,name=update_project_status,json=updateProjectStatus,proto3" json:"update_project_status,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + UpdateProjectStatus *ProjectUpdate `protobuf:"bytes,1,opt,name=update_project_status,json=updateProjectStatus,proto3" json:"update_project_status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MutationUpdateProjectStatusResponse) Reset() { *x = MutationUpdateProjectStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MutationUpdateProjectStatusResponse) String() string { @@ -3578,7 +3381,7 @@ func (*MutationUpdateProjectStatusResponse) ProtoMessage() {} func (x *MutationUpdateProjectStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3601,20 +3404,17 @@ func (x *MutationUpdateProjectStatusResponse) GetUpdateProjectStatus() *ProjectU } type ResolveProjectSubProjectsArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IncludeArchived *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + IncludeArchived *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectSubProjectsArgs) Reset() { *x = ResolveProjectSubProjectsArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectSubProjectsArgs) String() string { @@ -3625,7 +3425,7 @@ func (*ResolveProjectSubProjectsArgs) ProtoMessage() {} func (x *ResolveProjectSubProjectsArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3648,22 +3448,19 @@ func (x *ResolveProjectSubProjectsArgs) GetIncludeArchived() *wrapperspb.BoolVal } type ResolveProjectSubProjectsContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status ProjectStatus `protobuf:"varint,3,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Status ProjectStatus `protobuf:"varint,3,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectSubProjectsContext) Reset() { *x = ResolveProjectSubProjectsContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectSubProjectsContext) String() string { @@ -3674,7 +3471,7 @@ func (*ResolveProjectSubProjectsContext) ProtoMessage() {} func (x *ResolveProjectSubProjectsContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3711,23 +3508,20 @@ func (x *ResolveProjectSubProjectsContext) GetStatus() ProjectStatus { } type ResolveProjectSubProjectsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field subProjects of type Project. Context []*ResolveProjectSubProjectsContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field subProjects of type Project. - FieldArgs *ResolveProjectSubProjectsArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectSubProjectsArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectSubProjectsRequest) Reset() { *x = ResolveProjectSubProjectsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectSubProjectsRequest) String() string { @@ -3738,7 +3532,7 @@ func (*ResolveProjectSubProjectsRequest) ProtoMessage() {} func (x *ResolveProjectSubProjectsRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3768,20 +3562,17 @@ func (x *ResolveProjectSubProjectsRequest) GetFieldArgs() *ResolveProjectSubProj } type ResolveProjectSubProjectsResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SubProjects []*Project `protobuf:"bytes,1,rep,name=sub_projects,json=subProjects,proto3" json:"sub_projects,omitempty"` unknownFields protoimpl.UnknownFields - - SubProjects []*Project `protobuf:"bytes,1,rep,name=sub_projects,json=subProjects,proto3" json:"sub_projects,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectSubProjectsResult) Reset() { *x = ResolveProjectSubProjectsResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectSubProjectsResult) String() string { @@ -3792,7 +3583,7 @@ func (*ResolveProjectSubProjectsResult) ProtoMessage() {} func (x *ResolveProjectSubProjectsResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3815,20 +3606,17 @@ func (x *ResolveProjectSubProjectsResult) GetSubProjects() []*Project { } type ResolveProjectSubProjectsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectSubProjectsResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectSubProjectsResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectSubProjectsResponse) Reset() { *x = ResolveProjectSubProjectsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectSubProjectsResponse) String() string { @@ -3839,7 +3627,7 @@ func (*ResolveProjectSubProjectsResponse) ProtoMessage() {} func (x *ResolveProjectSubProjectsResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3862,22 +3650,19 @@ func (x *ResolveProjectSubProjectsResponse) GetResult() []*ResolveProjectSubProj } type ResolveProjectFilteredTasksArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status TaskStatus `protobuf:"varint,1,opt,name=status,proto3,enum=service.TaskStatus" json:"status,omitempty"` + Priority TaskPriority `protobuf:"varint,2,opt,name=priority,proto3,enum=service.TaskPriority" json:"priority,omitempty"` + Limit *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"` unknownFields protoimpl.UnknownFields - - Status TaskStatus `protobuf:"varint,1,opt,name=status,proto3,enum=service.TaskStatus" json:"status,omitempty"` - Priority TaskPriority `protobuf:"varint,2,opt,name=priority,proto3,enum=service.TaskPriority" json:"priority,omitempty"` - Limit *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectFilteredTasksArgs) Reset() { *x = ResolveProjectFilteredTasksArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectFilteredTasksArgs) String() string { @@ -3888,7 +3673,7 @@ func (*ResolveProjectFilteredTasksArgs) ProtoMessage() {} func (x *ResolveProjectFilteredTasksArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3925,20 +3710,17 @@ func (x *ResolveProjectFilteredTasksArgs) GetLimit() *wrapperspb.Int32Value { } type ResolveProjectFilteredTasksContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectFilteredTasksContext) Reset() { *x = ResolveProjectFilteredTasksContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectFilteredTasksContext) String() string { @@ -3949,7 +3731,7 @@ func (*ResolveProjectFilteredTasksContext) ProtoMessage() {} func (x *ResolveProjectFilteredTasksContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3972,23 +3754,20 @@ func (x *ResolveProjectFilteredTasksContext) GetId() string { } type ResolveProjectFilteredTasksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field filteredTasks of type Project. Context []*ResolveProjectFilteredTasksContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field filteredTasks of type Project. - FieldArgs *ResolveProjectFilteredTasksArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectFilteredTasksArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectFilteredTasksRequest) Reset() { *x = ResolveProjectFilteredTasksRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectFilteredTasksRequest) String() string { @@ -3999,7 +3778,7 @@ func (*ResolveProjectFilteredTasksRequest) ProtoMessage() {} func (x *ResolveProjectFilteredTasksRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4029,20 +3808,17 @@ func (x *ResolveProjectFilteredTasksRequest) GetFieldArgs() *ResolveProjectFilte } type ResolveProjectFilteredTasksResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FilteredTasks []*Task `protobuf:"bytes,1,rep,name=filtered_tasks,json=filteredTasks,proto3" json:"filtered_tasks,omitempty"` unknownFields protoimpl.UnknownFields - - FilteredTasks []*Task `protobuf:"bytes,1,rep,name=filtered_tasks,json=filteredTasks,proto3" json:"filtered_tasks,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectFilteredTasksResult) Reset() { *x = ResolveProjectFilteredTasksResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectFilteredTasksResult) String() string { @@ -4053,7 +3829,7 @@ func (*ResolveProjectFilteredTasksResult) ProtoMessage() {} func (x *ResolveProjectFilteredTasksResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4076,20 +3852,17 @@ func (x *ResolveProjectFilteredTasksResult) GetFilteredTasks() []*Task { } type ResolveProjectFilteredTasksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectFilteredTasksResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectFilteredTasksResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectFilteredTasksResponse) Reset() { *x = ResolveProjectFilteredTasksResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectFilteredTasksResponse) String() string { @@ -4100,7 +3873,7 @@ func (*ResolveProjectFilteredTasksResponse) ProtoMessage() {} func (x *ResolveProjectFilteredTasksResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4123,20 +3896,17 @@ func (x *ResolveProjectFilteredTasksResponse) GetResult() []*ResolveProjectFilte } type ResolveProjectCompletionRateArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IncludeSubtasks *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_subtasks,json=includeSubtasks,proto3" json:"include_subtasks,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + IncludeSubtasks *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_subtasks,json=includeSubtasks,proto3" json:"include_subtasks,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCompletionRateArgs) Reset() { *x = ResolveProjectCompletionRateArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCompletionRateArgs) String() string { @@ -4147,7 +3917,7 @@ func (*ResolveProjectCompletionRateArgs) ProtoMessage() {} func (x *ResolveProjectCompletionRateArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4170,23 +3940,20 @@ func (x *ResolveProjectCompletionRateArgs) GetIncludeSubtasks() *wrapperspb.Bool } type ResolveProjectCompletionRateContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + StartDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + EndDate *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + Status ProjectStatus `protobuf:"varint,4,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - StartDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` - EndDate *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - Status ProjectStatus `protobuf:"varint,4,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCompletionRateContext) Reset() { *x = ResolveProjectCompletionRateContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCompletionRateContext) String() string { @@ -4197,7 +3964,7 @@ func (*ResolveProjectCompletionRateContext) ProtoMessage() {} func (x *ResolveProjectCompletionRateContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4241,23 +4008,20 @@ func (x *ResolveProjectCompletionRateContext) GetStatus() ProjectStatus { } type ResolveProjectCompletionRateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field completionRate of type Project. Context []*ResolveProjectCompletionRateContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field completionRate of type Project. - FieldArgs *ResolveProjectCompletionRateArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectCompletionRateArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCompletionRateRequest) Reset() { *x = ResolveProjectCompletionRateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCompletionRateRequest) String() string { @@ -4268,7 +4032,7 @@ func (*ResolveProjectCompletionRateRequest) ProtoMessage() {} func (x *ResolveProjectCompletionRateRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4298,20 +4062,17 @@ func (x *ResolveProjectCompletionRateRequest) GetFieldArgs() *ResolveProjectComp } type ResolveProjectCompletionRateResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CompletionRate float64 `protobuf:"fixed64,1,opt,name=completion_rate,json=completionRate,proto3" json:"completion_rate,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CompletionRate float64 `protobuf:"fixed64,1,opt,name=completion_rate,json=completionRate,proto3" json:"completion_rate,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCompletionRateResult) Reset() { *x = ResolveProjectCompletionRateResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCompletionRateResult) String() string { @@ -4322,7 +4083,7 @@ func (*ResolveProjectCompletionRateResult) ProtoMessage() {} func (x *ResolveProjectCompletionRateResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4345,20 +4106,17 @@ func (x *ResolveProjectCompletionRateResult) GetCompletionRate() float64 { } type ResolveProjectCompletionRateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectCompletionRateResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectCompletionRateResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCompletionRateResponse) Reset() { *x = ResolveProjectCompletionRateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCompletionRateResponse) String() string { @@ -4369,7 +4127,7 @@ func (*ResolveProjectCompletionRateResponse) ProtoMessage() {} func (x *ResolveProjectCompletionRateResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4392,20 +4150,17 @@ func (x *ResolveProjectCompletionRateResponse) GetResult() []*ResolveProjectComp } type ResolveProjectEstimatedDaysRemainingArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FromDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=from_date,json=fromDate,proto3" json:"from_date,omitempty"` unknownFields protoimpl.UnknownFields - - FromDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=from_date,json=fromDate,proto3" json:"from_date,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectEstimatedDaysRemainingArgs) Reset() { *x = ResolveProjectEstimatedDaysRemainingArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectEstimatedDaysRemainingArgs) String() string { @@ -4416,7 +4171,7 @@ func (*ResolveProjectEstimatedDaysRemainingArgs) ProtoMessage() {} func (x *ResolveProjectEstimatedDaysRemainingArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4439,22 +4194,19 @@ func (x *ResolveProjectEstimatedDaysRemainingArgs) GetFromDate() *wrapperspb.Str } type ResolveProjectEstimatedDaysRemainingContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + EndDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + Status ProjectStatus `protobuf:"varint,3,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EndDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - Status ProjectStatus `protobuf:"varint,3,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectEstimatedDaysRemainingContext) Reset() { *x = ResolveProjectEstimatedDaysRemainingContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectEstimatedDaysRemainingContext) String() string { @@ -4465,7 +4217,7 @@ func (*ResolveProjectEstimatedDaysRemainingContext) ProtoMessage() {} func (x *ResolveProjectEstimatedDaysRemainingContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[84] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4502,23 +4254,20 @@ func (x *ResolveProjectEstimatedDaysRemainingContext) GetStatus() ProjectStatus } type ResolveProjectEstimatedDaysRemainingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field estimatedDaysRemaining of type Project. Context []*ResolveProjectEstimatedDaysRemainingContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field estimatedDaysRemaining of type Project. - FieldArgs *ResolveProjectEstimatedDaysRemainingArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectEstimatedDaysRemainingArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectEstimatedDaysRemainingRequest) Reset() { *x = ResolveProjectEstimatedDaysRemainingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectEstimatedDaysRemainingRequest) String() string { @@ -4529,7 +4278,7 @@ func (*ResolveProjectEstimatedDaysRemainingRequest) ProtoMessage() {} func (x *ResolveProjectEstimatedDaysRemainingRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[85] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4559,20 +4308,17 @@ func (x *ResolveProjectEstimatedDaysRemainingRequest) GetFieldArgs() *ResolvePro } type ResolveProjectEstimatedDaysRemainingResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` EstimatedDaysRemaining *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=estimated_days_remaining,json=estimatedDaysRemaining,proto3" json:"estimated_days_remaining,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectEstimatedDaysRemainingResult) Reset() { *x = ResolveProjectEstimatedDaysRemainingResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectEstimatedDaysRemainingResult) String() string { @@ -4583,7 +4329,7 @@ func (*ResolveProjectEstimatedDaysRemainingResult) ProtoMessage() {} func (x *ResolveProjectEstimatedDaysRemainingResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4606,20 +4352,17 @@ func (x *ResolveProjectEstimatedDaysRemainingResult) GetEstimatedDaysRemaining() } type ResolveProjectEstimatedDaysRemainingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectEstimatedDaysRemainingResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectEstimatedDaysRemainingResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectEstimatedDaysRemainingResponse) Reset() { *x = ResolveProjectEstimatedDaysRemainingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectEstimatedDaysRemainingResponse) String() string { @@ -4630,7 +4373,7 @@ func (*ResolveProjectEstimatedDaysRemainingResponse) ProtoMessage() {} func (x *ResolveProjectEstimatedDaysRemainingResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4653,20 +4396,17 @@ func (x *ResolveProjectEstimatedDaysRemainingResponse) GetResult() []*ResolvePro } type ResolveProjectCriticalDeadlineArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WithinDays *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=within_days,json=withinDays,proto3" json:"within_days,omitempty"` unknownFields protoimpl.UnknownFields - - WithinDays *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=within_days,json=withinDays,proto3" json:"within_days,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCriticalDeadlineArgs) Reset() { *x = ResolveProjectCriticalDeadlineArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCriticalDeadlineArgs) String() string { @@ -4677,7 +4417,7 @@ func (*ResolveProjectCriticalDeadlineArgs) ProtoMessage() {} func (x *ResolveProjectCriticalDeadlineArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4700,22 +4440,19 @@ func (x *ResolveProjectCriticalDeadlineArgs) GetWithinDays() *wrapperspb.Int32Va } type ResolveProjectCriticalDeadlineContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + Milestones []*Milestone `protobuf:"bytes,3,rep,name=milestones,proto3" json:"milestones,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` - Milestones []*Milestone `protobuf:"bytes,3,rep,name=milestones,proto3" json:"milestones,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCriticalDeadlineContext) Reset() { *x = ResolveProjectCriticalDeadlineContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCriticalDeadlineContext) String() string { @@ -4726,7 +4463,7 @@ func (*ResolveProjectCriticalDeadlineContext) ProtoMessage() {} func (x *ResolveProjectCriticalDeadlineContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4763,23 +4500,20 @@ func (x *ResolveProjectCriticalDeadlineContext) GetMilestones() []*Milestone { } type ResolveProjectCriticalDeadlineRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field criticalDeadline of type Project. Context []*ResolveProjectCriticalDeadlineContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field criticalDeadline of type Project. - FieldArgs *ResolveProjectCriticalDeadlineArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectCriticalDeadlineArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCriticalDeadlineRequest) Reset() { *x = ResolveProjectCriticalDeadlineRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCriticalDeadlineRequest) String() string { @@ -4790,7 +4524,7 @@ func (*ResolveProjectCriticalDeadlineRequest) ProtoMessage() {} func (x *ResolveProjectCriticalDeadlineRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4820,20 +4554,17 @@ func (x *ResolveProjectCriticalDeadlineRequest) GetFieldArgs() *ResolveProjectCr } type ResolveProjectCriticalDeadlineResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CriticalDeadline *Timestamped `protobuf:"bytes,1,opt,name=critical_deadline,json=criticalDeadline,proto3" json:"critical_deadline,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CriticalDeadline *Timestamped `protobuf:"bytes,1,opt,name=critical_deadline,json=criticalDeadline,proto3" json:"critical_deadline,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCriticalDeadlineResult) Reset() { *x = ResolveProjectCriticalDeadlineResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCriticalDeadlineResult) String() string { @@ -4844,7 +4575,7 @@ func (*ResolveProjectCriticalDeadlineResult) ProtoMessage() {} func (x *ResolveProjectCriticalDeadlineResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4867,20 +4598,17 @@ func (x *ResolveProjectCriticalDeadlineResult) GetCriticalDeadline() *Timestampe } type ResolveProjectCriticalDeadlineResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectCriticalDeadlineResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectCriticalDeadlineResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectCriticalDeadlineResponse) Reset() { *x = ResolveProjectCriticalDeadlineResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectCriticalDeadlineResponse) String() string { @@ -4891,7 +4619,7 @@ func (*ResolveProjectCriticalDeadlineResponse) ProtoMessage() {} func (x *ResolveProjectCriticalDeadlineResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4914,20 +4642,17 @@ func (x *ResolveProjectCriticalDeadlineResponse) GetResult() []*ResolveProjectCr } type ResolveProjectTopPriorityItemArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Category *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` unknownFields protoimpl.UnknownFields - - Category *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=category,proto3" json:"category,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTopPriorityItemArgs) Reset() { *x = ResolveProjectTopPriorityItemArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTopPriorityItemArgs) String() string { @@ -4938,7 +4663,7 @@ func (*ResolveProjectTopPriorityItemArgs) ProtoMessage() {} func (x *ResolveProjectTopPriorityItemArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4961,21 +4686,18 @@ func (x *ResolveProjectTopPriorityItemArgs) GetCategory() *wrapperspb.StringValu } type ResolveProjectTopPriorityItemContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Status ProjectStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTopPriorityItemContext) Reset() { *x = ResolveProjectTopPriorityItemContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTopPriorityItemContext) String() string { @@ -4986,7 +4708,7 @@ func (*ResolveProjectTopPriorityItemContext) ProtoMessage() {} func (x *ResolveProjectTopPriorityItemContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5016,23 +4738,20 @@ func (x *ResolveProjectTopPriorityItemContext) GetStatus() ProjectStatus { } type ResolveProjectTopPriorityItemRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field topPriorityItem of type Project. Context []*ResolveProjectTopPriorityItemContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field topPriorityItem of type Project. - FieldArgs *ResolveProjectTopPriorityItemArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveProjectTopPriorityItemArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTopPriorityItemRequest) Reset() { *x = ResolveProjectTopPriorityItemRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[95] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTopPriorityItemRequest) String() string { @@ -5043,7 +4762,7 @@ func (*ResolveProjectTopPriorityItemRequest) ProtoMessage() {} func (x *ResolveProjectTopPriorityItemRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[95] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5073,20 +4792,17 @@ func (x *ResolveProjectTopPriorityItemRequest) GetFieldArgs() *ResolveProjectTop } type ResolveProjectTopPriorityItemResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TopPriorityItem *ProjectSearchResult `protobuf:"bytes,1,opt,name=top_priority_item,json=topPriorityItem,proto3" json:"top_priority_item,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TopPriorityItem *ProjectSearchResult `protobuf:"bytes,1,opt,name=top_priority_item,json=topPriorityItem,proto3" json:"top_priority_item,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTopPriorityItemResult) Reset() { *x = ResolveProjectTopPriorityItemResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTopPriorityItemResult) String() string { @@ -5097,7 +4813,7 @@ func (*ResolveProjectTopPriorityItemResult) ProtoMessage() {} func (x *ResolveProjectTopPriorityItemResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5120,20 +4836,17 @@ func (x *ResolveProjectTopPriorityItemResult) GetTopPriorityItem() *ProjectSearc } type ResolveProjectTopPriorityItemResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectTopPriorityItemResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectTopPriorityItemResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTopPriorityItemResponse) Reset() { *x = ResolveProjectTopPriorityItemResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTopPriorityItemResponse) String() string { @@ -5144,7 +4857,7 @@ func (*ResolveProjectTopPriorityItemResponse) ProtoMessage() {} func (x *ResolveProjectTopPriorityItemResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5167,20 +4880,17 @@ func (x *ResolveProjectTopPriorityItemResponse) GetResult() []*ResolveProjectTop } type ResolveProjectTaskCountContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTaskCountContext) Reset() { *x = ResolveProjectTaskCountContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTaskCountContext) String() string { @@ -5191,7 +4901,7 @@ func (*ResolveProjectTaskCountContext) ProtoMessage() {} func (x *ResolveProjectTaskCountContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5214,21 +4924,18 @@ func (x *ResolveProjectTaskCountContext) GetId() string { } type ResolveProjectTaskCountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field taskCount of type Project. - Context []*ResolveProjectTaskCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + Context []*ResolveProjectTaskCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTaskCountRequest) Reset() { *x = ResolveProjectTaskCountRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTaskCountRequest) String() string { @@ -5239,7 +4946,7 @@ func (*ResolveProjectTaskCountRequest) ProtoMessage() {} func (x *ResolveProjectTaskCountRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5262,20 +4969,17 @@ func (x *ResolveProjectTaskCountRequest) GetContext() []*ResolveProjectTaskCount } type ResolveProjectTaskCountResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TaskCount int32 `protobuf:"varint,1,opt,name=task_count,json=taskCount,proto3" json:"task_count,omitempty"` unknownFields protoimpl.UnknownFields - - TaskCount int32 `protobuf:"varint,1,opt,name=task_count,json=taskCount,proto3" json:"task_count,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTaskCountResult) Reset() { *x = ResolveProjectTaskCountResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTaskCountResult) String() string { @@ -5286,7 +4990,7 @@ func (*ResolveProjectTaskCountResult) ProtoMessage() {} func (x *ResolveProjectTaskCountResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5309,20 +5013,17 @@ func (x *ResolveProjectTaskCountResult) GetTaskCount() int32 { } type ResolveProjectTaskCountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectTaskCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectTaskCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectTaskCountResponse) Reset() { *x = ResolveProjectTaskCountResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectTaskCountResponse) String() string { @@ -5333,7 +5034,7 @@ func (*ResolveProjectTaskCountResponse) ProtoMessage() {} func (x *ResolveProjectTaskCountResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5356,20 +5057,17 @@ func (x *ResolveProjectTaskCountResponse) GetResult() []*ResolveProjectTaskCount } type ResolveProjectActiveMilestoneCountContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectActiveMilestoneCountContext) Reset() { *x = ResolveProjectActiveMilestoneCountContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[102] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectActiveMilestoneCountContext) String() string { @@ -5380,7 +5078,7 @@ func (*ResolveProjectActiveMilestoneCountContext) ProtoMessage() {} func (x *ResolveProjectActiveMilestoneCountContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[102] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5403,21 +5101,18 @@ func (x *ResolveProjectActiveMilestoneCountContext) GetId() string { } type ResolveProjectActiveMilestoneCountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field activeMilestoneCount of type Project. - Context []*ResolveProjectActiveMilestoneCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + Context []*ResolveProjectActiveMilestoneCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectActiveMilestoneCountRequest) Reset() { *x = ResolveProjectActiveMilestoneCountRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[103] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectActiveMilestoneCountRequest) String() string { @@ -5428,7 +5123,7 @@ func (*ResolveProjectActiveMilestoneCountRequest) ProtoMessage() {} func (x *ResolveProjectActiveMilestoneCountRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[103] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5451,20 +5146,17 @@ func (x *ResolveProjectActiveMilestoneCountRequest) GetContext() []*ResolveProje } type ResolveProjectActiveMilestoneCountResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ActiveMilestoneCount int32 `protobuf:"varint,1,opt,name=active_milestone_count,json=activeMilestoneCount,proto3" json:"active_milestone_count,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ActiveMilestoneCount int32 `protobuf:"varint,1,opt,name=active_milestone_count,json=activeMilestoneCount,proto3" json:"active_milestone_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveProjectActiveMilestoneCountResult) Reset() { *x = ResolveProjectActiveMilestoneCountResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectActiveMilestoneCountResult) String() string { @@ -5475,7 +5167,7 @@ func (*ResolveProjectActiveMilestoneCountResult) ProtoMessage() {} func (x *ResolveProjectActiveMilestoneCountResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5498,20 +5190,17 @@ func (x *ResolveProjectActiveMilestoneCountResult) GetActiveMilestoneCount() int } type ResolveProjectActiveMilestoneCountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveProjectActiveMilestoneCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveProjectActiveMilestoneCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveProjectActiveMilestoneCountResponse) Reset() { *x = ResolveProjectActiveMilestoneCountResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveProjectActiveMilestoneCountResponse) String() string { @@ -5522,7 +5211,7 @@ func (*ResolveProjectActiveMilestoneCountResponse) ProtoMessage() {} func (x *ResolveProjectActiveMilestoneCountResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5545,20 +5234,17 @@ func (x *ResolveProjectActiveMilestoneCountResponse) GetResult() []*ResolveProje } type ResolveMilestoneIsAtRiskArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Threshold *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=threshold,proto3" json:"threshold,omitempty"` unknownFields protoimpl.UnknownFields - - Threshold *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=threshold,proto3" json:"threshold,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneIsAtRiskArgs) Reset() { *x = ResolveMilestoneIsAtRiskArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneIsAtRiskArgs) String() string { @@ -5569,7 +5255,7 @@ func (*ResolveMilestoneIsAtRiskArgs) ProtoMessage() {} func (x *ResolveMilestoneIsAtRiskArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5592,23 +5278,20 @@ func (x *ResolveMilestoneIsAtRiskArgs) GetThreshold() *wrapperspb.DoubleValue { } type ResolveMilestoneIsAtRiskContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` EndDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` Status MilestoneStatus `protobuf:"varint,3,opt,name=status,proto3,enum=service.MilestoneStatus" json:"status,omitempty"` CompletionPercentage *wrapperspb.DoubleValue `protobuf:"bytes,4,opt,name=completion_percentage,json=completionPercentage,proto3" json:"completion_percentage,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneIsAtRiskContext) Reset() { *x = ResolveMilestoneIsAtRiskContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneIsAtRiskContext) String() string { @@ -5619,7 +5302,7 @@ func (*ResolveMilestoneIsAtRiskContext) ProtoMessage() {} func (x *ResolveMilestoneIsAtRiskContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5663,23 +5346,20 @@ func (x *ResolveMilestoneIsAtRiskContext) GetCompletionPercentage() *wrapperspb. } type ResolveMilestoneIsAtRiskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field isAtRisk of type Milestone. Context []*ResolveMilestoneIsAtRiskContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field isAtRisk of type Milestone. - FieldArgs *ResolveMilestoneIsAtRiskArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveMilestoneIsAtRiskArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneIsAtRiskRequest) Reset() { *x = ResolveMilestoneIsAtRiskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneIsAtRiskRequest) String() string { @@ -5690,7 +5370,7 @@ func (*ResolveMilestoneIsAtRiskRequest) ProtoMessage() {} func (x *ResolveMilestoneIsAtRiskRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5720,20 +5400,17 @@ func (x *ResolveMilestoneIsAtRiskRequest) GetFieldArgs() *ResolveMilestoneIsAtRi } type ResolveMilestoneIsAtRiskResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + IsAtRisk bool `protobuf:"varint,1,opt,name=is_at_risk,json=isAtRisk,proto3" json:"is_at_risk,omitempty"` unknownFields protoimpl.UnknownFields - - IsAtRisk bool `protobuf:"varint,1,opt,name=is_at_risk,json=isAtRisk,proto3" json:"is_at_risk,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneIsAtRiskResult) Reset() { *x = ResolveMilestoneIsAtRiskResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneIsAtRiskResult) String() string { @@ -5744,7 +5421,7 @@ func (*ResolveMilestoneIsAtRiskResult) ProtoMessage() {} func (x *ResolveMilestoneIsAtRiskResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5767,20 +5444,17 @@ func (x *ResolveMilestoneIsAtRiskResult) GetIsAtRisk() bool { } type ResolveMilestoneIsAtRiskResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveMilestoneIsAtRiskResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveMilestoneIsAtRiskResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneIsAtRiskResponse) Reset() { *x = ResolveMilestoneIsAtRiskResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneIsAtRiskResponse) String() string { @@ -5791,7 +5465,7 @@ func (*ResolveMilestoneIsAtRiskResponse) ProtoMessage() {} func (x *ResolveMilestoneIsAtRiskResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[110] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5814,20 +5488,17 @@ func (x *ResolveMilestoneIsAtRiskResponse) GetResult() []*ResolveMilestoneIsAtRi } type ResolveMilestoneDaysUntilDueArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FromDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=from_date,json=fromDate,proto3" json:"from_date,omitempty"` unknownFields protoimpl.UnknownFields - - FromDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=from_date,json=fromDate,proto3" json:"from_date,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneDaysUntilDueArgs) Reset() { *x = ResolveMilestoneDaysUntilDueArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[111] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneDaysUntilDueArgs) String() string { @@ -5838,7 +5509,7 @@ func (*ResolveMilestoneDaysUntilDueArgs) ProtoMessage() {} func (x *ResolveMilestoneDaysUntilDueArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[111] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5861,20 +5532,17 @@ func (x *ResolveMilestoneDaysUntilDueArgs) GetFromDate() *wrapperspb.StringValue } type ResolveMilestoneDaysUntilDueContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EndDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` unknownFields protoimpl.UnknownFields - - EndDate *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneDaysUntilDueContext) Reset() { *x = ResolveMilestoneDaysUntilDueContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[112] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneDaysUntilDueContext) String() string { @@ -5885,7 +5553,7 @@ func (*ResolveMilestoneDaysUntilDueContext) ProtoMessage() {} func (x *ResolveMilestoneDaysUntilDueContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[112] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5908,23 +5576,20 @@ func (x *ResolveMilestoneDaysUntilDueContext) GetEndDate() *wrapperspb.StringVal } type ResolveMilestoneDaysUntilDueRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field daysUntilDue of type Milestone. Context []*ResolveMilestoneDaysUntilDueContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field daysUntilDue of type Milestone. - FieldArgs *ResolveMilestoneDaysUntilDueArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveMilestoneDaysUntilDueArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneDaysUntilDueRequest) Reset() { *x = ResolveMilestoneDaysUntilDueRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[113] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneDaysUntilDueRequest) String() string { @@ -5935,7 +5600,7 @@ func (*ResolveMilestoneDaysUntilDueRequest) ProtoMessage() {} func (x *ResolveMilestoneDaysUntilDueRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[113] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5965,20 +5630,17 @@ func (x *ResolveMilestoneDaysUntilDueRequest) GetFieldArgs() *ResolveMilestoneDa } type ResolveMilestoneDaysUntilDueResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + DaysUntilDue *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=days_until_due,json=daysUntilDue,proto3" json:"days_until_due,omitempty"` unknownFields protoimpl.UnknownFields - - DaysUntilDue *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=days_until_due,json=daysUntilDue,proto3" json:"days_until_due,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneDaysUntilDueResult) Reset() { *x = ResolveMilestoneDaysUntilDueResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneDaysUntilDueResult) String() string { @@ -5989,7 +5651,7 @@ func (*ResolveMilestoneDaysUntilDueResult) ProtoMessage() {} func (x *ResolveMilestoneDaysUntilDueResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[114] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6012,20 +5674,17 @@ func (x *ResolveMilestoneDaysUntilDueResult) GetDaysUntilDue() *wrapperspb.Int32 } type ResolveMilestoneDaysUntilDueResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveMilestoneDaysUntilDueResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveMilestoneDaysUntilDueResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveMilestoneDaysUntilDueResponse) Reset() { *x = ResolveMilestoneDaysUntilDueResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[115] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveMilestoneDaysUntilDueResponse) String() string { @@ -6036,7 +5695,7 @@ func (*ResolveMilestoneDaysUntilDueResponse) ProtoMessage() {} func (x *ResolveMilestoneDaysUntilDueResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[115] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6059,20 +5718,17 @@ func (x *ResolveMilestoneDaysUntilDueResponse) GetResult() []*ResolveMilestoneDa } type ResolveTaskIsBlockedArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CheckDependencies *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=check_dependencies,json=checkDependencies,proto3" json:"check_dependencies,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CheckDependencies *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=check_dependencies,json=checkDependencies,proto3" json:"check_dependencies,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveTaskIsBlockedArgs) Reset() { *x = ResolveTaskIsBlockedArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[116] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskIsBlockedArgs) String() string { @@ -6083,7 +5739,7 @@ func (*ResolveTaskIsBlockedArgs) ProtoMessage() {} func (x *ResolveTaskIsBlockedArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[116] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6106,21 +5762,18 @@ func (x *ResolveTaskIsBlockedArgs) GetCheckDependencies() *wrapperspb.BoolValue } type ResolveTaskIsBlockedContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status TaskStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.TaskStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Status TaskStatus `protobuf:"varint,2,opt,name=status,proto3,enum=service.TaskStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveTaskIsBlockedContext) Reset() { *x = ResolveTaskIsBlockedContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[117] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskIsBlockedContext) String() string { @@ -6131,7 +5784,7 @@ func (*ResolveTaskIsBlockedContext) ProtoMessage() {} func (x *ResolveTaskIsBlockedContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[117] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6161,23 +5814,20 @@ func (x *ResolveTaskIsBlockedContext) GetStatus() TaskStatus { } type ResolveTaskIsBlockedRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field isBlocked of type Task. Context []*ResolveTaskIsBlockedContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field isBlocked of type Task. - FieldArgs *ResolveTaskIsBlockedArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveTaskIsBlockedArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveTaskIsBlockedRequest) Reset() { *x = ResolveTaskIsBlockedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskIsBlockedRequest) String() string { @@ -6188,7 +5838,7 @@ func (*ResolveTaskIsBlockedRequest) ProtoMessage() {} func (x *ResolveTaskIsBlockedRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[118] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6218,20 +5868,17 @@ func (x *ResolveTaskIsBlockedRequest) GetFieldArgs() *ResolveTaskIsBlockedArgs { } type ResolveTaskIsBlockedResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + IsBlocked bool `protobuf:"varint,1,opt,name=is_blocked,json=isBlocked,proto3" json:"is_blocked,omitempty"` unknownFields protoimpl.UnknownFields - - IsBlocked bool `protobuf:"varint,1,opt,name=is_blocked,json=isBlocked,proto3" json:"is_blocked,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveTaskIsBlockedResult) Reset() { *x = ResolveTaskIsBlockedResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[119] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskIsBlockedResult) String() string { @@ -6242,7 +5889,7 @@ func (*ResolveTaskIsBlockedResult) ProtoMessage() {} func (x *ResolveTaskIsBlockedResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[119] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6265,20 +5912,17 @@ func (x *ResolveTaskIsBlockedResult) GetIsBlocked() bool { } type ResolveTaskIsBlockedResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveTaskIsBlockedResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveTaskIsBlockedResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveTaskIsBlockedResponse) Reset() { *x = ResolveTaskIsBlockedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskIsBlockedResponse) String() string { @@ -6289,7 +5933,7 @@ func (*ResolveTaskIsBlockedResponse) ProtoMessage() {} func (x *ResolveTaskIsBlockedResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6312,20 +5956,17 @@ func (x *ResolveTaskIsBlockedResponse) GetResult() []*ResolveTaskIsBlockedResult } type ResolveTaskTotalEffortArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IncludeSubtasks *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_subtasks,json=includeSubtasks,proto3" json:"include_subtasks,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + IncludeSubtasks *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_subtasks,json=includeSubtasks,proto3" json:"include_subtasks,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveTaskTotalEffortArgs) Reset() { *x = ResolveTaskTotalEffortArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[121] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskTotalEffortArgs) String() string { @@ -6336,7 +5977,7 @@ func (*ResolveTaskTotalEffortArgs) ProtoMessage() {} func (x *ResolveTaskTotalEffortArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[121] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6359,22 +6000,19 @@ func (x *ResolveTaskTotalEffortArgs) GetIncludeSubtasks() *wrapperspb.BoolValue } type ResolveTaskTotalEffortContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` EstimatedHours *wrapperspb.DoubleValue `protobuf:"bytes,2,opt,name=estimated_hours,json=estimatedHours,proto3" json:"estimated_hours,omitempty"` ActualHours *wrapperspb.DoubleValue `protobuf:"bytes,3,opt,name=actual_hours,json=actualHours,proto3" json:"actual_hours,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveTaskTotalEffortContext) Reset() { *x = ResolveTaskTotalEffortContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskTotalEffortContext) String() string { @@ -6385,7 +6023,7 @@ func (*ResolveTaskTotalEffortContext) ProtoMessage() {} func (x *ResolveTaskTotalEffortContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6422,23 +6060,20 @@ func (x *ResolveTaskTotalEffortContext) GetActualHours() *wrapperspb.DoubleValue } type ResolveTaskTotalEffortRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field totalEffort of type Task. Context []*ResolveTaskTotalEffortContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field totalEffort of type Task. - FieldArgs *ResolveTaskTotalEffortArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveTaskTotalEffortArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveTaskTotalEffortRequest) Reset() { *x = ResolveTaskTotalEffortRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskTotalEffortRequest) String() string { @@ -6449,7 +6084,7 @@ func (*ResolveTaskTotalEffortRequest) ProtoMessage() {} func (x *ResolveTaskTotalEffortRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6479,20 +6114,17 @@ func (x *ResolveTaskTotalEffortRequest) GetFieldArgs() *ResolveTaskTotalEffortAr } type ResolveTaskTotalEffortResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TotalEffort *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=total_effort,json=totalEffort,proto3" json:"total_effort,omitempty"` unknownFields protoimpl.UnknownFields - - TotalEffort *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=total_effort,json=totalEffort,proto3" json:"total_effort,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveTaskTotalEffortResult) Reset() { *x = ResolveTaskTotalEffortResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskTotalEffortResult) String() string { @@ -6503,7 +6135,7 @@ func (*ResolveTaskTotalEffortResult) ProtoMessage() {} func (x *ResolveTaskTotalEffortResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[124] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6526,20 +6158,17 @@ func (x *ResolveTaskTotalEffortResult) GetTotalEffort() *wrapperspb.DoubleValue } type ResolveTaskTotalEffortResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveTaskTotalEffortResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveTaskTotalEffortResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveTaskTotalEffortResponse) Reset() { *x = ResolveTaskTotalEffortResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[125] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTaskTotalEffortResponse) String() string { @@ -6550,7 +6179,7 @@ func (*ResolveTaskTotalEffortResponse) ProtoMessage() {} func (x *ResolveTaskTotalEffortResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[125] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6573,21 +6202,18 @@ func (x *ResolveTaskTotalEffortResponse) GetResult() []*ResolveTaskTotalEffortRe } type ResolveEmployeeCurrentWorkloadArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` IncludeCompleted *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=include_completed,json=includeCompleted,proto3" json:"include_completed,omitempty"` ProjectId *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeCurrentWorkloadArgs) Reset() { *x = ResolveEmployeeCurrentWorkloadArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeCurrentWorkloadArgs) String() string { @@ -6598,7 +6224,7 @@ func (*ResolveEmployeeCurrentWorkloadArgs) ProtoMessage() {} func (x *ResolveEmployeeCurrentWorkloadArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6628,20 +6254,17 @@ func (x *ResolveEmployeeCurrentWorkloadArgs) GetProjectId() *wrapperspb.StringVa } type ResolveEmployeeCurrentWorkloadContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeCurrentWorkloadContext) Reset() { *x = ResolveEmployeeCurrentWorkloadContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeCurrentWorkloadContext) String() string { @@ -6652,7 +6275,7 @@ func (*ResolveEmployeeCurrentWorkloadContext) ProtoMessage() {} func (x *ResolveEmployeeCurrentWorkloadContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[127] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6675,23 +6298,20 @@ func (x *ResolveEmployeeCurrentWorkloadContext) GetId() int32 { } type ResolveEmployeeCurrentWorkloadRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field currentWorkload of type Employee. Context []*ResolveEmployeeCurrentWorkloadContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field currentWorkload of type Employee. - FieldArgs *ResolveEmployeeCurrentWorkloadArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveEmployeeCurrentWorkloadArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeCurrentWorkloadRequest) Reset() { *x = ResolveEmployeeCurrentWorkloadRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[128] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeCurrentWorkloadRequest) String() string { @@ -6702,7 +6322,7 @@ func (*ResolveEmployeeCurrentWorkloadRequest) ProtoMessage() {} func (x *ResolveEmployeeCurrentWorkloadRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[128] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6732,20 +6352,17 @@ func (x *ResolveEmployeeCurrentWorkloadRequest) GetFieldArgs() *ResolveEmployeeC } type ResolveEmployeeCurrentWorkloadResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CurrentWorkload int32 `protobuf:"varint,1,opt,name=current_workload,json=currentWorkload,proto3" json:"current_workload,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CurrentWorkload int32 `protobuf:"varint,1,opt,name=current_workload,json=currentWorkload,proto3" json:"current_workload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeCurrentWorkloadResult) Reset() { *x = ResolveEmployeeCurrentWorkloadResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeCurrentWorkloadResult) String() string { @@ -6756,7 +6373,7 @@ func (*ResolveEmployeeCurrentWorkloadResult) ProtoMessage() {} func (x *ResolveEmployeeCurrentWorkloadResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[129] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6779,20 +6396,17 @@ func (x *ResolveEmployeeCurrentWorkloadResult) GetCurrentWorkload() int32 { } type ResolveEmployeeCurrentWorkloadResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveEmployeeCurrentWorkloadResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveEmployeeCurrentWorkloadResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeCurrentWorkloadResponse) Reset() { *x = ResolveEmployeeCurrentWorkloadResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeCurrentWorkloadResponse) String() string { @@ -6803,7 +6417,7 @@ func (*ResolveEmployeeCurrentWorkloadResponse) ProtoMessage() {} func (x *ResolveEmployeeCurrentWorkloadResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6826,21 +6440,18 @@ func (x *ResolveEmployeeCurrentWorkloadResponse) GetResult() []*ResolveEmployeeC } type ResolveEmployeeAverageTaskCompletionDaysArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Priority TaskPriority `protobuf:"varint,2,opt,name=priority,proto3,enum=service.TaskPriority" json:"priority,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Priority TaskPriority `protobuf:"varint,2,opt,name=priority,proto3,enum=service.TaskPriority" json:"priority,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeAverageTaskCompletionDaysArgs) Reset() { *x = ResolveEmployeeAverageTaskCompletionDaysArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeAverageTaskCompletionDaysArgs) String() string { @@ -6851,7 +6462,7 @@ func (*ResolveEmployeeAverageTaskCompletionDaysArgs) ProtoMessage() {} func (x *ResolveEmployeeAverageTaskCompletionDaysArgs) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[131] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6881,20 +6492,17 @@ func (x *ResolveEmployeeAverageTaskCompletionDaysArgs) GetPriority() TaskPriorit } type ResolveEmployeeAverageTaskCompletionDaysContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeAverageTaskCompletionDaysContext) Reset() { *x = ResolveEmployeeAverageTaskCompletionDaysContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeAverageTaskCompletionDaysContext) String() string { @@ -6905,7 +6513,7 @@ func (*ResolveEmployeeAverageTaskCompletionDaysContext) ProtoMessage() {} func (x *ResolveEmployeeAverageTaskCompletionDaysContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6928,23 +6536,20 @@ func (x *ResolveEmployeeAverageTaskCompletionDaysContext) GetId() int32 { } type ResolveEmployeeAverageTaskCompletionDaysRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field averageTaskCompletionDays of type Employee. Context []*ResolveEmployeeAverageTaskCompletionDaysContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` // field_args provides the arguments for the resolver field averageTaskCompletionDays of type Employee. - FieldArgs *ResolveEmployeeAverageTaskCompletionDaysArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + FieldArgs *ResolveEmployeeAverageTaskCompletionDaysArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeAverageTaskCompletionDaysRequest) Reset() { *x = ResolveEmployeeAverageTaskCompletionDaysRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeAverageTaskCompletionDaysRequest) String() string { @@ -6955,7 +6560,7 @@ func (*ResolveEmployeeAverageTaskCompletionDaysRequest) ProtoMessage() {} func (x *ResolveEmployeeAverageTaskCompletionDaysRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6985,20 +6590,17 @@ func (x *ResolveEmployeeAverageTaskCompletionDaysRequest) GetFieldArgs() *Resolv } type ResolveEmployeeAverageTaskCompletionDaysResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` AverageTaskCompletionDays *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=average_task_completion_days,json=averageTaskCompletionDays,proto3" json:"average_task_completion_days,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeAverageTaskCompletionDaysResult) Reset() { *x = ResolveEmployeeAverageTaskCompletionDaysResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[134] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeAverageTaskCompletionDaysResult) String() string { @@ -7009,7 +6611,7 @@ func (*ResolveEmployeeAverageTaskCompletionDaysResult) ProtoMessage() {} func (x *ResolveEmployeeAverageTaskCompletionDaysResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[134] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7032,20 +6634,17 @@ func (x *ResolveEmployeeAverageTaskCompletionDaysResult) GetAverageTaskCompletio } type ResolveEmployeeAverageTaskCompletionDaysResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveEmployeeAverageTaskCompletionDaysResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveEmployeeAverageTaskCompletionDaysResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeAverageTaskCompletionDaysResponse) Reset() { *x = ResolveEmployeeAverageTaskCompletionDaysResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeAverageTaskCompletionDaysResponse) String() string { @@ -7056,7 +6655,7 @@ func (*ResolveEmployeeAverageTaskCompletionDaysResponse) ProtoMessage() {} func (x *ResolveEmployeeAverageTaskCompletionDaysResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[135] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7079,20 +6678,17 @@ func (x *ResolveEmployeeAverageTaskCompletionDaysResponse) GetResult() []*Resolv } type ResolveEmployeeTotalProjectCountContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeTotalProjectCountContext) Reset() { *x = ResolveEmployeeTotalProjectCountContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[136] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeTotalProjectCountContext) String() string { @@ -7103,7 +6699,7 @@ func (*ResolveEmployeeTotalProjectCountContext) ProtoMessage() {} func (x *ResolveEmployeeTotalProjectCountContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[136] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7126,21 +6722,18 @@ func (x *ResolveEmployeeTotalProjectCountContext) GetId() int32 { } type ResolveEmployeeTotalProjectCountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // context provides the resolver context for the field totalProjectCount of type Employee. - Context []*ResolveEmployeeTotalProjectCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + Context []*ResolveEmployeeTotalProjectCountContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeTotalProjectCountRequest) Reset() { *x = ResolveEmployeeTotalProjectCountRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeTotalProjectCountRequest) String() string { @@ -7151,7 +6744,7 @@ func (*ResolveEmployeeTotalProjectCountRequest) ProtoMessage() {} func (x *ResolveEmployeeTotalProjectCountRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7174,20 +6767,17 @@ func (x *ResolveEmployeeTotalProjectCountRequest) GetContext() []*ResolveEmploye } type ResolveEmployeeTotalProjectCountResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalProjectCount int32 `protobuf:"varint,1,opt,name=total_project_count,json=totalProjectCount,proto3" json:"total_project_count,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TotalProjectCount int32 `protobuf:"varint,1,opt,name=total_project_count,json=totalProjectCount,proto3" json:"total_project_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeTotalProjectCountResult) Reset() { *x = ResolveEmployeeTotalProjectCountResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[138] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeTotalProjectCountResult) String() string { @@ -7198,7 +6788,7 @@ func (*ResolveEmployeeTotalProjectCountResult) ProtoMessage() {} func (x *ResolveEmployeeTotalProjectCountResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[138] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7221,20 +6811,17 @@ func (x *ResolveEmployeeTotalProjectCountResult) GetTotalProjectCount() int32 { } type ResolveEmployeeTotalProjectCountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result []*ResolveEmployeeTotalProjectCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result []*ResolveEmployeeTotalProjectCountResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResolveEmployeeTotalProjectCountResponse) Reset() { *x = ResolveEmployeeTotalProjectCountResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[139] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveEmployeeTotalProjectCountResponse) String() string { @@ -7245,7 +6832,7 @@ func (*ResolveEmployeeTotalProjectCountResponse) ProtoMessage() {} func (x *ResolveEmployeeTotalProjectCountResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[139] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7268,21 +6855,18 @@ func (x *ResolveEmployeeTotalProjectCountResponse) GetResult() []*ResolveEmploye } type RequireEmployeeTaggedProjectSummaryByIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // RequireEmployeeTaggedProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeTaggedProjectSummaryById. - Context []*RequireEmployeeTaggedProjectSummaryByIdContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + Context []*RequireEmployeeTaggedProjectSummaryByIdContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RequireEmployeeTaggedProjectSummaryByIdRequest) Reset() { *x = RequireEmployeeTaggedProjectSummaryByIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[140] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RequireEmployeeTaggedProjectSummaryByIdRequest) String() string { @@ -7293,7 +6877,7 @@ func (*RequireEmployeeTaggedProjectSummaryByIdRequest) ProtoMessage() {} func (x *RequireEmployeeTaggedProjectSummaryByIdRequest) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[140] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7316,21 +6900,18 @@ func (x *RequireEmployeeTaggedProjectSummaryByIdRequest) GetContext() []*Require } type RequireEmployeeTaggedProjectSummaryByIdContext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key *LookupEmployeeByIdRequestKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Fields *RequireEmployeeTaggedProjectSummaryByIdFields `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"` unknownFields protoimpl.UnknownFields - - Key *LookupEmployeeByIdRequestKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Fields *RequireEmployeeTaggedProjectSummaryByIdFields `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RequireEmployeeTaggedProjectSummaryByIdContext) Reset() { *x = RequireEmployeeTaggedProjectSummaryByIdContext{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[141] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RequireEmployeeTaggedProjectSummaryByIdContext) String() string { @@ -7341,7 +6922,7 @@ func (*RequireEmployeeTaggedProjectSummaryByIdContext) ProtoMessage() {} func (x *RequireEmployeeTaggedProjectSummaryByIdContext) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[141] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7371,21 +6952,18 @@ func (x *RequireEmployeeTaggedProjectSummaryByIdContext) GetFields() *RequireEmp } type RequireEmployeeTaggedProjectSummaryByIdResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // RequireEmployeeTaggedProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeTaggedProjectSummaryById. - Result []*RequireEmployeeTaggedProjectSummaryByIdResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + Result []*RequireEmployeeTaggedProjectSummaryByIdResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RequireEmployeeTaggedProjectSummaryByIdResponse) Reset() { *x = RequireEmployeeTaggedProjectSummaryByIdResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[142] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RequireEmployeeTaggedProjectSummaryByIdResponse) String() string { @@ -7396,7 +6974,7 @@ func (*RequireEmployeeTaggedProjectSummaryByIdResponse) ProtoMessage() {} func (x *RequireEmployeeTaggedProjectSummaryByIdResponse) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[142] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7419,20 +6997,17 @@ func (x *RequireEmployeeTaggedProjectSummaryByIdResponse) GetResult() []*Require } type RequireEmployeeTaggedProjectSummaryByIdResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TaggedProjectSummary string `protobuf:"bytes,1,opt,name=tagged_project_summary,json=taggedProjectSummary,proto3" json:"tagged_project_summary,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + TaggedProjectSummary string `protobuf:"bytes,1,opt,name=tagged_project_summary,json=taggedProjectSummary,proto3" json:"tagged_project_summary,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RequireEmployeeTaggedProjectSummaryByIdResult) Reset() { *x = RequireEmployeeTaggedProjectSummaryByIdResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[143] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RequireEmployeeTaggedProjectSummaryByIdResult) String() string { @@ -7443,7 +7018,7 @@ func (*RequireEmployeeTaggedProjectSummaryByIdResult) ProtoMessage() {} func (x *RequireEmployeeTaggedProjectSummaryByIdResult) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[143] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7466,20 +7041,17 @@ func (x *RequireEmployeeTaggedProjectSummaryByIdResult) GetTaggedProjectSummary( } type RequireEmployeeTaggedProjectSummaryByIdFields struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Expertise string `protobuf:"bytes,1,opt,name=expertise,proto3" json:"expertise,omitempty"` unknownFields protoimpl.UnknownFields - - Expertise string `protobuf:"bytes,1,opt,name=expertise,proto3" json:"expertise,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RequireEmployeeTaggedProjectSummaryByIdFields) Reset() { *x = RequireEmployeeTaggedProjectSummaryByIdFields{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[144] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RequireEmployeeTaggedProjectSummaryByIdFields) String() string { @@ -7490,7 +7062,7 @@ func (*RequireEmployeeTaggedProjectSummaryByIdFields) ProtoMessage() {} func (x *RequireEmployeeTaggedProjectSummaryByIdFields) ProtoReflect() protoreflect.Message { mi := &file_generated_service_proto_msgTypes[144] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7512,11 +7084,291 @@ func (x *RequireEmployeeTaggedProjectSummaryByIdFields) GetExpertise() string { return "" } -type Project struct { - state protoimpl.MessageState +type RequireEmployeeFilteredProjectSummaryByIdRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // RequireEmployeeFilteredProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeFilteredProjectSummaryById. + Context []*RequireEmployeeFilteredProjectSummaryByIdContext `protobuf:"bytes,1,rep,name=context,proto3" json:"context,omitempty"` + // field_args provides the arguments for the required fields resolver field filteredProjectSummary of type Employee. + FieldArgs *RequireEmployeeFilteredProjectSummaryByIdArgs `protobuf:"bytes,2,opt,name=field_args,json=fieldArgs,proto3" json:"field_args,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdRequest) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdRequest{} + mi := &file_generated_service_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdRequest) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[145] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdRequest.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdRequest) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{145} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdRequest) GetContext() []*RequireEmployeeFilteredProjectSummaryByIdContext { + if x != nil { + return x.Context + } + return nil +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdRequest) GetFieldArgs() *RequireEmployeeFilteredProjectSummaryByIdArgs { + if x != nil { + return x.FieldArgs + } + return nil +} + +type RequireEmployeeFilteredProjectSummaryByIdContext struct { + state protoimpl.MessageState `protogen:"open.v1"` + Key *LookupEmployeeByIdRequestKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Fields *RequireEmployeeFilteredProjectSummaryByIdFields `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"` + unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdContext) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdContext{} + mi := &file_generated_service_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdContext) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdContext) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[146] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdContext.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdContext) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{146} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdContext) GetKey() *LookupEmployeeByIdRequestKey { + if x != nil { + return x.Key + } + return nil +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdContext) GetFields() *RequireEmployeeFilteredProjectSummaryByIdFields { + if x != nil { + return x.Fields + } + return nil +} + +type RequireEmployeeFilteredProjectSummaryByIdResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // RequireEmployeeFilteredProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeFilteredProjectSummaryById. + Result []*RequireEmployeeFilteredProjectSummaryByIdResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResponse) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdResponse{} + mi := &file_generated_service_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdResponse) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[147] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdResponse.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdResponse) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{147} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResponse) GetResult() []*RequireEmployeeFilteredProjectSummaryByIdResult { + if x != nil { + return x.Result + } + return nil +} +type RequireEmployeeFilteredProjectSummaryByIdResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + FilteredProjectSummary string `protobuf:"bytes,1,opt,name=filtered_project_summary,json=filteredProjectSummary,proto3" json:"filtered_project_summary,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResult) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdResult{} + mi := &file_generated_service_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdResult) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResult) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[148] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdResult.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdResult) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{148} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdResult) GetFilteredProjectSummary() string { + if x != nil { + return x.FilteredProjectSummary + } + return "" +} + +type RequireEmployeeFilteredProjectSummaryByIdFields struct { + state protoimpl.MessageState `protogen:"open.v1"` + Expertise string `protobuf:"bytes,1,opt,name=expertise,proto3" json:"expertise,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdFields) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdFields{} + mi := &file_generated_service_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdFields) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdFields) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[149] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdFields.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdFields) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{149} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdFields) GetExpertise() string { + if x != nil { + return x.Expertise + } + return "" +} + +type RequireEmployeeFilteredProjectSummaryByIdArgs struct { + state protoimpl.MessageState `protogen:"open.v1"` + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdArgs) Reset() { + *x = RequireEmployeeFilteredProjectSummaryByIdArgs{} + mi := &file_generated_service_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdArgs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequireEmployeeFilteredProjectSummaryByIdArgs) ProtoMessage() {} + +func (x *RequireEmployeeFilteredProjectSummaryByIdArgs) ProtoReflect() protoreflect.Message { + mi := &file_generated_service_proto_msgTypes[150] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequireEmployeeFilteredProjectSummaryByIdArgs.ProtoReflect.Descriptor instead. +func (*RequireEmployeeFilteredProjectSummaryByIdArgs) Descriptor() ([]byte, []int) { + return file_generated_service_proto_rawDescGZIP(), []int{150} +} + +func (x *RequireEmployeeFilteredProjectSummaryByIdArgs) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +type Project struct { + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` @@ -7536,15 +7388,15 @@ type Project struct { TasksByPhase *ListOfListOfTask `protobuf:"bytes,17,opt,name=tasks_by_phase,json=tasksByPhase,proto3" json:"tasks_by_phase,omitempty"` MilestoneGroups *ListOfListOfMilestone `protobuf:"bytes,18,opt,name=milestone_groups,json=milestoneGroups,proto3" json:"milestone_groups,omitempty"` PriorityMatrix *ListOfListOfListOfTask `protobuf:"bytes,19,opt,name=priority_matrix,json=priorityMatrix,proto3" json:"priority_matrix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Project) Reset() { *x = Project{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[145] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Project) String() string { @@ -7554,8 +7406,8 @@ func (x *Project) String() string { func (*Project) ProtoMessage() {} func (x *Project) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[145] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[151] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7567,7 +7419,7 @@ func (x *Project) ProtoReflect() protoreflect.Message { // Deprecated: Use Project.ProtoReflect.Descriptor instead. func (*Project) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{145} + return file_generated_service_proto_rawDescGZIP(), []int{151} } func (x *Project) GetId() string { @@ -7704,10 +7556,7 @@ func (x *Project) GetPriorityMatrix() *ListOfListOfListOfTask { } type Milestone struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` @@ -7719,15 +7568,15 @@ type Milestone struct { Dependencies []*Milestone `protobuf:"bytes,9,rep,name=dependencies,proto3" json:"dependencies,omitempty"` Subtasks *ListOfTask `protobuf:"bytes,10,opt,name=subtasks,proto3" json:"subtasks,omitempty"` Reviewers *ListOfEmployee `protobuf:"bytes,11,opt,name=reviewers,proto3" json:"reviewers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Milestone) Reset() { *x = Milestone{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[146] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Milestone) String() string { @@ -7737,8 +7586,8 @@ func (x *Milestone) String() string { func (*Milestone) ProtoMessage() {} func (x *Milestone) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[146] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[152] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7750,7 +7599,7 @@ func (x *Milestone) ProtoReflect() protoreflect.Message { // Deprecated: Use Milestone.ProtoReflect.Descriptor instead. func (*Milestone) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{146} + return file_generated_service_proto_rawDescGZIP(), []int{152} } func (x *Milestone) GetId() string { @@ -7831,10 +7680,7 @@ func (x *Milestone) GetReviewers() *ListOfEmployee { } type Task struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` MilestoneId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=milestone_id,json=milestoneId,proto3" json:"milestone_id,omitempty"` @@ -7855,15 +7701,15 @@ type Task struct { Dependencies []*Task `protobuf:"bytes,15,rep,name=dependencies,proto3" json:"dependencies,omitempty"` AttachmentUrls []string `protobuf:"bytes,16,rep,name=attachment_urls,json=attachmentUrls,proto3" json:"attachment_urls,omitempty"` ReviewerIds *ListOfInt `protobuf:"bytes,17,opt,name=reviewer_ids,json=reviewerIds,proto3" json:"reviewer_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Task) Reset() { *x = Task{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[147] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Task) String() string { @@ -7873,8 +7719,8 @@ func (x *Task) String() string { func (*Task) ProtoMessage() {} func (x *Task) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[147] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[153] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7886,7 +7732,7 @@ func (x *Task) ProtoReflect() protoreflect.Message { // Deprecated: Use Task.ProtoReflect.Descriptor instead. func (*Task) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{147} + return file_generated_service_proto_rawDescGZIP(), []int{153} } func (x *Task) GetId() string { @@ -8010,26 +7856,23 @@ func (x *Task) GetReviewerIds() *ListOfInt { } type Employee struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Projects *ListOfProject `protobuf:"bytes,2,opt,name=projects,proto3" json:"projects,omitempty"` - AssignedTasks []*Task `protobuf:"bytes,3,rep,name=assigned_tasks,json=assignedTasks,proto3" json:"assigned_tasks,omitempty"` - CompletedTasks []*Task `protobuf:"bytes,4,rep,name=completed_tasks,json=completedTasks,proto3" json:"completed_tasks,omitempty"` - Skills *ListOfString `protobuf:"bytes,5,opt,name=skills,proto3" json:"skills,omitempty"` - Certifications *ListOfString `protobuf:"bytes,6,opt,name=certifications,proto3" json:"certifications,omitempty"` - ProjectHistory *ListOfListOfProject `protobuf:"bytes,7,opt,name=project_history,json=projectHistory,proto3" json:"project_history,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Projects *ListOfProject `protobuf:"bytes,2,opt,name=projects,proto3" json:"projects,omitempty"` + AssignedTasks []*Task `protobuf:"bytes,3,rep,name=assigned_tasks,json=assignedTasks,proto3" json:"assigned_tasks,omitempty"` + CompletedTasks []*Task `protobuf:"bytes,4,rep,name=completed_tasks,json=completedTasks,proto3" json:"completed_tasks,omitempty"` + Skills *ListOfString `protobuf:"bytes,5,opt,name=skills,proto3" json:"skills,omitempty"` + Certifications *ListOfString `protobuf:"bytes,6,opt,name=certifications,proto3" json:"certifications,omitempty"` + ProjectHistory *ListOfListOfProject `protobuf:"bytes,7,opt,name=project_history,json=projectHistory,proto3" json:"project_history,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Employee) Reset() { *x = Employee{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[148] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Employee) String() string { @@ -8039,8 +7882,8 @@ func (x *Employee) String() string { func (*Employee) ProtoMessage() {} func (x *Employee) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[148] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[154] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8052,7 +7895,7 @@ func (x *Employee) ProtoReflect() protoreflect.Message { // Deprecated: Use Employee.ProtoReflect.Descriptor instead. func (*Employee) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{148} + return file_generated_service_proto_rawDescGZIP(), []int{154} } func (x *Employee) GetId() int32 { @@ -8105,22 +7948,19 @@ func (x *Employee) GetProjectHistory() *ListOfListOfProject { } type Product struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Upc string `protobuf:"bytes,1,opt,name=upc,proto3" json:"upc,omitempty"` + Projects *ListOfProject `protobuf:"bytes,2,opt,name=projects,proto3" json:"projects,omitempty"` + FeatureMatrix *ListOfListOfString `protobuf:"bytes,3,opt,name=feature_matrix,json=featureMatrix,proto3" json:"feature_matrix,omitempty"` unknownFields protoimpl.UnknownFields - - Upc string `protobuf:"bytes,1,opt,name=upc,proto3" json:"upc,omitempty"` - Projects *ListOfProject `protobuf:"bytes,2,opt,name=projects,proto3" json:"projects,omitempty"` - FeatureMatrix *ListOfListOfString `protobuf:"bytes,3,opt,name=feature_matrix,json=featureMatrix,proto3" json:"feature_matrix,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Product) Reset() { *x = Product{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[149] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Product) String() string { @@ -8130,8 +7970,8 @@ func (x *Product) String() string { func (*Product) ProtoMessage() {} func (x *Product) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[149] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[155] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8143,7 +7983,7 @@ func (x *Product) ProtoReflect() protoreflect.Message { // Deprecated: Use Product.ProtoReflect.Descriptor instead. func (*Product) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{149} + return file_generated_service_proto_rawDescGZIP(), []int{155} } func (x *Product) GetUpc() string { @@ -8168,26 +8008,23 @@ func (x *Product) GetFeatureMatrix() *ListOfListOfString { } type ProjectResource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Value: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Value: // // *ProjectResource_Employee // *ProjectResource_Product // *ProjectResource_Milestone // *ProjectResource_Task - Value isProjectResource_Value `protobuf_oneof:"value"` + Value isProjectResource_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ProjectResource) Reset() { *x = ProjectResource{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[150] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[156] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProjectResource) String() string { @@ -8197,8 +8034,8 @@ func (x *ProjectResource) String() string { func (*ProjectResource) ProtoMessage() {} func (x *ProjectResource) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[150] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[156] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8210,40 +8047,48 @@ func (x *ProjectResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectResource.ProtoReflect.Descriptor instead. func (*ProjectResource) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{150} + return file_generated_service_proto_rawDescGZIP(), []int{156} } -func (m *ProjectResource) GetValue() isProjectResource_Value { - if m != nil { - return m.Value +func (x *ProjectResource) GetValue() isProjectResource_Value { + if x != nil { + return x.Value } return nil } func (x *ProjectResource) GetEmployee() *Employee { - if x, ok := x.GetValue().(*ProjectResource_Employee); ok { - return x.Employee + if x != nil { + if x, ok := x.Value.(*ProjectResource_Employee); ok { + return x.Employee + } } return nil } func (x *ProjectResource) GetProduct() *Product { - if x, ok := x.GetValue().(*ProjectResource_Product); ok { - return x.Product + if x != nil { + if x, ok := x.Value.(*ProjectResource_Product); ok { + return x.Product + } } return nil } func (x *ProjectResource) GetMilestone() *Milestone { - if x, ok := x.GetValue().(*ProjectResource_Milestone); ok { - return x.Milestone + if x != nil { + if x, ok := x.Value.(*ProjectResource_Milestone); ok { + return x.Milestone + } } return nil } func (x *ProjectResource) GetTask() *Task { - if x, ok := x.GetValue().(*ProjectResource_Task); ok { - return x.Task + if x != nil { + if x, ok := x.Value.(*ProjectResource_Task); ok { + return x.Task + } } return nil } @@ -8274,28 +8119,25 @@ func (*ProjectResource_Product) isProjectResource_Value() {} func (*ProjectResource_Milestone) isProjectResource_Value() {} -func (*ProjectResource_Task) isProjectResource_Value() {} - -type ProjectSearchResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (*ProjectResource_Task) isProjectResource_Value() {} - // Types that are assignable to Value: +type ProjectSearchResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Value: // // *ProjectSearchResult_Project // *ProjectSearchResult_Milestone // *ProjectSearchResult_Task - Value isProjectSearchResult_Value `protobuf_oneof:"value"` + Value isProjectSearchResult_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ProjectSearchResult) Reset() { *x = ProjectSearchResult{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[151] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProjectSearchResult) String() string { @@ -8305,8 +8147,8 @@ func (x *ProjectSearchResult) String() string { func (*ProjectSearchResult) ProtoMessage() {} func (x *ProjectSearchResult) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[151] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[157] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8318,33 +8160,39 @@ func (x *ProjectSearchResult) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectSearchResult.ProtoReflect.Descriptor instead. func (*ProjectSearchResult) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{151} + return file_generated_service_proto_rawDescGZIP(), []int{157} } -func (m *ProjectSearchResult) GetValue() isProjectSearchResult_Value { - if m != nil { - return m.Value +func (x *ProjectSearchResult) GetValue() isProjectSearchResult_Value { + if x != nil { + return x.Value } return nil } func (x *ProjectSearchResult) GetProject() *Project { - if x, ok := x.GetValue().(*ProjectSearchResult_Project); ok { - return x.Project + if x != nil { + if x, ok := x.Value.(*ProjectSearchResult_Project); ok { + return x.Project + } } return nil } func (x *ProjectSearchResult) GetMilestone() *Milestone { - if x, ok := x.GetValue().(*ProjectSearchResult_Milestone); ok { - return x.Milestone + if x != nil { + if x, ok := x.Value.(*ProjectSearchResult_Milestone); ok { + return x.Milestone + } } return nil } func (x *ProjectSearchResult) GetTask() *Task { - if x, ok := x.GetValue().(*ProjectSearchResult_Task); ok { - return x.Task + if x != nil { + if x, ok := x.Value.(*ProjectSearchResult_Task); ok { + return x.Task + } } return nil } @@ -8372,25 +8220,22 @@ func (*ProjectSearchResult_Milestone) isProjectSearchResult_Value() {} func (*ProjectSearchResult_Task) isProjectSearchResult_Value() {} type ProjectActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Value: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Value: // // *ProjectActivity_ProjectUpdate // *ProjectActivity_Milestone // *ProjectActivity_Task - Value isProjectActivity_Value `protobuf_oneof:"value"` + Value isProjectActivity_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ProjectActivity) Reset() { *x = ProjectActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[158] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProjectActivity) String() string { @@ -8400,8 +8245,8 @@ func (x *ProjectActivity) String() string { func (*ProjectActivity) ProtoMessage() {} func (x *ProjectActivity) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[152] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[158] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8413,33 +8258,39 @@ func (x *ProjectActivity) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectActivity.ProtoReflect.Descriptor instead. func (*ProjectActivity) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{152} + return file_generated_service_proto_rawDescGZIP(), []int{158} } -func (m *ProjectActivity) GetValue() isProjectActivity_Value { - if m != nil { - return m.Value +func (x *ProjectActivity) GetValue() isProjectActivity_Value { + if x != nil { + return x.Value } return nil } func (x *ProjectActivity) GetProjectUpdate() *ProjectUpdate { - if x, ok := x.GetValue().(*ProjectActivity_ProjectUpdate); ok { - return x.ProjectUpdate + if x != nil { + if x, ok := x.Value.(*ProjectActivity_ProjectUpdate); ok { + return x.ProjectUpdate + } } return nil } func (x *ProjectActivity) GetMilestone() *Milestone { - if x, ok := x.GetValue().(*ProjectActivity_Milestone); ok { - return x.Milestone + if x != nil { + if x, ok := x.Value.(*ProjectActivity_Milestone); ok { + return x.Milestone + } } return nil } func (x *ProjectActivity) GetTask() *Task { - if x, ok := x.GetValue().(*ProjectActivity_Task); ok { - return x.Task + if x != nil { + if x, ok := x.Value.(*ProjectActivity_Task); ok { + return x.Task + } } return nil } @@ -8467,26 +8318,23 @@ func (*ProjectActivity_Milestone) isProjectActivity_Value() {} func (*ProjectActivity_Task) isProjectActivity_Value() {} type Node struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Instance: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Instance: // // *Node_Project // *Node_Milestone // *Node_Task // *Node_ProjectUpdate - Instance isNode_Instance `protobuf_oneof:"instance"` + Instance isNode_Instance `protobuf_oneof:"instance"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Node) Reset() { *x = Node{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[153] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[159] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Node) String() string { @@ -8496,8 +8344,8 @@ func (x *Node) String() string { func (*Node) ProtoMessage() {} func (x *Node) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[153] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[159] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8509,40 +8357,48 @@ func (x *Node) ProtoReflect() protoreflect.Message { // Deprecated: Use Node.ProtoReflect.Descriptor instead. func (*Node) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{153} + return file_generated_service_proto_rawDescGZIP(), []int{159} } -func (m *Node) GetInstance() isNode_Instance { - if m != nil { - return m.Instance +func (x *Node) GetInstance() isNode_Instance { + if x != nil { + return x.Instance } return nil } func (x *Node) GetProject() *Project { - if x, ok := x.GetInstance().(*Node_Project); ok { - return x.Project + if x != nil { + if x, ok := x.Instance.(*Node_Project); ok { + return x.Project + } } return nil } func (x *Node) GetMilestone() *Milestone { - if x, ok := x.GetInstance().(*Node_Milestone); ok { - return x.Milestone + if x != nil { + if x, ok := x.Instance.(*Node_Milestone); ok { + return x.Milestone + } } return nil } func (x *Node) GetTask() *Task { - if x, ok := x.GetInstance().(*Node_Task); ok { - return x.Task + if x != nil { + if x, ok := x.Instance.(*Node_Task); ok { + return x.Task + } } return nil } func (x *Node) GetProjectUpdate() *ProjectUpdate { - if x, ok := x.GetInstance().(*Node_ProjectUpdate); ok { - return x.ProjectUpdate + if x != nil { + if x, ok := x.Instance.(*Node_ProjectUpdate); ok { + return x.ProjectUpdate + } } return nil } @@ -8576,24 +8432,21 @@ func (*Node_Task) isNode_Instance() {} func (*Node_ProjectUpdate) isNode_Instance() {} type ProjectInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Description *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + StartDate *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + EndDate *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + Status ProjectStatus `protobuf:"varint,5,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - StartDate *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` - EndDate *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - Status ProjectStatus `protobuf:"varint,5,opt,name=status,proto3,enum=service.ProjectStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ProjectInput) Reset() { *x = ProjectInput{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[154] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[160] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProjectInput) String() string { @@ -8603,8 +8456,8 @@ func (x *ProjectInput) String() string { func (*ProjectInput) ProtoMessage() {} func (x *ProjectInput) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[154] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[160] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8616,7 +8469,7 @@ func (x *ProjectInput) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectInput.ProtoReflect.Descriptor instead. func (*ProjectInput) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{154} + return file_generated_service_proto_rawDescGZIP(), []int{160} } func (x *ProjectInput) GetName() string { @@ -8655,24 +8508,21 @@ func (x *ProjectInput) GetStatus() ProjectStatus { } type MilestoneInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + DueDate *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=due_date,json=dueDate,proto3" json:"due_date,omitempty"` + Status MilestoneStatus `protobuf:"varint,5,opt,name=status,proto3,enum=service.MilestoneStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - DueDate *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=due_date,json=dueDate,proto3" json:"due_date,omitempty"` - Status MilestoneStatus `protobuf:"varint,5,opt,name=status,proto3,enum=service.MilestoneStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MilestoneInput) Reset() { *x = MilestoneInput{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[155] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MilestoneInput) String() string { @@ -8682,8 +8532,8 @@ func (x *MilestoneInput) String() string { func (*MilestoneInput) ProtoMessage() {} func (x *MilestoneInput) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[155] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[161] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8695,7 +8545,7 @@ func (x *MilestoneInput) ProtoReflect() protoreflect.Message { // Deprecated: Use MilestoneInput.ProtoReflect.Descriptor instead. func (*MilestoneInput) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{155} + return file_generated_service_proto_rawDescGZIP(), []int{161} } func (x *MilestoneInput) GetProjectId() string { @@ -8734,10 +8584,7 @@ func (x *MilestoneInput) GetStatus() MilestoneStatus { } type TaskInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` AssigneeId *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=assignee_id,json=assigneeId,proto3" json:"assignee_id,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` @@ -8745,15 +8592,15 @@ type TaskInput struct { Priority TaskPriority `protobuf:"varint,5,opt,name=priority,proto3,enum=service.TaskPriority" json:"priority,omitempty"` Status TaskStatus `protobuf:"varint,6,opt,name=status,proto3,enum=service.TaskStatus" json:"status,omitempty"` EstimatedHours *wrapperspb.DoubleValue `protobuf:"bytes,7,opt,name=estimated_hours,json=estimatedHours,proto3" json:"estimated_hours,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TaskInput) Reset() { *x = TaskInput{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[156] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TaskInput) String() string { @@ -8763,8 +8610,8 @@ func (x *TaskInput) String() string { func (*TaskInput) ProtoMessage() {} func (x *TaskInput) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[156] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[162] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8776,7 +8623,7 @@ func (x *TaskInput) ProtoReflect() protoreflect.Message { // Deprecated: Use TaskInput.ProtoReflect.Descriptor instead. func (*TaskInput) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{156} + return file_generated_service_proto_rawDescGZIP(), []int{162} } func (x *TaskInput) GetProjectId() string { @@ -8829,26 +8676,23 @@ func (x *TaskInput) GetEstimatedHours() *wrapperspb.DoubleValue { } type ProjectUpdate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + UpdatedById int32 `protobuf:"varint,3,opt,name=updated_by_id,json=updatedById,proto3" json:"updated_by_id,omitempty"` + UpdateType ProjectUpdateType `protobuf:"varint,4,opt,name=update_type,json=updateType,proto3,enum=service.ProjectUpdateType" json:"update_type,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Metadata *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"` unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - UpdatedById int32 `protobuf:"varint,3,opt,name=updated_by_id,json=updatedById,proto3" json:"updated_by_id,omitempty"` - UpdateType ProjectUpdateType `protobuf:"varint,4,opt,name=update_type,json=updateType,proto3,enum=service.ProjectUpdateType" json:"update_type,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` - Timestamp string `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Metadata *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ProjectUpdate) Reset() { *x = ProjectUpdate{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[157] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProjectUpdate) String() string { @@ -8858,8 +8702,8 @@ func (x *ProjectUpdate) String() string { func (*ProjectUpdate) ProtoMessage() {} func (x *ProjectUpdate) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[157] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[163] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8871,7 +8715,7 @@ func (x *ProjectUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectUpdate.ProtoReflect.Descriptor instead. func (*ProjectUpdate) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{157} + return file_generated_service_proto_rawDescGZIP(), []int{163} } func (x *ProjectUpdate) GetId() string { @@ -8924,24 +8768,21 @@ func (x *ProjectUpdate) GetMetadata() *wrapperspb.StringValue { } type Timestamped struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Instance: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Instance: // // *Timestamped_Project // *Timestamped_Milestone - Instance isTimestamped_Instance `protobuf_oneof:"instance"` + Instance isTimestamped_Instance `protobuf_oneof:"instance"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Timestamped) Reset() { *x = Timestamped{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[158] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Timestamped) String() string { @@ -8951,8 +8792,8 @@ func (x *Timestamped) String() string { func (*Timestamped) ProtoMessage() {} func (x *Timestamped) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[158] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[164] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8964,26 +8805,30 @@ func (x *Timestamped) ProtoReflect() protoreflect.Message { // Deprecated: Use Timestamped.ProtoReflect.Descriptor instead. func (*Timestamped) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{158} + return file_generated_service_proto_rawDescGZIP(), []int{164} } -func (m *Timestamped) GetInstance() isTimestamped_Instance { - if m != nil { - return m.Instance +func (x *Timestamped) GetInstance() isTimestamped_Instance { + if x != nil { + return x.Instance } return nil } func (x *Timestamped) GetProject() *Project { - if x, ok := x.GetInstance().(*Timestamped_Project); ok { - return x.Project + if x != nil { + if x, ok := x.Instance.(*Timestamped_Project); ok { + return x.Project + } } return nil } func (x *Timestamped) GetMilestone() *Milestone { - if x, ok := x.GetInstance().(*Timestamped_Milestone); ok { - return x.Milestone + if x != nil { + if x, ok := x.Instance.(*Timestamped_Milestone); ok { + return x.Milestone + } } return nil } @@ -9005,23 +8850,20 @@ func (*Timestamped_Project) isTimestamped_Instance() {} func (*Timestamped_Milestone) isTimestamped_Instance() {} type Assignable struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Instance: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Instance: // // *Assignable_Task - Instance isAssignable_Instance `protobuf_oneof:"instance"` + Instance isAssignable_Instance `protobuf_oneof:"instance"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Assignable) Reset() { *x = Assignable{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[159] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Assignable) String() string { @@ -9031,8 +8873,8 @@ func (x *Assignable) String() string { func (*Assignable) ProtoMessage() {} func (x *Assignable) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[159] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[165] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9044,19 +8886,21 @@ func (x *Assignable) ProtoReflect() protoreflect.Message { // Deprecated: Use Assignable.ProtoReflect.Descriptor instead. func (*Assignable) Descriptor() ([]byte, []int) { - return file_generated_service_proto_rawDescGZIP(), []int{159} + return file_generated_service_proto_rawDescGZIP(), []int{165} } -func (m *Assignable) GetInstance() isAssignable_Instance { - if m != nil { - return m.Instance +func (x *Assignable) GetInstance() isAssignable_Instance { + if x != nil { + return x.Instance } return nil } func (x *Assignable) GetTask() *Task { - if x, ok := x.GetInstance().(*Assignable_Task); ok { - return x.Task + if x != nil { + if x, ok := x.Instance.(*Assignable_Task); ok { + return x.Task + } } return nil } @@ -9072,20 +8916,17 @@ type Assignable_Task struct { func (*Assignable_Task) isAssignable_Instance() {} type ListOfEmployee_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Employee `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Employee `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfEmployee_List) Reset() { *x = ListOfEmployee_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfEmployee_List) String() string { @@ -9095,8 +8936,8 @@ func (x *ListOfEmployee_List) String() string { func (*ListOfEmployee_List) ProtoMessage() {} func (x *ListOfEmployee_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[160] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[166] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9119,20 +8960,17 @@ func (x *ListOfEmployee_List) GetItems() []*Employee { } type ListOfInt_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []int32 `protobuf:"varint,1,rep,packed,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []int32 `protobuf:"varint,1,rep,packed,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfInt_List) Reset() { *x = ListOfInt_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[161] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfInt_List) String() string { @@ -9142,8 +8980,8 @@ func (x *ListOfInt_List) String() string { func (*ListOfInt_List) ProtoMessage() {} func (x *ListOfInt_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[161] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[167] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9166,20 +9004,17 @@ func (x *ListOfInt_List) GetItems() []int32 { } type ListOfListOfListOfTask_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfListOfTask `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfListOfTask `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfListOfTask_List) Reset() { *x = ListOfListOfListOfTask_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[162] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfListOfTask_List) String() string { @@ -9189,8 +9024,8 @@ func (x *ListOfListOfListOfTask_List) String() string { func (*ListOfListOfListOfTask_List) ProtoMessage() {} func (x *ListOfListOfListOfTask_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[162] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[168] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9213,20 +9048,17 @@ func (x *ListOfListOfListOfTask_List) GetItems() []*ListOfListOfTask { } type ListOfListOfMilestone_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfMilestone `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfMilestone `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfMilestone_List) Reset() { *x = ListOfListOfMilestone_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[163] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfMilestone_List) String() string { @@ -9236,8 +9068,8 @@ func (x *ListOfListOfMilestone_List) String() string { func (*ListOfListOfMilestone_List) ProtoMessage() {} func (x *ListOfListOfMilestone_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[163] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[169] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9260,20 +9092,17 @@ func (x *ListOfListOfMilestone_List) GetItems() []*ListOfMilestone { } type ListOfListOfProject_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfProject `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfProject `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfProject_List) Reset() { *x = ListOfListOfProject_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[164] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfProject_List) String() string { @@ -9283,8 +9112,8 @@ func (x *ListOfListOfProject_List) String() string { func (*ListOfListOfProject_List) ProtoMessage() {} func (x *ListOfListOfProject_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[164] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[170] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9307,20 +9136,17 @@ func (x *ListOfListOfProject_List) GetItems() []*ListOfProject { } type ListOfListOfProjectResource_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfProjectResource `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfProjectResource `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfProjectResource_List) Reset() { *x = ListOfListOfProjectResource_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[165] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfProjectResource_List) String() string { @@ -9330,8 +9156,8 @@ func (x *ListOfListOfProjectResource_List) String() string { func (*ListOfListOfProjectResource_List) ProtoMessage() {} func (x *ListOfListOfProjectResource_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[165] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[171] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9354,20 +9180,17 @@ func (x *ListOfListOfProjectResource_List) GetItems() []*ListOfProjectResource { } type ListOfListOfString_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfString `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfString `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfString_List) Reset() { *x = ListOfListOfString_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[166] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfString_List) String() string { @@ -9377,8 +9200,8 @@ func (x *ListOfListOfString_List) String() string { func (*ListOfListOfString_List) ProtoMessage() {} func (x *ListOfListOfString_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[166] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[172] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9401,20 +9224,17 @@ func (x *ListOfListOfString_List) GetItems() []*ListOfString { } type ListOfListOfTask_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ListOfTask `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ListOfTask `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfListOfTask_List) Reset() { *x = ListOfListOfTask_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[167] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfListOfTask_List) String() string { @@ -9424,8 +9244,8 @@ func (x *ListOfListOfTask_List) String() string { func (*ListOfListOfTask_List) ProtoMessage() {} func (x *ListOfListOfTask_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[167] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[173] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9448,20 +9268,17 @@ func (x *ListOfListOfTask_List) GetItems() []*ListOfTask { } type ListOfMilestone_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Milestone `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Milestone `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfMilestone_List) Reset() { *x = ListOfMilestone_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[168] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfMilestone_List) String() string { @@ -9471,8 +9288,8 @@ func (x *ListOfMilestone_List) String() string { func (*ListOfMilestone_List) ProtoMessage() {} func (x *ListOfMilestone_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[168] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[174] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9495,20 +9312,17 @@ func (x *ListOfMilestone_List) GetItems() []*Milestone { } type ListOfProject_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Project `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Project `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfProject_List) Reset() { *x = ListOfProject_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[169] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfProject_List) String() string { @@ -9518,8 +9332,8 @@ func (x *ListOfProject_List) String() string { func (*ListOfProject_List) ProtoMessage() {} func (x *ListOfProject_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[169] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[175] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9542,20 +9356,17 @@ func (x *ListOfProject_List) GetItems() []*Project { } type ListOfProjectResource_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ProjectResource `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ProjectResource `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfProjectResource_List) Reset() { *x = ListOfProjectResource_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[170] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[176] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfProjectResource_List) String() string { @@ -9565,8 +9376,8 @@ func (x *ListOfProjectResource_List) String() string { func (*ListOfProjectResource_List) ProtoMessage() {} func (x *ListOfProjectResource_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[170] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[176] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9589,20 +9400,17 @@ func (x *ListOfProjectResource_List) GetItems() []*ProjectResource { } type ListOfString_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []string `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []string `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfString_List) Reset() { *x = ListOfString_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[171] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfString_List) String() string { @@ -9612,8 +9420,8 @@ func (x *ListOfString_List) String() string { func (*ListOfString_List) ProtoMessage() {} func (x *ListOfString_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[171] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[177] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9636,20 +9444,17 @@ func (x *ListOfString_List) GetItems() []string { } type ListOfTask_List struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Task `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Task `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListOfTask_List) Reset() { *x = ListOfTask_List{} - if protoimpl.UnsafeEnabled { - mi := &file_generated_service_proto_msgTypes[172] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_generated_service_proto_msgTypes[178] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListOfTask_List) String() string { @@ -9659,8 +9464,8 @@ func (x *ListOfTask_List) String() string { func (*ListOfTask_List) ProtoMessage() {} func (x *ListOfTask_List) ProtoReflect() protoreflect.Message { - mi := &file_generated_service_proto_msgTypes[172] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_generated_service_proto_msgTypes[178] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9684,1931 +9489,949 @@ func (x *ListOfTask_List) GetItems() []*Task { var File_generated_service_proto protoreflect.FileDescriptor -var file_generated_service_proto_rawDesc = []byte{ - 0x0a, 0x17, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x45, 0x6d, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x2f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, - 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x56, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4f, - 0x66, 0x49, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x1a, 0x1c, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, - 0x8b, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, - 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x37, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x88, 0x01, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x1a, 0x36, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x35, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x34, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x2c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x9a, 0x01, - 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x3c, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x7f, 0x0a, 0x12, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x12, 0x34, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x33, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, - 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x79, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x76, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x30, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x70, - 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x1a, 0x2e, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x22, 0x88, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x1a, 0x36, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x5c, 0x0a, 0x0c, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x1c, 0x0a, 0x04, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2c, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x2b, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x22, 0x2d, 0x0a, 0x1b, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, - 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x54, 0x0a, 0x18, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, - 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x45, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, - 0x70, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, - 0x0a, 0x1d, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x58, 0x0a, 0x1a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x49, 0x0a, 0x1b, 0x4c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2a, 0x0a, 0x18, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, - 0x73, 0x6b, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x4e, 0x0a, 0x15, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x22, 0x3f, 0x0a, 0x16, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x2e, 0x0a, 0x1c, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, 0x65, - 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, - 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x47, 0x0a, 0x1a, 0x4c, 0x6f, 0x6f, - 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x30, 0x0a, 0x1c, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4b, - 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x70, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x70, 0x63, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x46, 0x0a, 0x1a, - 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, - 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x15, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x22, 0x25, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x1d, - 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, - 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, - 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x0f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, - 0x22, 0x4e, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x5f, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x62, 0x79, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x3d, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x22, 0x66, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x45, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x64, 0x0a, 0x1b, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x52, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x22, 0x37, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x17, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x0a, - 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x11, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x39, - 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x3e, 0x0a, 0x1d, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x1e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, - 0x79, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x54, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, - 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x54, 0x61, 0x67, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x11, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, - 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x3c, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, - 0x73, 0x6b, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, - 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x11, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x62, 0x79, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x42, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x3b, 0x0a, 0x1a, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x6c, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x19, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x69, - 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x3d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, - 0x13, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x2a, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x6e, - 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, - 0x6e, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x61, 0x6e, 0x69, 0x63, - 0x22, 0x27, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x47, 0x0a, 0x16, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, - 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x19, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x22, 0x4f, 0x0a, 0x1a, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, - 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x54, 0x0a, 0x1b, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x35, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x22, 0x57, 0x0a, 0x1c, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x22, 0x40, 0x0a, 0x16, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x54, - 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, - 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x04, 0x74, 0x61, - 0x73, 0x6b, 0x22, 0x43, 0x0a, 0x17, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, - 0x08, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x73, 0x0a, 0x22, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x71, 0x0a, 0x23, - 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x13, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x66, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x41, 0x72, 0x67, 0x73, - 0x12, 0x45, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x22, 0x76, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0xae, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, - 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, - 0x22, 0x56, 0x0a, 0x1f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0b, 0x73, 0x75, 0x62, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x65, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0xb4, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x41, - 0x72, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, - 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x34, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb4, 0x01, 0x0a, - 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, - 0x61, 0x73, 0x6b, 0x73, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, - 0x72, 0x67, 0x73, 0x22, 0x59, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, - 0x6b, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x69, - 0x0a, 0x23, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x69, 0x0a, 0x20, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x45, 0x0a, - 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x75, 0x62, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x23, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x23, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, - 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x22, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x22, 0x6b, 0x0a, 0x24, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x65, 0x0a, 0x28, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x41, 0x72, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x65, 0x22, - 0xa6, 0x01, 0x0a, 0x2b, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x2b, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x50, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, - 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x67, 0x73, 0x52, - 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x2a, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, - 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x55, 0x0a, 0x18, 0x65, 0x73, 0x74, - 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x22, 0x7b, 0x0a, 0x2c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x62, 0x0a, - 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x41, - 0x72, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f, 0x64, 0x61, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x44, 0x61, 0x79, - 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, - 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x22, - 0xbd, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, - 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, - 0x69, 0x0a, 0x24, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, 0x11, 0x63, 0x72, 0x69, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x52, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x6f, 0x0a, 0x26, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x69, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x69, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5d, 0x0a, 0x21, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x72, 0x67, 0x73, - 0x12, 0x38, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x66, 0x0a, 0x24, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x24, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, - 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, - 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, - 0x6f, 0x0a, 0x23, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, 0x0a, 0x11, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x0f, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, - 0x22, 0x6d, 0x0a, 0x25, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x30, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x63, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3e, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x61, 0x73, - 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x61, 0x0a, 0x1f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3b, 0x0a, 0x29, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x29, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x22, 0x60, 0x0a, 0x28, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, - 0x16, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x2a, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x49, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5a, 0x0a, 0x1c, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x72, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xef, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, - 0x74, 0x52, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x1f, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, - 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, - 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x44, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, 0x3e, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, - 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x69, 0x73, - 0x5f, 0x61, 0x74, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x22, 0x63, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, - 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5d, 0x0a, - 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x41, 0x72, 0x67, - 0x73, 0x12, 0x39, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x23, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0xb7, 0x01, 0x0a, - 0x23, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x48, 0x0a, 0x0a, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, - 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, 0x67, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, - 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x41, 0x0a, 0x0e, - 0x64, 0x61, 0x79, 0x73, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x64, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x64, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x22, - 0x6b, 0x0a, 0x24, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x65, 0x0a, 0x18, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x41, 0x72, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x11, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, - 0x69, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x9f, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, - 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x40, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, - 0x73, 0x22, 0x3b, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x5b, - 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, - 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x63, 0x0a, 0x1a, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, - 0x66, 0x66, 0x6f, 0x72, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x10, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x22, 0xb7, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x61, - 0x63, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, - 0x66, 0x66, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x42, - 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, - 0x6f, 0x72, 0x74, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, - 0x67, 0x73, 0x22, 0x5f, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x66, 0x66, 0x6f, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, - 0x6f, 0x72, 0x74, 0x22, 0x5f, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x64, 0x22, 0x37, 0x0a, 0x25, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x25, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4a, - 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x72, 0x67, 0x73, 0x52, - 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, 0x22, 0x51, 0x0a, 0x24, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x6f, 0x0a, - 0x26, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x9e, - 0x01, 0x0a, 0x2c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x41, 0x72, 0x67, 0x73, 0x12, - 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, - 0x41, 0x0a, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x22, 0xdb, 0x01, 0x0a, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x54, 0x0a, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, - 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, - 0x73, 0x41, 0x72, 0x67, 0x73, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x72, 0x67, 0x73, - 0x22, 0x8f, 0x01, 0x0a, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x5d, 0x0a, 0x1c, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x79, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x30, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x39, 0x0a, 0x27, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x27, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x58, 0x0a, 0x26, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x73, 0x0a, 0x28, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, - 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x47, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, - 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, - 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, - 0xb9, 0x01, 0x0a, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x37, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x06, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x2f, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x36, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x65, 0x0a, 0x2d, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x14, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x4d, 0x0a, 0x2d, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, - 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x22, 0xac, 0x08, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x0c, 0x74, - 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x65, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x12, 0x3b, 0x0a, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x0f, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x3a, - 0x0a, 0x0d, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x23, - 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x14, 0x61, 0x6c, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x13, - 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, - 0x69, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, - 0x4d, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3f, - 0x0a, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x68, 0x61, 0x73, 0x65, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x42, 0x79, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, - 0x49, 0x0a, 0x10, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x61, - 0x74, 0x72, 0x69, 0x78, 0x22, 0xa9, 0x04, 0x0a, 0x09, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, - 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x36, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x52, - 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x45, 0x6d, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, - 0x22, 0xeb, 0x06, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x6d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x65, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x64, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, - 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x75, - 0x61, 0x6c, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x73, 0x75, 0x62, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x31, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, - 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x49, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x14, 0x22, 0xf1, - 0x02, 0x0a, 0x08, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, - 0x34, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x36, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0e, 0x63, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2d, 0x0a, - 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x3d, 0x0a, 0x0e, - 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x22, 0x93, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x70, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x70, 0x63, - 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, - 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0xd2, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x08, - 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x12, 0x2c, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, - 0x23, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, - 0x74, 0x61, 0x73, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x01, - 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x07, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0e, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x23, - 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x74, - 0x61, 0x73, 0x6b, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xda, 0x01, 0x0a, - 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x3f, 0x0a, 0x0e, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x0c, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0xee, 0x01, 0x0a, 0x0e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x6e, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x64, 0x75, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x64, 0x75, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x65, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x65, 0x73, 0x74, - 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x0d, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0x3d, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x2a, 0xa1, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, - 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, - 0x18, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, - 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4e, - 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0x04, 0x2a, 0xb1, 0x01, 0x0a, 0x0f, 0x4d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x4d, - 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, - 0x18, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4d, - 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1e, 0x0a, - 0x1a, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xa8, 0x01, 0x0a, 0x0a, - 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, - 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x53, 0x4b, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x44, 0x4f, 0x10, 0x01, 0x12, 0x1b, 0x0a, - 0x17, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, - 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, - 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, - 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x17, 0x0a, - 0x13, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x90, 0x01, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x41, 0x53, 0x4b, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x50, - 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, - 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x53, 0x4b, 0x5f, - 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x12, - 0x18, 0x0a, 0x14, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, - 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x2a, 0xfd, 0x01, 0x0a, 0x11, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x23, 0x0a, 0x1f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x50, - 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4d, 0x49, 0x4c, 0x45, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x41, 0x44, 0x44, - 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x53, 0x4b, - 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x50, - 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x32, 0x8e, 0x23, 0x0a, 0x0f, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, - 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x42, - 0x79, 0x49, 0x64, 0x12, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, - 0x0a, 0x13, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, 0x70, 0x63, 0x12, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x42, 0x79, 0x55, 0x70, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x42, 0x79, 0x55, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, - 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, - 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, - 0x12, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, - 0x0a, 0x0f, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x75, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x1b, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x75, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x10, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x53, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, 0x49, - 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x6e, - 0x69, 0x63, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, - 0x6e, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, - 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x16, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x12, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x10, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x20, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x62, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x12, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x42, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x42, - 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x54, 0x61, 0x73, 0x6b, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9e, 0x01, 0x0a, 0x27, 0x52, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, - 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x37, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa1, 0x01, 0x0a, 0x28, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, - 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x45, 0x6d, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x7d, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, - 0x12, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, - 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x73, 0x55, 0x6e, 0x74, - 0x69, 0x6c, 0x44, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x71, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, - 0x49, 0x73, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, - 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x95, 0x01, 0x0a, 0x24, 0x52, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, - 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x12, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x7a, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x54, 0x61, - 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, - 0x19, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, - 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x75, - 0x62, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, - 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x70, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, - 0x16, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x67, - 0x72, 0x61, 0x70, 0x68, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x2f, - 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x67, 0x72, 0x61, 0x70, 0x68, 0x73, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_generated_service_proto_rawDesc = "" + + "\n" + + "\x17generated/service.proto\x12\aservice\x1a\x1egoogle/protobuf/wrappers.proto\"s\n" + + "\x0eListOfEmployee\x120\n" + + "\x04list\x18\x01 \x01(\v2\x1c.service.ListOfEmployee.ListR\x04list\x1a/\n" + + "\x04List\x12'\n" + + "\x05items\x18\x01 \x03(\v2\x11.service.EmployeeR\x05items\"V\n" + + "\tListOfInt\x12+\n" + + "\x04list\x18\x01 \x01(\v2\x17.service.ListOfInt.ListR\x04list\x1a\x1c\n" + + "\x04List\x12\x14\n" + + "\x05items\x18\x01 \x03(\x05R\x05items\"\x8b\x01\n" + + "\x16ListOfListOfListOfTask\x128\n" + + "\x04list\x18\x01 \x01(\v2$.service.ListOfListOfListOfTask.ListR\x04list\x1a7\n" + + "\x04List\x12/\n" + + "\x05items\x18\x01 \x03(\v2\x19.service.ListOfListOfTaskR\x05items\"\x88\x01\n" + + "\x15ListOfListOfMilestone\x127\n" + + "\x04list\x18\x01 \x01(\v2#.service.ListOfListOfMilestone.ListR\x04list\x1a6\n" + + "\x04List\x12.\n" + + "\x05items\x18\x01 \x03(\v2\x18.service.ListOfMilestoneR\x05items\"\x82\x01\n" + + "\x13ListOfListOfProject\x125\n" + + "\x04list\x18\x01 \x01(\v2!.service.ListOfListOfProject.ListR\x04list\x1a4\n" + + "\x04List\x12,\n" + + "\x05items\x18\x01 \x03(\v2\x16.service.ListOfProjectR\x05items\"\x9a\x01\n" + + "\x1bListOfListOfProjectResource\x12=\n" + + "\x04list\x18\x01 \x01(\v2).service.ListOfListOfProjectResource.ListR\x04list\x1a<\n" + + "\x04List\x124\n" + + "\x05items\x18\x01 \x03(\v2\x1e.service.ListOfProjectResourceR\x05items\"\x7f\n" + + "\x12ListOfListOfString\x124\n" + + "\x04list\x18\x01 \x01(\v2 .service.ListOfListOfString.ListR\x04list\x1a3\n" + + "\x04List\x12+\n" + + "\x05items\x18\x01 \x03(\v2\x15.service.ListOfStringR\x05items\"y\n" + + "\x10ListOfListOfTask\x122\n" + + "\x04list\x18\x01 \x01(\v2\x1e.service.ListOfListOfTask.ListR\x04list\x1a1\n" + + "\x04List\x12)\n" + + "\x05items\x18\x01 \x03(\v2\x13.service.ListOfTaskR\x05items\"v\n" + + "\x0fListOfMilestone\x121\n" + + "\x04list\x18\x01 \x01(\v2\x1d.service.ListOfMilestone.ListR\x04list\x1a0\n" + + "\x04List\x12(\n" + + "\x05items\x18\x01 \x03(\v2\x12.service.MilestoneR\x05items\"p\n" + + "\rListOfProject\x12/\n" + + "\x04list\x18\x01 \x01(\v2\x1b.service.ListOfProject.ListR\x04list\x1a.\n" + + "\x04List\x12&\n" + + "\x05items\x18\x01 \x03(\v2\x10.service.ProjectR\x05items\"\x88\x01\n" + + "\x15ListOfProjectResource\x127\n" + + "\x04list\x18\x01 \x01(\v2#.service.ListOfProjectResource.ListR\x04list\x1a6\n" + + "\x04List\x12.\n" + + "\x05items\x18\x01 \x03(\v2\x18.service.ProjectResourceR\x05items\"\\\n" + + "\fListOfString\x12.\n" + + "\x04list\x18\x01 \x01(\v2\x1a.service.ListOfString.ListR\x04list\x1a\x1c\n" + + "\x04List\x12\x14\n" + + "\x05items\x18\x01 \x03(\tR\x05items\"g\n" + + "\n" + + "ListOfTask\x12,\n" + + "\x04list\x18\x01 \x01(\v2\x18.service.ListOfTask.ListR\x04list\x1a+\n" + + "\x04List\x12#\n" + + "\x05items\x18\x01 \x03(\v2\r.service.TaskR\x05items\"-\n" + + "\x1bLookupProjectByIdRequestKey\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"T\n" + + "\x18LookupProjectByIdRequest\x128\n" + + "\x04keys\x18\x01 \x03(\v2$.service.LookupProjectByIdRequestKeyR\x04keys\"E\n" + + "\x19LookupProjectByIdResponse\x12(\n" + + "\x06result\x18\x01 \x03(\v2\x10.service.ProjectR\x06result\"/\n" + + "\x1dLookupMilestoneByIdRequestKey\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"X\n" + + "\x1aLookupMilestoneByIdRequest\x12:\n" + + "\x04keys\x18\x01 \x03(\v2&.service.LookupMilestoneByIdRequestKeyR\x04keys\"I\n" + + "\x1bLookupMilestoneByIdResponse\x12*\n" + + "\x06result\x18\x01 \x03(\v2\x12.service.MilestoneR\x06result\"*\n" + + "\x18LookupTaskByIdRequestKey\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"N\n" + + "\x15LookupTaskByIdRequest\x125\n" + + "\x04keys\x18\x01 \x03(\v2!.service.LookupTaskByIdRequestKeyR\x04keys\"?\n" + + "\x16LookupTaskByIdResponse\x12%\n" + + "\x06result\x18\x01 \x03(\v2\r.service.TaskR\x06result\".\n" + + "\x1cLookupEmployeeByIdRequestKey\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"V\n" + + "\x19LookupEmployeeByIdRequest\x129\n" + + "\x04keys\x18\x01 \x03(\v2%.service.LookupEmployeeByIdRequestKeyR\x04keys\"G\n" + + "\x1aLookupEmployeeByIdResponse\x12)\n" + + "\x06result\x18\x01 \x03(\v2\x11.service.EmployeeR\x06result\"0\n" + + "\x1cLookupProductByUpcRequestKey\x12\x10\n" + + "\x03upc\x18\x01 \x01(\tR\x03upc\"V\n" + + "\x19LookupProductByUpcRequest\x129\n" + + "\x04keys\x18\x01 \x03(\v2%.service.LookupProductByUpcRequestKeyR\x04keys\"F\n" + + "\x1aLookupProductByUpcResponse\x12(\n" + + "\x06result\x18\x01 \x03(\v2\x10.service.ProductR\x06result\"\x16\n" + + "\x14QueryProjectsRequest\"E\n" + + "\x15QueryProjectsResponse\x12,\n" + + "\bprojects\x18\x01 \x03(\v2\x10.service.ProjectR\bprojects\"%\n" + + "\x13QueryProjectRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"B\n" + + "\x14QueryProjectResponse\x12*\n" + + "\aproject\x18\x01 \x01(\v2\x10.service.ProjectR\aproject\"\x1d\n" + + "\x1bQueryProjectStatusesRequest\"a\n" + + "\x1cQueryProjectStatusesResponse\x12A\n" + + "\x10project_statuses\x18\x01 \x03(\x0e2\x16.service.ProjectStatusR\x0fprojectStatuses\"N\n" + + "\x1cQueryProjectsByStatusRequest\x12.\n" + + "\x06status\x18\x01 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"_\n" + + "\x1dQueryProjectsByStatusResponse\x12>\n" + + "\x12projects_by_status\x18\x01 \x03(\v2\x10.service.ProjectR\x10projectsByStatus\"=\n" + + "\x1cQueryProjectResourcesRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"f\n" + + "\x1dQueryProjectResourcesResponse\x12E\n" + + "\x11project_resources\x18\x01 \x03(\v2\x18.service.ProjectResourceR\x10projectResources\"2\n" + + "\x1aQuerySearchProjectsRequest\x12\x14\n" + + "\x05query\x18\x01 \x01(\tR\x05query\"d\n" + + "\x1bQuerySearchProjectsResponse\x12E\n" + + "\x0fsearch_projects\x18\x01 \x03(\v2\x1c.service.ProjectSearchResultR\x0esearchProjects\"7\n" + + "\x16QueryMilestonesRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"M\n" + + "\x17QueryMilestonesResponse\x122\n" + + "\n" + + "milestones\x18\x01 \x03(\v2\x12.service.MilestoneR\n" + + "milestones\"2\n" + + "\x11QueryTasksRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"9\n" + + "\x12QueryTasksResponse\x12#\n" + + "\x05tasks\x18\x01 \x03(\v2\r.service.TaskR\x05tasks\">\n" + + "\x1dQueryProjectActivitiesRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"i\n" + + "\x1eQueryProjectActivitiesResponse\x12G\n" + + "\x12project_activities\x18\x01 \x03(\v2\x18.service.ProjectActivityR\x11projectActivities\"\x19\n" + + "\x17QueryProjectTagsRequest\"T\n" + + "\x18QueryProjectTagsResponse\x128\n" + + "\fproject_tags\x18\x01 \x01(\v2\x15.service.ListOfStringR\vprojectTags\"\x1e\n" + + "\x1cQueryArchivedProjectsRequest\"^\n" + + "\x1dQueryArchivedProjectsResponse\x12=\n" + + "\x11archived_projects\x18\x01 \x03(\v2\x10.service.ProjectR\x10archivedProjects\"<\n" + + "\x1bQueryTasksByPriorityRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"e\n" + + "\x1cQueryTasksByPriorityResponse\x12E\n" + + "\x11tasks_by_priority\x18\x01 \x01(\v2\x19.service.ListOfListOfTaskR\x0ftasksByPriority\";\n" + + "\x1aQueryResourceMatrixRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\"l\n" + + "\x1bQueryResourceMatrixResponse\x12M\n" + + "\x0fresource_matrix\x18\x01 \x01(\v2$.service.ListOfListOfProjectResourceR\x0eresourceMatrix\"\x19\n" + + "\x17QueryKillServiceRequest\"=\n" + + "\x18QueryKillServiceResponse\x12!\n" + + "\fkill_service\x18\x01 \x01(\bR\vkillService\"\x13\n" + + "\x11QueryPanicRequest\"*\n" + + "\x12QueryPanicResponse\x12\x14\n" + + "\x05panic\x18\x01 \x01(\bR\x05panic\"'\n" + + "\x15QueryNodesByIdRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"G\n" + + "\x16QueryNodesByIdResponse\x12-\n" + + "\vnodes_by_id\x18\x01 \x03(\v2\r.service.NodeR\tnodesById\"L\n" + + "\x19MutationAddProjectRequest\x12/\n" + + "\aproject\x18\x01 \x01(\v2\x15.service.ProjectInputR\aproject\"O\n" + + "\x1aMutationAddProjectResponse\x121\n" + + "\vadd_project\x18\x01 \x01(\v2\x10.service.ProjectR\n" + + "addProject\"T\n" + + "\x1bMutationAddMilestoneRequest\x125\n" + + "\tmilestone\x18\x01 \x01(\v2\x17.service.MilestoneInputR\tmilestone\"W\n" + + "\x1cMutationAddMilestoneResponse\x127\n" + + "\radd_milestone\x18\x01 \x01(\v2\x12.service.MilestoneR\faddMilestone\"@\n" + + "\x16MutationAddTaskRequest\x12&\n" + + "\x04task\x18\x01 \x01(\v2\x12.service.TaskInputR\x04task\"C\n" + + "\x17MutationAddTaskResponse\x12(\n" + + "\badd_task\x18\x01 \x01(\v2\r.service.TaskR\aaddTask\"s\n" + + "\"MutationUpdateProjectStatusRequest\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\x12.\n" + + "\x06status\x18\x02 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"q\n" + + "#MutationUpdateProjectStatusResponse\x12J\n" + + "\x15update_project_status\x18\x01 \x01(\v2\x16.service.ProjectUpdateR\x13updateProjectStatus\"f\n" + + "\x1dResolveProjectSubProjectsArgs\x12E\n" + + "\x10include_archived\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x0fincludeArchived\"v\n" + + " ResolveProjectSubProjectsContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12.\n" + + "\x06status\x18\x03 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"\xae\x01\n" + + " ResolveProjectSubProjectsRequest\x12C\n" + + "\acontext\x18\x01 \x03(\v2).service.ResolveProjectSubProjectsContextR\acontext\x12E\n" + + "\n" + + "field_args\x18\x02 \x01(\v2&.service.ResolveProjectSubProjectsArgsR\tfieldArgs\"V\n" + + "\x1fResolveProjectSubProjectsResult\x123\n" + + "\fsub_projects\x18\x01 \x03(\v2\x10.service.ProjectR\vsubProjects\"e\n" + + "!ResolveProjectSubProjectsResponse\x12@\n" + + "\x06result\x18\x01 \x03(\v2(.service.ResolveProjectSubProjectsResultR\x06result\"\xb4\x01\n" + + "\x1fResolveProjectFilteredTasksArgs\x12+\n" + + "\x06status\x18\x01 \x01(\x0e2\x13.service.TaskStatusR\x06status\x121\n" + + "\bpriority\x18\x02 \x01(\x0e2\x15.service.TaskPriorityR\bpriority\x121\n" + + "\x05limit\x18\x03 \x01(\v2\x1b.google.protobuf.Int32ValueR\x05limit\"4\n" + + "\"ResolveProjectFilteredTasksContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"\xb4\x01\n" + + "\"ResolveProjectFilteredTasksRequest\x12E\n" + + "\acontext\x18\x01 \x03(\v2+.service.ResolveProjectFilteredTasksContextR\acontext\x12G\n" + + "\n" + + "field_args\x18\x02 \x01(\v2(.service.ResolveProjectFilteredTasksArgsR\tfieldArgs\"Y\n" + + "!ResolveProjectFilteredTasksResult\x124\n" + + "\x0efiltered_tasks\x18\x01 \x03(\v2\r.service.TaskR\rfilteredTasks\"i\n" + + "#ResolveProjectFilteredTasksResponse\x12B\n" + + "\x06result\x18\x01 \x03(\v2*.service.ResolveProjectFilteredTasksResultR\x06result\"i\n" + + " ResolveProjectCompletionRateArgs\x12E\n" + + "\x10include_subtasks\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x0fincludeSubtasks\"\xdb\x01\n" + + "#ResolveProjectCompletionRateContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12;\n" + + "\n" + + "start_date\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueR\tstartDate\x127\n" + + "\bend_date\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x12.\n" + + "\x06status\x18\x04 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"\xb7\x01\n" + + "#ResolveProjectCompletionRateRequest\x12F\n" + + "\acontext\x18\x01 \x03(\v2,.service.ResolveProjectCompletionRateContextR\acontext\x12H\n" + + "\n" + + "field_args\x18\x02 \x01(\v2).service.ResolveProjectCompletionRateArgsR\tfieldArgs\"M\n" + + "\"ResolveProjectCompletionRateResult\x12'\n" + + "\x0fcompletion_rate\x18\x01 \x01(\x01R\x0ecompletionRate\"k\n" + + "$ResolveProjectCompletionRateResponse\x12C\n" + + "\x06result\x18\x01 \x03(\v2+.service.ResolveProjectCompletionRateResultR\x06result\"e\n" + + "(ResolveProjectEstimatedDaysRemainingArgs\x129\n" + + "\tfrom_date\x18\x01 \x01(\v2\x1c.google.protobuf.StringValueR\bfromDate\"\xa6\x01\n" + + "+ResolveProjectEstimatedDaysRemainingContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x127\n" + + "\bend_date\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x12.\n" + + "\x06status\x18\x03 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"\xcf\x01\n" + + "+ResolveProjectEstimatedDaysRemainingRequest\x12N\n" + + "\acontext\x18\x01 \x03(\v24.service.ResolveProjectEstimatedDaysRemainingContextR\acontext\x12P\n" + + "\n" + + "field_args\x18\x02 \x01(\v21.service.ResolveProjectEstimatedDaysRemainingArgsR\tfieldArgs\"\x83\x01\n" + + "*ResolveProjectEstimatedDaysRemainingResult\x12U\n" + + "\x18estimated_days_remaining\x18\x01 \x01(\v2\x1b.google.protobuf.Int32ValueR\x16estimatedDaysRemaining\"{\n" + + ",ResolveProjectEstimatedDaysRemainingResponse\x12K\n" + + "\x06result\x18\x01 \x03(\v23.service.ResolveProjectEstimatedDaysRemainingResultR\x06result\"b\n" + + "\"ResolveProjectCriticalDeadlineArgs\x12<\n" + + "\vwithin_days\x18\x01 \x01(\v2\x1b.google.protobuf.Int32ValueR\n" + + "withinDays\"\x9b\x01\n" + + "%ResolveProjectCriticalDeadlineContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + + "\x06status\x18\x02 \x01(\x0e2\x16.service.ProjectStatusR\x06status\x122\n" + + "\n" + + "milestones\x18\x03 \x03(\v2\x12.service.MilestoneR\n" + + "milestones\"\xbd\x01\n" + + "%ResolveProjectCriticalDeadlineRequest\x12H\n" + + "\acontext\x18\x01 \x03(\v2..service.ResolveProjectCriticalDeadlineContextR\acontext\x12J\n" + + "\n" + + "field_args\x18\x02 \x01(\v2+.service.ResolveProjectCriticalDeadlineArgsR\tfieldArgs\"i\n" + + "$ResolveProjectCriticalDeadlineResult\x12A\n" + + "\x11critical_deadline\x18\x01 \x01(\v2\x14.service.TimestampedR\x10criticalDeadline\"o\n" + + "&ResolveProjectCriticalDeadlineResponse\x12E\n" + + "\x06result\x18\x01 \x03(\v2-.service.ResolveProjectCriticalDeadlineResultR\x06result\"]\n" + + "!ResolveProjectTopPriorityItemArgs\x128\n" + + "\bcategory\x18\x01 \x01(\v2\x1c.google.protobuf.StringValueR\bcategory\"f\n" + + "$ResolveProjectTopPriorityItemContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + + "\x06status\x18\x02 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"\xba\x01\n" + + "$ResolveProjectTopPriorityItemRequest\x12G\n" + + "\acontext\x18\x01 \x03(\v2-.service.ResolveProjectTopPriorityItemContextR\acontext\x12I\n" + + "\n" + + "field_args\x18\x02 \x01(\v2*.service.ResolveProjectTopPriorityItemArgsR\tfieldArgs\"o\n" + + "#ResolveProjectTopPriorityItemResult\x12H\n" + + "\x11top_priority_item\x18\x01 \x01(\v2\x1c.service.ProjectSearchResultR\x0ftopPriorityItem\"m\n" + + "%ResolveProjectTopPriorityItemResponse\x12D\n" + + "\x06result\x18\x01 \x03(\v2,.service.ResolveProjectTopPriorityItemResultR\x06result\"0\n" + + "\x1eResolveProjectTaskCountContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"c\n" + + "\x1eResolveProjectTaskCountRequest\x12A\n" + + "\acontext\x18\x01 \x03(\v2'.service.ResolveProjectTaskCountContextR\acontext\">\n" + + "\x1dResolveProjectTaskCountResult\x12\x1d\n" + + "\n" + + "task_count\x18\x01 \x01(\x05R\ttaskCount\"a\n" + + "\x1fResolveProjectTaskCountResponse\x12>\n" + + "\x06result\x18\x01 \x03(\v2&.service.ResolveProjectTaskCountResultR\x06result\";\n" + + ")ResolveProjectActiveMilestoneCountContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"y\n" + + ")ResolveProjectActiveMilestoneCountRequest\x12L\n" + + "\acontext\x18\x01 \x03(\v22.service.ResolveProjectActiveMilestoneCountContextR\acontext\"`\n" + + "(ResolveProjectActiveMilestoneCountResult\x124\n" + + "\x16active_milestone_count\x18\x01 \x01(\x05R\x14activeMilestoneCount\"w\n" + + "*ResolveProjectActiveMilestoneCountResponse\x12I\n" + + "\x06result\x18\x01 \x03(\v21.service.ResolveProjectActiveMilestoneCountResultR\x06result\"Z\n" + + "\x1cResolveMilestoneIsAtRiskArgs\x12:\n" + + "\tthreshold\x18\x01 \x01(\v2\x1c.google.protobuf.DoubleValueR\tthreshold\"\xef\x01\n" + + "\x1fResolveMilestoneIsAtRiskContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x127\n" + + "\bend_date\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x120\n" + + "\x06status\x18\x03 \x01(\x0e2\x18.service.MilestoneStatusR\x06status\x12Q\n" + + "\x15completion_percentage\x18\x04 \x01(\v2\x1c.google.protobuf.DoubleValueR\x14completionPercentage\"\xab\x01\n" + + "\x1fResolveMilestoneIsAtRiskRequest\x12B\n" + + "\acontext\x18\x01 \x03(\v2(.service.ResolveMilestoneIsAtRiskContextR\acontext\x12D\n" + + "\n" + + "field_args\x18\x02 \x01(\v2%.service.ResolveMilestoneIsAtRiskArgsR\tfieldArgs\">\n" + + "\x1eResolveMilestoneIsAtRiskResult\x12\x1c\n" + + "\n" + + "is_at_risk\x18\x01 \x01(\bR\bisAtRisk\"c\n" + + " ResolveMilestoneIsAtRiskResponse\x12?\n" + + "\x06result\x18\x01 \x03(\v2'.service.ResolveMilestoneIsAtRiskResultR\x06result\"]\n" + + " ResolveMilestoneDaysUntilDueArgs\x129\n" + + "\tfrom_date\x18\x01 \x01(\v2\x1c.google.protobuf.StringValueR\bfromDate\"^\n" + + "#ResolveMilestoneDaysUntilDueContext\x127\n" + + "\bend_date\x18\x01 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\"\xb7\x01\n" + + "#ResolveMilestoneDaysUntilDueRequest\x12F\n" + + "\acontext\x18\x01 \x03(\v2,.service.ResolveMilestoneDaysUntilDueContextR\acontext\x12H\n" + + "\n" + + "field_args\x18\x02 \x01(\v2).service.ResolveMilestoneDaysUntilDueArgsR\tfieldArgs\"g\n" + + "\"ResolveMilestoneDaysUntilDueResult\x12A\n" + + "\x0edays_until_due\x18\x01 \x01(\v2\x1b.google.protobuf.Int32ValueR\fdaysUntilDue\"k\n" + + "$ResolveMilestoneDaysUntilDueResponse\x12C\n" + + "\x06result\x18\x01 \x03(\v2+.service.ResolveMilestoneDaysUntilDueResultR\x06result\"e\n" + + "\x18ResolveTaskIsBlockedArgs\x12I\n" + + "\x12check_dependencies\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x11checkDependencies\"Z\n" + + "\x1bResolveTaskIsBlockedContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12+\n" + + "\x06status\x18\x02 \x01(\x0e2\x13.service.TaskStatusR\x06status\"\x9f\x01\n" + + "\x1bResolveTaskIsBlockedRequest\x12>\n" + + "\acontext\x18\x01 \x03(\v2$.service.ResolveTaskIsBlockedContextR\acontext\x12@\n" + + "\n" + + "field_args\x18\x02 \x01(\v2!.service.ResolveTaskIsBlockedArgsR\tfieldArgs\";\n" + + "\x1aResolveTaskIsBlockedResult\x12\x1d\n" + + "\n" + + "is_blocked\x18\x01 \x01(\bR\tisBlocked\"[\n" + + "\x1cResolveTaskIsBlockedResponse\x12;\n" + + "\x06result\x18\x01 \x03(\v2#.service.ResolveTaskIsBlockedResultR\x06result\"c\n" + + "\x1aResolveTaskTotalEffortArgs\x12E\n" + + "\x10include_subtasks\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x0fincludeSubtasks\"\xb7\x01\n" + + "\x1dResolveTaskTotalEffortContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12E\n" + + "\x0festimated_hours\x18\x02 \x01(\v2\x1c.google.protobuf.DoubleValueR\x0eestimatedHours\x12?\n" + + "\factual_hours\x18\x03 \x01(\v2\x1c.google.protobuf.DoubleValueR\vactualHours\"\xa5\x01\n" + + "\x1dResolveTaskTotalEffortRequest\x12@\n" + + "\acontext\x18\x01 \x03(\v2&.service.ResolveTaskTotalEffortContextR\acontext\x12B\n" + + "\n" + + "field_args\x18\x02 \x01(\v2#.service.ResolveTaskTotalEffortArgsR\tfieldArgs\"_\n" + + "\x1cResolveTaskTotalEffortResult\x12?\n" + + "\ftotal_effort\x18\x01 \x01(\v2\x1c.google.protobuf.DoubleValueR\vtotalEffort\"_\n" + + "\x1eResolveTaskTotalEffortResponse\x12=\n" + + "\x06result\x18\x01 \x03(\v2%.service.ResolveTaskTotalEffortResultR\x06result\"\xaa\x01\n" + + "\"ResolveEmployeeCurrentWorkloadArgs\x12G\n" + + "\x11include_completed\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x10includeCompleted\x12;\n" + + "\n" + + "project_id\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueR\tprojectId\"7\n" + + "%ResolveEmployeeCurrentWorkloadContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\"\xbd\x01\n" + + "%ResolveEmployeeCurrentWorkloadRequest\x12H\n" + + "\acontext\x18\x01 \x03(\v2..service.ResolveEmployeeCurrentWorkloadContextR\acontext\x12J\n" + + "\n" + + "field_args\x18\x02 \x01(\v2+.service.ResolveEmployeeCurrentWorkloadArgsR\tfieldArgs\"Q\n" + + "$ResolveEmployeeCurrentWorkloadResult\x12)\n" + + "\x10current_workload\x18\x01 \x01(\x05R\x0fcurrentWorkload\"o\n" + + "&ResolveEmployeeCurrentWorkloadResponse\x12E\n" + + "\x06result\x18\x01 \x03(\v2-.service.ResolveEmployeeCurrentWorkloadResultR\x06result\"\x9e\x01\n" + + ",ResolveEmployeeAverageTaskCompletionDaysArgs\x12;\n" + + "\n" + + "project_id\x18\x01 \x01(\v2\x1c.google.protobuf.StringValueR\tprojectId\x121\n" + + "\bpriority\x18\x02 \x01(\x0e2\x15.service.TaskPriorityR\bpriority\"A\n" + + "/ResolveEmployeeAverageTaskCompletionDaysContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\"\xdb\x01\n" + + "/ResolveEmployeeAverageTaskCompletionDaysRequest\x12R\n" + + "\acontext\x18\x01 \x03(\v28.service.ResolveEmployeeAverageTaskCompletionDaysContextR\acontext\x12T\n" + + "\n" + + "field_args\x18\x02 \x01(\v25.service.ResolveEmployeeAverageTaskCompletionDaysArgsR\tfieldArgs\"\x8f\x01\n" + + ".ResolveEmployeeAverageTaskCompletionDaysResult\x12]\n" + + "\x1caverage_task_completion_days\x18\x01 \x01(\v2\x1c.google.protobuf.DoubleValueR\x19averageTaskCompletionDays\"\x83\x01\n" + + "0ResolveEmployeeAverageTaskCompletionDaysResponse\x12O\n" + + "\x06result\x18\x01 \x03(\v27.service.ResolveEmployeeAverageTaskCompletionDaysResultR\x06result\"9\n" + + "'ResolveEmployeeTotalProjectCountContext\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\"u\n" + + "'ResolveEmployeeTotalProjectCountRequest\x12J\n" + + "\acontext\x18\x01 \x03(\v20.service.ResolveEmployeeTotalProjectCountContextR\acontext\"X\n" + + "&ResolveEmployeeTotalProjectCountResult\x12.\n" + + "\x13total_project_count\x18\x01 \x01(\x05R\x11totalProjectCount\"s\n" + + "(ResolveEmployeeTotalProjectCountResponse\x12G\n" + + "\x06result\x18\x01 \x03(\v2/.service.ResolveEmployeeTotalProjectCountResultR\x06result\"\x83\x01\n" + + ".RequireEmployeeTaggedProjectSummaryByIdRequest\x12Q\n" + + "\acontext\x18\x01 \x03(\v27.service.RequireEmployeeTaggedProjectSummaryByIdContextR\acontext\"\xb9\x01\n" + + ".RequireEmployeeTaggedProjectSummaryByIdContext\x127\n" + + "\x03key\x18\x01 \x01(\v2%.service.LookupEmployeeByIdRequestKeyR\x03key\x12N\n" + + "\x06fields\x18\x02 \x01(\v26.service.RequireEmployeeTaggedProjectSummaryByIdFieldsR\x06fields\"\x81\x01\n" + + "/RequireEmployeeTaggedProjectSummaryByIdResponse\x12N\n" + + "\x06result\x18\x01 \x03(\v26.service.RequireEmployeeTaggedProjectSummaryByIdResultR\x06result\"e\n" + + "-RequireEmployeeTaggedProjectSummaryByIdResult\x124\n" + + "\x16tagged_project_summary\x18\x01 \x01(\tR\x14taggedProjectSummary\"M\n" + + "-RequireEmployeeTaggedProjectSummaryByIdFields\x12\x1c\n" + + "\texpertise\x18\x01 \x01(\tR\texpertise\"\xde\x01\n" + + "0RequireEmployeeFilteredProjectSummaryByIdRequest\x12S\n" + + "\acontext\x18\x01 \x03(\v29.service.RequireEmployeeFilteredProjectSummaryByIdContextR\acontext\x12U\n" + + "\n" + + "field_args\x18\x02 \x01(\v26.service.RequireEmployeeFilteredProjectSummaryByIdArgsR\tfieldArgs\"\xbd\x01\n" + + "0RequireEmployeeFilteredProjectSummaryByIdContext\x127\n" + + "\x03key\x18\x01 \x01(\v2%.service.LookupEmployeeByIdRequestKeyR\x03key\x12P\n" + + "\x06fields\x18\x02 \x01(\v28.service.RequireEmployeeFilteredProjectSummaryByIdFieldsR\x06fields\"\x85\x01\n" + + "1RequireEmployeeFilteredProjectSummaryByIdResponse\x12P\n" + + "\x06result\x18\x01 \x03(\v28.service.RequireEmployeeFilteredProjectSummaryByIdResultR\x06result\"k\n" + + "/RequireEmployeeFilteredProjectSummaryByIdResult\x128\n" + + "\x18filtered_project_summary\x18\x01 \x01(\tR\x16filteredProjectSummary\"O\n" + + "/RequireEmployeeFilteredProjectSummaryByIdFields\x12\x1c\n" + + "\texpertise\x18\x01 \x01(\tR\texpertise\"A\n" + + "-RequireEmployeeFilteredProjectSummaryByIdArgs\x12\x10\n" + + "\x03tag\x18\x01 \x01(\tR\x03tag\"\xac\b\n" + + "\aProject\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x12;\n" + + "\n" + + "start_date\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\tstartDate\x127\n" + + "\bend_date\x18\x05 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x12.\n" + + "\x06status\x18\x06 \x01(\x0e2\x16.service.ProjectStatusR\x06status\x124\n" + + "\fteam_members\x18\a \x03(\v2\x11.service.EmployeeR\vteamMembers\x12;\n" + + "\x10related_products\x18\b \x03(\v2\x10.service.ProductR\x0frelatedProducts\x12:\n" + + "\rmilestone_ids\x18\t \x01(\v2\x15.service.ListOfStringR\fmilestoneIds\x122\n" + + "\n" + + "milestones\x18\n" + + " \x03(\v2\x12.service.MilestoneR\n" + + "milestones\x12#\n" + + "\x05tasks\x18\v \x03(\v2\r.service.TaskR\x05tasks\x128\n" + + "\bprogress\x18\f \x01(\v2\x1c.google.protobuf.DoubleValueR\bprogress\x12)\n" + + "\x04tags\x18\r \x01(\v2\x15.service.ListOfStringR\x04tags\x12I\n" + + "\x14alternative_projects\x18\x0e \x01(\v2\x16.service.ListOfProjectR\x13alternativeProjects\x12:\n" + + "\fdependencies\x18\x0f \x01(\v2\x16.service.ListOfProjectR\fdependencies\x12M\n" + + "\x0fresource_groups\x18\x10 \x01(\v2$.service.ListOfListOfProjectResourceR\x0eresourceGroups\x12?\n" + + "\x0etasks_by_phase\x18\x11 \x01(\v2\x19.service.ListOfListOfTaskR\ftasksByPhase\x12I\n" + + "\x10milestone_groups\x18\x12 \x01(\v2\x1e.service.ListOfListOfMilestoneR\x0fmilestoneGroups\x12H\n" + + "\x0fpriority_matrix\x18\x13 \x01(\v2\x1f.service.ListOfListOfListOfTaskR\x0epriorityMatrix\"\xa9\x04\n" + + "\tMilestone\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" + + "\n" + + "project_id\x18\x02 \x01(\tR\tprojectId\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x12;\n" + + "\n" + + "start_date\x18\x05 \x01(\v2\x1c.google.protobuf.StringValueR\tstartDate\x127\n" + + "\bend_date\x18\x06 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x120\n" + + "\x06status\x18\a \x01(\x0e2\x18.service.MilestoneStatusR\x06status\x12Q\n" + + "\x15completion_percentage\x18\b \x01(\v2\x1c.google.protobuf.DoubleValueR\x14completionPercentage\x126\n" + + "\fdependencies\x18\t \x03(\v2\x12.service.MilestoneR\fdependencies\x12/\n" + + "\bsubtasks\x18\n" + + " \x01(\v2\x13.service.ListOfTaskR\bsubtasks\x125\n" + + "\treviewers\x18\v \x01(\v2\x17.service.ListOfEmployeeR\treviewers\"\xeb\x06\n" + + "\x04Task\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" + + "\n" + + "project_id\x18\x02 \x01(\tR\tprojectId\x12?\n" + + "\fmilestone_id\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\vmilestoneId\x12<\n" + + "\vassignee_id\x18\x04 \x01(\v2\x1b.google.protobuf.Int32ValueR\n" + + "assigneeId\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x06 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x121\n" + + "\bpriority\x18\a \x01(\x0e2\x15.service.TaskPriorityR\bpriority\x12+\n" + + "\x06status\x18\b \x01(\x0e2\x13.service.TaskStatusR\x06status\x12I\n" + + "\x0festimated_hours\x18\t \x01(\v2\x1c.google.protobuf.DoubleValueB\x02\x18\x01R\x0eestimatedHours\x12?\n" + + "\factual_hours\x18\n" + + " \x01(\v2\x1c.google.protobuf.DoubleValueR\vactualHours\x12;\n" + + "\n" + + "created_at\x18\v \x01(\v2\x1c.google.protobuf.StringValueR\tcreatedAt\x12?\n" + + "\fcompleted_at\x18\f \x01(\v2\x1c.google.protobuf.StringValueR\vcompletedAt\x12-\n" + + "\x06labels\x18\r \x01(\v2\x15.service.ListOfStringR\x06labels\x12/\n" + + "\bsubtasks\x18\x0e \x01(\v2\x13.service.ListOfTaskR\bsubtasks\x121\n" + + "\fdependencies\x18\x0f \x03(\v2\r.service.TaskR\fdependencies\x12'\n" + + "\x0fattachment_urls\x18\x10 \x03(\tR\x0eattachmentUrls\x125\n" + + "\freviewer_ids\x18\x11 \x01(\v2\x12.service.ListOfIntR\vreviewerIdsJ\x04\b\x12\x10\x14\"\xf1\x02\n" + + "\bEmployee\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x122\n" + + "\bprojects\x18\x02 \x01(\v2\x16.service.ListOfProjectR\bprojects\x124\n" + + "\x0eassigned_tasks\x18\x03 \x03(\v2\r.service.TaskR\rassignedTasks\x126\n" + + "\x0fcompleted_tasks\x18\x04 \x03(\v2\r.service.TaskR\x0ecompletedTasks\x12-\n" + + "\x06skills\x18\x05 \x01(\v2\x15.service.ListOfStringR\x06skills\x12=\n" + + "\x0ecertifications\x18\x06 \x01(\v2\x15.service.ListOfStringR\x0ecertifications\x12E\n" + + "\x0fproject_history\x18\a \x01(\v2\x1c.service.ListOfListOfProjectR\x0eprojectHistory\"\x93\x01\n" + + "\aProduct\x12\x10\n" + + "\x03upc\x18\x01 \x01(\tR\x03upc\x122\n" + + "\bprojects\x18\x02 \x01(\v2\x16.service.ListOfProjectR\bprojects\x12B\n" + + "\x0efeature_matrix\x18\x03 \x01(\v2\x1b.service.ListOfListOfStringR\rfeatureMatrix\"\xd2\x01\n" + + "\x0fProjectResource\x12/\n" + + "\bemployee\x18\x01 \x01(\v2\x11.service.EmployeeH\x00R\bemployee\x12,\n" + + "\aproduct\x18\x02 \x01(\v2\x10.service.ProductH\x00R\aproduct\x122\n" + + "\tmilestone\x18\x03 \x01(\v2\x12.service.MilestoneH\x00R\tmilestone\x12#\n" + + "\x04task\x18\x04 \x01(\v2\r.service.TaskH\x00R\x04taskB\a\n" + + "\x05value\"\xa5\x01\n" + + "\x13ProjectSearchResult\x12,\n" + + "\aproject\x18\x01 \x01(\v2\x10.service.ProjectH\x00R\aproject\x122\n" + + "\tmilestone\x18\x02 \x01(\v2\x12.service.MilestoneH\x00R\tmilestone\x12#\n" + + "\x04task\x18\x03 \x01(\v2\r.service.TaskH\x00R\x04taskB\a\n" + + "\x05value\"\xb4\x01\n" + + "\x0fProjectActivity\x12?\n" + + "\x0eproject_update\x18\x01 \x01(\v2\x16.service.ProjectUpdateH\x00R\rprojectUpdate\x122\n" + + "\tmilestone\x18\x02 \x01(\v2\x12.service.MilestoneH\x00R\tmilestone\x12#\n" + + "\x04task\x18\x03 \x01(\v2\r.service.TaskH\x00R\x04taskB\a\n" + + "\x05value\"\xda\x01\n" + + "\x04Node\x12,\n" + + "\aproject\x18\x01 \x01(\v2\x10.service.ProjectH\x00R\aproject\x122\n" + + "\tmilestone\x18\x02 \x01(\v2\x12.service.MilestoneH\x00R\tmilestone\x12#\n" + + "\x04task\x18\x03 \x01(\v2\r.service.TaskH\x00R\x04task\x12?\n" + + "\x0eproject_update\x18\x04 \x01(\v2\x16.service.ProjectUpdateH\x00R\rprojectUpdateB\n" + + "\n" + + "\binstance\"\x88\x02\n" + + "\fProjectInput\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x02 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x12;\n" + + "\n" + + "start_date\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\tstartDate\x127\n" + + "\bend_date\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\aendDate\x12.\n" + + "\x06status\x18\x05 \x01(\x0e2\x16.service.ProjectStatusR\x06status\"\xee\x01\n" + + "\x0eMilestoneInput\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x03 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x127\n" + + "\bdue_date\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\adueDate\x120\n" + + "\x06status\x18\x05 \x01(\x0e2\x18.service.MilestoneStatusR\x06status\"\xe3\x02\n" + + "\tTaskInput\x12\x1d\n" + + "\n" + + "project_id\x18\x01 \x01(\tR\tprojectId\x12<\n" + + "\vassignee_id\x18\x02 \x01(\v2\x1b.google.protobuf.Int32ValueR\n" + + "assigneeId\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12>\n" + + "\vdescription\x18\x04 \x01(\v2\x1c.google.protobuf.StringValueR\vdescription\x121\n" + + "\bpriority\x18\x05 \x01(\x0e2\x15.service.TaskPriorityR\bpriority\x12+\n" + + "\x06status\x18\x06 \x01(\x0e2\x13.service.TaskStatusR\x06status\x12E\n" + + "\x0festimated_hours\x18\a \x01(\v2\x1c.google.protobuf.DoubleValueR\x0eestimatedHours\"\x99\x02\n" + + "\rProjectUpdate\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" + + "\n" + + "project_id\x18\x02 \x01(\tR\tprojectId\x12\"\n" + + "\rupdated_by_id\x18\x03 \x01(\x05R\vupdatedById\x12;\n" + + "\vupdate_type\x18\x04 \x01(\x0e2\x1a.service.ProjectUpdateTypeR\n" + + "updateType\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x1c\n" + + "\ttimestamp\x18\x06 \x01(\tR\ttimestamp\x128\n" + + "\bmetadata\x18\a \x01(\v2\x1c.google.protobuf.StringValueR\bmetadata\"{\n" + + "\vTimestamped\x12,\n" + + "\aproject\x18\x01 \x01(\v2\x10.service.ProjectH\x00R\aproject\x122\n" + + "\tmilestone\x18\x02 \x01(\v2\x12.service.MilestoneH\x00R\tmilestoneB\n" + + "\n" + + "\binstance\"=\n" + + "\n" + + "Assignable\x12#\n" + + "\x04task\x18\x01 \x01(\v2\r.service.TaskH\x00R\x04taskB\n" + + "\n" + + "\binstance*\xa1\x01\n" + + "\rProjectStatus\x12\x1e\n" + + "\x1aPROJECT_STATUS_UNSPECIFIED\x10\x00\x12\x1b\n" + + "\x17PROJECT_STATUS_PLANNING\x10\x01\x12\x19\n" + + "\x15PROJECT_STATUS_ACTIVE\x10\x02\x12\x1c\n" + + "\x18PROJECT_STATUS_COMPLETED\x10\x03\x12\x1a\n" + + "\x16PROJECT_STATUS_ON_HOLD\x10\x04*\xb1\x01\n" + + "\x0fMilestoneStatus\x12 \n" + + "\x1cMILESTONE_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18MILESTONE_STATUS_PENDING\x10\x01\x12 \n" + + "\x1cMILESTONE_STATUS_IN_PROGRESS\x10\x02\x12\x1e\n" + + "\x1aMILESTONE_STATUS_COMPLETED\x10\x03\x12\x1c\n" + + "\x18MILESTONE_STATUS_DELAYED\x10\x04*\xa8\x01\n" + + "\n" + + "TaskStatus\x12\x1b\n" + + "\x17TASK_STATUS_UNSPECIFIED\x10\x00\x12\x14\n" + + "\x10TASK_STATUS_TODO\x10\x01\x12\x1b\n" + + "\x17TASK_STATUS_IN_PROGRESS\x10\x02\x12\x16\n" + + "\x12TASK_STATUS_REVIEW\x10\x03\x12\x19\n" + + "\x15TASK_STATUS_COMPLETED\x10\x04\x12\x17\n" + + "\x13TASK_STATUS_BLOCKED\x10\x05*\x90\x01\n" + + "\fTaskPriority\x12\x1d\n" + + "\x19TASK_PRIORITY_UNSPECIFIED\x10\x00\x12\x15\n" + + "\x11TASK_PRIORITY_LOW\x10\x01\x12\x18\n" + + "\x14TASK_PRIORITY_MEDIUM\x10\x02\x12\x16\n" + + "\x12TASK_PRIORITY_HIGH\x10\x03\x12\x18\n" + + "\x14TASK_PRIORITY_URGENT\x10\x04*\xfd\x01\n" + + "\x11ProjectUpdateType\x12#\n" + + "\x1fPROJECT_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12%\n" + + "!PROJECT_UPDATE_TYPE_STATUS_CHANGE\x10\x01\x12'\n" + + "#PROJECT_UPDATE_TYPE_MILESTONE_ADDED\x10\x02\x12%\n" + + "!PROJECT_UPDATE_TYPE_TASK_ASSIGNED\x10\x03\x12'\n" + + "#PROJECT_UPDATE_TYPE_PROGRESS_UPDATE\x10\x04\x12#\n" + + "\x1fPROJECT_UPDATE_TYPE_TEAM_CHANGE\x10\x052\xb5$\n" + + "\x0fProjectsService\x12_\n" + + "\x12LookupEmployeeById\x12\".service.LookupEmployeeByIdRequest\x1a#.service.LookupEmployeeByIdResponse\"\x00\x12b\n" + + "\x13LookupMilestoneById\x12#.service.LookupMilestoneByIdRequest\x1a$.service.LookupMilestoneByIdResponse\"\x00\x12_\n" + + "\x12LookupProductByUpc\x12\".service.LookupProductByUpcRequest\x1a#.service.LookupProductByUpcResponse\"\x00\x12\\\n" + + "\x11LookupProjectById\x12!.service.LookupProjectByIdRequest\x1a\".service.LookupProjectByIdResponse\"\x00\x12S\n" + + "\x0eLookupTaskById\x12\x1e.service.LookupTaskByIdRequest\x1a\x1f.service.LookupTaskByIdResponse\"\x00\x12e\n" + + "\x14MutationAddMilestone\x12$.service.MutationAddMilestoneRequest\x1a%.service.MutationAddMilestoneResponse\"\x00\x12_\n" + + "\x12MutationAddProject\x12\".service.MutationAddProjectRequest\x1a#.service.MutationAddProjectResponse\"\x00\x12V\n" + + "\x0fMutationAddTask\x12\x1f.service.MutationAddTaskRequest\x1a .service.MutationAddTaskResponse\"\x00\x12z\n" + + "\x1bMutationUpdateProjectStatus\x12+.service.MutationUpdateProjectStatusRequest\x1a,.service.MutationUpdateProjectStatusResponse\"\x00\x12h\n" + + "\x15QueryArchivedProjects\x12%.service.QueryArchivedProjectsRequest\x1a&.service.QueryArchivedProjectsResponse\"\x00\x12Y\n" + + "\x10QueryKillService\x12 .service.QueryKillServiceRequest\x1a!.service.QueryKillServiceResponse\"\x00\x12V\n" + + "\x0fQueryMilestones\x12\x1f.service.QueryMilestonesRequest\x1a .service.QueryMilestonesResponse\"\x00\x12S\n" + + "\x0eQueryNodesById\x12\x1e.service.QueryNodesByIdRequest\x1a\x1f.service.QueryNodesByIdResponse\"\x00\x12G\n" + + "\n" + + "QueryPanic\x12\x1a.service.QueryPanicRequest\x1a\x1b.service.QueryPanicResponse\"\x00\x12M\n" + + "\fQueryProject\x12\x1c.service.QueryProjectRequest\x1a\x1d.service.QueryProjectResponse\"\x00\x12k\n" + + "\x16QueryProjectActivities\x12&.service.QueryProjectActivitiesRequest\x1a'.service.QueryProjectActivitiesResponse\"\x00\x12h\n" + + "\x15QueryProjectResources\x12%.service.QueryProjectResourcesRequest\x1a&.service.QueryProjectResourcesResponse\"\x00\x12e\n" + + "\x14QueryProjectStatuses\x12$.service.QueryProjectStatusesRequest\x1a%.service.QueryProjectStatusesResponse\"\x00\x12Y\n" + + "\x10QueryProjectTags\x12 .service.QueryProjectTagsRequest\x1a!.service.QueryProjectTagsResponse\"\x00\x12P\n" + + "\rQueryProjects\x12\x1d.service.QueryProjectsRequest\x1a\x1e.service.QueryProjectsResponse\"\x00\x12h\n" + + "\x15QueryProjectsByStatus\x12%.service.QueryProjectsByStatusRequest\x1a&.service.QueryProjectsByStatusResponse\"\x00\x12b\n" + + "\x13QueryResourceMatrix\x12#.service.QueryResourceMatrixRequest\x1a$.service.QueryResourceMatrixResponse\"\x00\x12b\n" + + "\x13QuerySearchProjects\x12#.service.QuerySearchProjectsRequest\x1a$.service.QuerySearchProjectsResponse\"\x00\x12G\n" + + "\n" + + "QueryTasks\x12\x1a.service.QueryTasksRequest\x1a\x1b.service.QueryTasksResponse\"\x00\x12e\n" + + "\x14QueryTasksByPriority\x12$.service.QueryTasksByPriorityRequest\x1a%.service.QueryTasksByPriorityResponse\"\x00\x12\xa4\x01\n" + + ")RequireEmployeeFilteredProjectSummaryById\x129.service.RequireEmployeeFilteredProjectSummaryByIdRequest\x1a:.service.RequireEmployeeFilteredProjectSummaryByIdResponse\"\x00\x12\x9e\x01\n" + + "'RequireEmployeeTaggedProjectSummaryById\x127.service.RequireEmployeeTaggedProjectSummaryByIdRequest\x1a8.service.RequireEmployeeTaggedProjectSummaryByIdResponse\"\x00\x12\xa1\x01\n" + + "(ResolveEmployeeAverageTaskCompletionDays\x128.service.ResolveEmployeeAverageTaskCompletionDaysRequest\x1a9.service.ResolveEmployeeAverageTaskCompletionDaysResponse\"\x00\x12\x83\x01\n" + + "\x1eResolveEmployeeCurrentWorkload\x12..service.ResolveEmployeeCurrentWorkloadRequest\x1a/.service.ResolveEmployeeCurrentWorkloadResponse\"\x00\x12\x89\x01\n" + + " ResolveEmployeeTotalProjectCount\x120.service.ResolveEmployeeTotalProjectCountRequest\x1a1.service.ResolveEmployeeTotalProjectCountResponse\"\x00\x12}\n" + + "\x1cResolveMilestoneDaysUntilDue\x12,.service.ResolveMilestoneDaysUntilDueRequest\x1a-.service.ResolveMilestoneDaysUntilDueResponse\"\x00\x12q\n" + + "\x18ResolveMilestoneIsAtRisk\x12(.service.ResolveMilestoneIsAtRiskRequest\x1a).service.ResolveMilestoneIsAtRiskResponse\"\x00\x12\x8f\x01\n" + + "\"ResolveProjectActiveMilestoneCount\x122.service.ResolveProjectActiveMilestoneCountRequest\x1a3.service.ResolveProjectActiveMilestoneCountResponse\"\x00\x12}\n" + + "\x1cResolveProjectCompletionRate\x12,.service.ResolveProjectCompletionRateRequest\x1a-.service.ResolveProjectCompletionRateResponse\"\x00\x12\x83\x01\n" + + "\x1eResolveProjectCriticalDeadline\x12..service.ResolveProjectCriticalDeadlineRequest\x1a/.service.ResolveProjectCriticalDeadlineResponse\"\x00\x12\x95\x01\n" + + "$ResolveProjectEstimatedDaysRemaining\x124.service.ResolveProjectEstimatedDaysRemainingRequest\x1a5.service.ResolveProjectEstimatedDaysRemainingResponse\"\x00\x12z\n" + + "\x1bResolveProjectFilteredTasks\x12+.service.ResolveProjectFilteredTasksRequest\x1a,.service.ResolveProjectFilteredTasksResponse\"\x00\x12t\n" + + "\x19ResolveProjectSubProjects\x12).service.ResolveProjectSubProjectsRequest\x1a*.service.ResolveProjectSubProjectsResponse\"\x00\x12n\n" + + "\x17ResolveProjectTaskCount\x12'.service.ResolveProjectTaskCountRequest\x1a(.service.ResolveProjectTaskCountResponse\"\x00\x12\x80\x01\n" + + "\x1dResolveProjectTopPriorityItem\x12-.service.ResolveProjectTopPriorityItemRequest\x1a..service.ResolveProjectTopPriorityItemResponse\"\x00\x12e\n" + + "\x14ResolveTaskIsBlocked\x12$.service.ResolveTaskIsBlockedRequest\x1a%.service.ResolveTaskIsBlockedResponse\"\x00\x12k\n" + + "\x16ResolveTaskTotalEffort\x12&.service.ResolveTaskTotalEffortRequest\x1a'.service.ResolveTaskTotalEffortResponse\"\x00B:Z8github.com/wundergraph/cosmo/demo/pkg/subgraphs/projectsb\x06proto3" var ( file_generated_service_proto_rawDescOnce sync.Once - file_generated_service_proto_rawDescData = file_generated_service_proto_rawDesc + file_generated_service_proto_rawDescData []byte ) func file_generated_service_proto_rawDescGZIP() []byte { file_generated_service_proto_rawDescOnce.Do(func() { - file_generated_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_generated_service_proto_rawDescData) + file_generated_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_generated_service_proto_rawDesc), len(file_generated_service_proto_rawDesc))) }) return file_generated_service_proto_rawDescData } var file_generated_service_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_generated_service_proto_msgTypes = make([]protoimpl.MessageInfo, 173) +var file_generated_service_proto_msgTypes = make([]protoimpl.MessageInfo, 179) var file_generated_service_proto_goTypes = []any{ - (ProjectStatus)(0), // 0: service.ProjectStatus - (MilestoneStatus)(0), // 1: service.MilestoneStatus - (TaskStatus)(0), // 2: service.TaskStatus - (TaskPriority)(0), // 3: service.TaskPriority - (ProjectUpdateType)(0), // 4: service.ProjectUpdateType - (*ListOfEmployee)(nil), // 5: service.ListOfEmployee - (*ListOfInt)(nil), // 6: service.ListOfInt - (*ListOfListOfListOfTask)(nil), // 7: service.ListOfListOfListOfTask - (*ListOfListOfMilestone)(nil), // 8: service.ListOfListOfMilestone - (*ListOfListOfProject)(nil), // 9: service.ListOfListOfProject - (*ListOfListOfProjectResource)(nil), // 10: service.ListOfListOfProjectResource - (*ListOfListOfString)(nil), // 11: service.ListOfListOfString - (*ListOfListOfTask)(nil), // 12: service.ListOfListOfTask - (*ListOfMilestone)(nil), // 13: service.ListOfMilestone - (*ListOfProject)(nil), // 14: service.ListOfProject - (*ListOfProjectResource)(nil), // 15: service.ListOfProjectResource - (*ListOfString)(nil), // 16: service.ListOfString - (*ListOfTask)(nil), // 17: service.ListOfTask - (*LookupProjectByIdRequestKey)(nil), // 18: service.LookupProjectByIdRequestKey - (*LookupProjectByIdRequest)(nil), // 19: service.LookupProjectByIdRequest - (*LookupProjectByIdResponse)(nil), // 20: service.LookupProjectByIdResponse - (*LookupMilestoneByIdRequestKey)(nil), // 21: service.LookupMilestoneByIdRequestKey - (*LookupMilestoneByIdRequest)(nil), // 22: service.LookupMilestoneByIdRequest - (*LookupMilestoneByIdResponse)(nil), // 23: service.LookupMilestoneByIdResponse - (*LookupTaskByIdRequestKey)(nil), // 24: service.LookupTaskByIdRequestKey - (*LookupTaskByIdRequest)(nil), // 25: service.LookupTaskByIdRequest - (*LookupTaskByIdResponse)(nil), // 26: service.LookupTaskByIdResponse - (*LookupEmployeeByIdRequestKey)(nil), // 27: service.LookupEmployeeByIdRequestKey - (*LookupEmployeeByIdRequest)(nil), // 28: service.LookupEmployeeByIdRequest - (*LookupEmployeeByIdResponse)(nil), // 29: service.LookupEmployeeByIdResponse - (*LookupProductByUpcRequestKey)(nil), // 30: service.LookupProductByUpcRequestKey - (*LookupProductByUpcRequest)(nil), // 31: service.LookupProductByUpcRequest - (*LookupProductByUpcResponse)(nil), // 32: service.LookupProductByUpcResponse - (*QueryProjectsRequest)(nil), // 33: service.QueryProjectsRequest - (*QueryProjectsResponse)(nil), // 34: service.QueryProjectsResponse - (*QueryProjectRequest)(nil), // 35: service.QueryProjectRequest - (*QueryProjectResponse)(nil), // 36: service.QueryProjectResponse - (*QueryProjectStatusesRequest)(nil), // 37: service.QueryProjectStatusesRequest - (*QueryProjectStatusesResponse)(nil), // 38: service.QueryProjectStatusesResponse - (*QueryProjectsByStatusRequest)(nil), // 39: service.QueryProjectsByStatusRequest - (*QueryProjectsByStatusResponse)(nil), // 40: service.QueryProjectsByStatusResponse - (*QueryProjectResourcesRequest)(nil), // 41: service.QueryProjectResourcesRequest - (*QueryProjectResourcesResponse)(nil), // 42: service.QueryProjectResourcesResponse - (*QuerySearchProjectsRequest)(nil), // 43: service.QuerySearchProjectsRequest - (*QuerySearchProjectsResponse)(nil), // 44: service.QuerySearchProjectsResponse - (*QueryMilestonesRequest)(nil), // 45: service.QueryMilestonesRequest - (*QueryMilestonesResponse)(nil), // 46: service.QueryMilestonesResponse - (*QueryTasksRequest)(nil), // 47: service.QueryTasksRequest - (*QueryTasksResponse)(nil), // 48: service.QueryTasksResponse - (*QueryProjectActivitiesRequest)(nil), // 49: service.QueryProjectActivitiesRequest - (*QueryProjectActivitiesResponse)(nil), // 50: service.QueryProjectActivitiesResponse - (*QueryProjectTagsRequest)(nil), // 51: service.QueryProjectTagsRequest - (*QueryProjectTagsResponse)(nil), // 52: service.QueryProjectTagsResponse - (*QueryArchivedProjectsRequest)(nil), // 53: service.QueryArchivedProjectsRequest - (*QueryArchivedProjectsResponse)(nil), // 54: service.QueryArchivedProjectsResponse - (*QueryTasksByPriorityRequest)(nil), // 55: service.QueryTasksByPriorityRequest - (*QueryTasksByPriorityResponse)(nil), // 56: service.QueryTasksByPriorityResponse - (*QueryResourceMatrixRequest)(nil), // 57: service.QueryResourceMatrixRequest - (*QueryResourceMatrixResponse)(nil), // 58: service.QueryResourceMatrixResponse - (*QueryKillServiceRequest)(nil), // 59: service.QueryKillServiceRequest - (*QueryKillServiceResponse)(nil), // 60: service.QueryKillServiceResponse - (*QueryPanicRequest)(nil), // 61: service.QueryPanicRequest - (*QueryPanicResponse)(nil), // 62: service.QueryPanicResponse - (*QueryNodesByIdRequest)(nil), // 63: service.QueryNodesByIdRequest - (*QueryNodesByIdResponse)(nil), // 64: service.QueryNodesByIdResponse - (*MutationAddProjectRequest)(nil), // 65: service.MutationAddProjectRequest - (*MutationAddProjectResponse)(nil), // 66: service.MutationAddProjectResponse - (*MutationAddMilestoneRequest)(nil), // 67: service.MutationAddMilestoneRequest - (*MutationAddMilestoneResponse)(nil), // 68: service.MutationAddMilestoneResponse - (*MutationAddTaskRequest)(nil), // 69: service.MutationAddTaskRequest - (*MutationAddTaskResponse)(nil), // 70: service.MutationAddTaskResponse - (*MutationUpdateProjectStatusRequest)(nil), // 71: service.MutationUpdateProjectStatusRequest - (*MutationUpdateProjectStatusResponse)(nil), // 72: service.MutationUpdateProjectStatusResponse - (*ResolveProjectSubProjectsArgs)(nil), // 73: service.ResolveProjectSubProjectsArgs - (*ResolveProjectSubProjectsContext)(nil), // 74: service.ResolveProjectSubProjectsContext - (*ResolveProjectSubProjectsRequest)(nil), // 75: service.ResolveProjectSubProjectsRequest - (*ResolveProjectSubProjectsResult)(nil), // 76: service.ResolveProjectSubProjectsResult - (*ResolveProjectSubProjectsResponse)(nil), // 77: service.ResolveProjectSubProjectsResponse - (*ResolveProjectFilteredTasksArgs)(nil), // 78: service.ResolveProjectFilteredTasksArgs - (*ResolveProjectFilteredTasksContext)(nil), // 79: service.ResolveProjectFilteredTasksContext - (*ResolveProjectFilteredTasksRequest)(nil), // 80: service.ResolveProjectFilteredTasksRequest - (*ResolveProjectFilteredTasksResult)(nil), // 81: service.ResolveProjectFilteredTasksResult - (*ResolveProjectFilteredTasksResponse)(nil), // 82: service.ResolveProjectFilteredTasksResponse - (*ResolveProjectCompletionRateArgs)(nil), // 83: service.ResolveProjectCompletionRateArgs - (*ResolveProjectCompletionRateContext)(nil), // 84: service.ResolveProjectCompletionRateContext - (*ResolveProjectCompletionRateRequest)(nil), // 85: service.ResolveProjectCompletionRateRequest - (*ResolveProjectCompletionRateResult)(nil), // 86: service.ResolveProjectCompletionRateResult - (*ResolveProjectCompletionRateResponse)(nil), // 87: service.ResolveProjectCompletionRateResponse - (*ResolveProjectEstimatedDaysRemainingArgs)(nil), // 88: service.ResolveProjectEstimatedDaysRemainingArgs - (*ResolveProjectEstimatedDaysRemainingContext)(nil), // 89: service.ResolveProjectEstimatedDaysRemainingContext - (*ResolveProjectEstimatedDaysRemainingRequest)(nil), // 90: service.ResolveProjectEstimatedDaysRemainingRequest - (*ResolveProjectEstimatedDaysRemainingResult)(nil), // 91: service.ResolveProjectEstimatedDaysRemainingResult - (*ResolveProjectEstimatedDaysRemainingResponse)(nil), // 92: service.ResolveProjectEstimatedDaysRemainingResponse - (*ResolveProjectCriticalDeadlineArgs)(nil), // 93: service.ResolveProjectCriticalDeadlineArgs - (*ResolveProjectCriticalDeadlineContext)(nil), // 94: service.ResolveProjectCriticalDeadlineContext - (*ResolveProjectCriticalDeadlineRequest)(nil), // 95: service.ResolveProjectCriticalDeadlineRequest - (*ResolveProjectCriticalDeadlineResult)(nil), // 96: service.ResolveProjectCriticalDeadlineResult - (*ResolveProjectCriticalDeadlineResponse)(nil), // 97: service.ResolveProjectCriticalDeadlineResponse - (*ResolveProjectTopPriorityItemArgs)(nil), // 98: service.ResolveProjectTopPriorityItemArgs - (*ResolveProjectTopPriorityItemContext)(nil), // 99: service.ResolveProjectTopPriorityItemContext - (*ResolveProjectTopPriorityItemRequest)(nil), // 100: service.ResolveProjectTopPriorityItemRequest - (*ResolveProjectTopPriorityItemResult)(nil), // 101: service.ResolveProjectTopPriorityItemResult - (*ResolveProjectTopPriorityItemResponse)(nil), // 102: service.ResolveProjectTopPriorityItemResponse - (*ResolveProjectTaskCountContext)(nil), // 103: service.ResolveProjectTaskCountContext - (*ResolveProjectTaskCountRequest)(nil), // 104: service.ResolveProjectTaskCountRequest - (*ResolveProjectTaskCountResult)(nil), // 105: service.ResolveProjectTaskCountResult - (*ResolveProjectTaskCountResponse)(nil), // 106: service.ResolveProjectTaskCountResponse - (*ResolveProjectActiveMilestoneCountContext)(nil), // 107: service.ResolveProjectActiveMilestoneCountContext - (*ResolveProjectActiveMilestoneCountRequest)(nil), // 108: service.ResolveProjectActiveMilestoneCountRequest - (*ResolveProjectActiveMilestoneCountResult)(nil), // 109: service.ResolveProjectActiveMilestoneCountResult - (*ResolveProjectActiveMilestoneCountResponse)(nil), // 110: service.ResolveProjectActiveMilestoneCountResponse - (*ResolveMilestoneIsAtRiskArgs)(nil), // 111: service.ResolveMilestoneIsAtRiskArgs - (*ResolveMilestoneIsAtRiskContext)(nil), // 112: service.ResolveMilestoneIsAtRiskContext - (*ResolveMilestoneIsAtRiskRequest)(nil), // 113: service.ResolveMilestoneIsAtRiskRequest - (*ResolveMilestoneIsAtRiskResult)(nil), // 114: service.ResolveMilestoneIsAtRiskResult - (*ResolveMilestoneIsAtRiskResponse)(nil), // 115: service.ResolveMilestoneIsAtRiskResponse - (*ResolveMilestoneDaysUntilDueArgs)(nil), // 116: service.ResolveMilestoneDaysUntilDueArgs - (*ResolveMilestoneDaysUntilDueContext)(nil), // 117: service.ResolveMilestoneDaysUntilDueContext - (*ResolveMilestoneDaysUntilDueRequest)(nil), // 118: service.ResolveMilestoneDaysUntilDueRequest - (*ResolveMilestoneDaysUntilDueResult)(nil), // 119: service.ResolveMilestoneDaysUntilDueResult - (*ResolveMilestoneDaysUntilDueResponse)(nil), // 120: service.ResolveMilestoneDaysUntilDueResponse - (*ResolveTaskIsBlockedArgs)(nil), // 121: service.ResolveTaskIsBlockedArgs - (*ResolveTaskIsBlockedContext)(nil), // 122: service.ResolveTaskIsBlockedContext - (*ResolveTaskIsBlockedRequest)(nil), // 123: service.ResolveTaskIsBlockedRequest - (*ResolveTaskIsBlockedResult)(nil), // 124: service.ResolveTaskIsBlockedResult - (*ResolveTaskIsBlockedResponse)(nil), // 125: service.ResolveTaskIsBlockedResponse - (*ResolveTaskTotalEffortArgs)(nil), // 126: service.ResolveTaskTotalEffortArgs - (*ResolveTaskTotalEffortContext)(nil), // 127: service.ResolveTaskTotalEffortContext - (*ResolveTaskTotalEffortRequest)(nil), // 128: service.ResolveTaskTotalEffortRequest - (*ResolveTaskTotalEffortResult)(nil), // 129: service.ResolveTaskTotalEffortResult - (*ResolveTaskTotalEffortResponse)(nil), // 130: service.ResolveTaskTotalEffortResponse - (*ResolveEmployeeCurrentWorkloadArgs)(nil), // 131: service.ResolveEmployeeCurrentWorkloadArgs - (*ResolveEmployeeCurrentWorkloadContext)(nil), // 132: service.ResolveEmployeeCurrentWorkloadContext - (*ResolveEmployeeCurrentWorkloadRequest)(nil), // 133: service.ResolveEmployeeCurrentWorkloadRequest - (*ResolveEmployeeCurrentWorkloadResult)(nil), // 134: service.ResolveEmployeeCurrentWorkloadResult - (*ResolveEmployeeCurrentWorkloadResponse)(nil), // 135: service.ResolveEmployeeCurrentWorkloadResponse - (*ResolveEmployeeAverageTaskCompletionDaysArgs)(nil), // 136: service.ResolveEmployeeAverageTaskCompletionDaysArgs - (*ResolveEmployeeAverageTaskCompletionDaysContext)(nil), // 137: service.ResolveEmployeeAverageTaskCompletionDaysContext - (*ResolveEmployeeAverageTaskCompletionDaysRequest)(nil), // 138: service.ResolveEmployeeAverageTaskCompletionDaysRequest - (*ResolveEmployeeAverageTaskCompletionDaysResult)(nil), // 139: service.ResolveEmployeeAverageTaskCompletionDaysResult - (*ResolveEmployeeAverageTaskCompletionDaysResponse)(nil), // 140: service.ResolveEmployeeAverageTaskCompletionDaysResponse - (*ResolveEmployeeTotalProjectCountContext)(nil), // 141: service.ResolveEmployeeTotalProjectCountContext - (*ResolveEmployeeTotalProjectCountRequest)(nil), // 142: service.ResolveEmployeeTotalProjectCountRequest - (*ResolveEmployeeTotalProjectCountResult)(nil), // 143: service.ResolveEmployeeTotalProjectCountResult - (*ResolveEmployeeTotalProjectCountResponse)(nil), // 144: service.ResolveEmployeeTotalProjectCountResponse - (*RequireEmployeeTaggedProjectSummaryByIdRequest)(nil), // 145: service.RequireEmployeeTaggedProjectSummaryByIdRequest - (*RequireEmployeeTaggedProjectSummaryByIdContext)(nil), // 146: service.RequireEmployeeTaggedProjectSummaryByIdContext - (*RequireEmployeeTaggedProjectSummaryByIdResponse)(nil), // 147: service.RequireEmployeeTaggedProjectSummaryByIdResponse - (*RequireEmployeeTaggedProjectSummaryByIdResult)(nil), // 148: service.RequireEmployeeTaggedProjectSummaryByIdResult - (*RequireEmployeeTaggedProjectSummaryByIdFields)(nil), // 149: service.RequireEmployeeTaggedProjectSummaryByIdFields - (*Project)(nil), // 150: service.Project - (*Milestone)(nil), // 151: service.Milestone - (*Task)(nil), // 152: service.Task - (*Employee)(nil), // 153: service.Employee - (*Product)(nil), // 154: service.Product - (*ProjectResource)(nil), // 155: service.ProjectResource - (*ProjectSearchResult)(nil), // 156: service.ProjectSearchResult - (*ProjectActivity)(nil), // 157: service.ProjectActivity - (*Node)(nil), // 158: service.Node - (*ProjectInput)(nil), // 159: service.ProjectInput - (*MilestoneInput)(nil), // 160: service.MilestoneInput - (*TaskInput)(nil), // 161: service.TaskInput - (*ProjectUpdate)(nil), // 162: service.ProjectUpdate - (*Timestamped)(nil), // 163: service.Timestamped - (*Assignable)(nil), // 164: service.Assignable - (*ListOfEmployee_List)(nil), // 165: service.ListOfEmployee.List - (*ListOfInt_List)(nil), // 166: service.ListOfInt.List - (*ListOfListOfListOfTask_List)(nil), // 167: service.ListOfListOfListOfTask.List - (*ListOfListOfMilestone_List)(nil), // 168: service.ListOfListOfMilestone.List - (*ListOfListOfProject_List)(nil), // 169: service.ListOfListOfProject.List - (*ListOfListOfProjectResource_List)(nil), // 170: service.ListOfListOfProjectResource.List - (*ListOfListOfString_List)(nil), // 171: service.ListOfListOfString.List - (*ListOfListOfTask_List)(nil), // 172: service.ListOfListOfTask.List - (*ListOfMilestone_List)(nil), // 173: service.ListOfMilestone.List - (*ListOfProject_List)(nil), // 174: service.ListOfProject.List - (*ListOfProjectResource_List)(nil), // 175: service.ListOfProjectResource.List - (*ListOfString_List)(nil), // 176: service.ListOfString.List - (*ListOfTask_List)(nil), // 177: service.ListOfTask.List - (*wrapperspb.BoolValue)(nil), // 178: google.protobuf.BoolValue - (*wrapperspb.Int32Value)(nil), // 179: google.protobuf.Int32Value - (*wrapperspb.StringValue)(nil), // 180: google.protobuf.StringValue - (*wrapperspb.DoubleValue)(nil), // 181: google.protobuf.DoubleValue + (ProjectStatus)(0), // 0: service.ProjectStatus + (MilestoneStatus)(0), // 1: service.MilestoneStatus + (TaskStatus)(0), // 2: service.TaskStatus + (TaskPriority)(0), // 3: service.TaskPriority + (ProjectUpdateType)(0), // 4: service.ProjectUpdateType + (*ListOfEmployee)(nil), // 5: service.ListOfEmployee + (*ListOfInt)(nil), // 6: service.ListOfInt + (*ListOfListOfListOfTask)(nil), // 7: service.ListOfListOfListOfTask + (*ListOfListOfMilestone)(nil), // 8: service.ListOfListOfMilestone + (*ListOfListOfProject)(nil), // 9: service.ListOfListOfProject + (*ListOfListOfProjectResource)(nil), // 10: service.ListOfListOfProjectResource + (*ListOfListOfString)(nil), // 11: service.ListOfListOfString + (*ListOfListOfTask)(nil), // 12: service.ListOfListOfTask + (*ListOfMilestone)(nil), // 13: service.ListOfMilestone + (*ListOfProject)(nil), // 14: service.ListOfProject + (*ListOfProjectResource)(nil), // 15: service.ListOfProjectResource + (*ListOfString)(nil), // 16: service.ListOfString + (*ListOfTask)(nil), // 17: service.ListOfTask + (*LookupProjectByIdRequestKey)(nil), // 18: service.LookupProjectByIdRequestKey + (*LookupProjectByIdRequest)(nil), // 19: service.LookupProjectByIdRequest + (*LookupProjectByIdResponse)(nil), // 20: service.LookupProjectByIdResponse + (*LookupMilestoneByIdRequestKey)(nil), // 21: service.LookupMilestoneByIdRequestKey + (*LookupMilestoneByIdRequest)(nil), // 22: service.LookupMilestoneByIdRequest + (*LookupMilestoneByIdResponse)(nil), // 23: service.LookupMilestoneByIdResponse + (*LookupTaskByIdRequestKey)(nil), // 24: service.LookupTaskByIdRequestKey + (*LookupTaskByIdRequest)(nil), // 25: service.LookupTaskByIdRequest + (*LookupTaskByIdResponse)(nil), // 26: service.LookupTaskByIdResponse + (*LookupEmployeeByIdRequestKey)(nil), // 27: service.LookupEmployeeByIdRequestKey + (*LookupEmployeeByIdRequest)(nil), // 28: service.LookupEmployeeByIdRequest + (*LookupEmployeeByIdResponse)(nil), // 29: service.LookupEmployeeByIdResponse + (*LookupProductByUpcRequestKey)(nil), // 30: service.LookupProductByUpcRequestKey + (*LookupProductByUpcRequest)(nil), // 31: service.LookupProductByUpcRequest + (*LookupProductByUpcResponse)(nil), // 32: service.LookupProductByUpcResponse + (*QueryProjectsRequest)(nil), // 33: service.QueryProjectsRequest + (*QueryProjectsResponse)(nil), // 34: service.QueryProjectsResponse + (*QueryProjectRequest)(nil), // 35: service.QueryProjectRequest + (*QueryProjectResponse)(nil), // 36: service.QueryProjectResponse + (*QueryProjectStatusesRequest)(nil), // 37: service.QueryProjectStatusesRequest + (*QueryProjectStatusesResponse)(nil), // 38: service.QueryProjectStatusesResponse + (*QueryProjectsByStatusRequest)(nil), // 39: service.QueryProjectsByStatusRequest + (*QueryProjectsByStatusResponse)(nil), // 40: service.QueryProjectsByStatusResponse + (*QueryProjectResourcesRequest)(nil), // 41: service.QueryProjectResourcesRequest + (*QueryProjectResourcesResponse)(nil), // 42: service.QueryProjectResourcesResponse + (*QuerySearchProjectsRequest)(nil), // 43: service.QuerySearchProjectsRequest + (*QuerySearchProjectsResponse)(nil), // 44: service.QuerySearchProjectsResponse + (*QueryMilestonesRequest)(nil), // 45: service.QueryMilestonesRequest + (*QueryMilestonesResponse)(nil), // 46: service.QueryMilestonesResponse + (*QueryTasksRequest)(nil), // 47: service.QueryTasksRequest + (*QueryTasksResponse)(nil), // 48: service.QueryTasksResponse + (*QueryProjectActivitiesRequest)(nil), // 49: service.QueryProjectActivitiesRequest + (*QueryProjectActivitiesResponse)(nil), // 50: service.QueryProjectActivitiesResponse + (*QueryProjectTagsRequest)(nil), // 51: service.QueryProjectTagsRequest + (*QueryProjectTagsResponse)(nil), // 52: service.QueryProjectTagsResponse + (*QueryArchivedProjectsRequest)(nil), // 53: service.QueryArchivedProjectsRequest + (*QueryArchivedProjectsResponse)(nil), // 54: service.QueryArchivedProjectsResponse + (*QueryTasksByPriorityRequest)(nil), // 55: service.QueryTasksByPriorityRequest + (*QueryTasksByPriorityResponse)(nil), // 56: service.QueryTasksByPriorityResponse + (*QueryResourceMatrixRequest)(nil), // 57: service.QueryResourceMatrixRequest + (*QueryResourceMatrixResponse)(nil), // 58: service.QueryResourceMatrixResponse + (*QueryKillServiceRequest)(nil), // 59: service.QueryKillServiceRequest + (*QueryKillServiceResponse)(nil), // 60: service.QueryKillServiceResponse + (*QueryPanicRequest)(nil), // 61: service.QueryPanicRequest + (*QueryPanicResponse)(nil), // 62: service.QueryPanicResponse + (*QueryNodesByIdRequest)(nil), // 63: service.QueryNodesByIdRequest + (*QueryNodesByIdResponse)(nil), // 64: service.QueryNodesByIdResponse + (*MutationAddProjectRequest)(nil), // 65: service.MutationAddProjectRequest + (*MutationAddProjectResponse)(nil), // 66: service.MutationAddProjectResponse + (*MutationAddMilestoneRequest)(nil), // 67: service.MutationAddMilestoneRequest + (*MutationAddMilestoneResponse)(nil), // 68: service.MutationAddMilestoneResponse + (*MutationAddTaskRequest)(nil), // 69: service.MutationAddTaskRequest + (*MutationAddTaskResponse)(nil), // 70: service.MutationAddTaskResponse + (*MutationUpdateProjectStatusRequest)(nil), // 71: service.MutationUpdateProjectStatusRequest + (*MutationUpdateProjectStatusResponse)(nil), // 72: service.MutationUpdateProjectStatusResponse + (*ResolveProjectSubProjectsArgs)(nil), // 73: service.ResolveProjectSubProjectsArgs + (*ResolveProjectSubProjectsContext)(nil), // 74: service.ResolveProjectSubProjectsContext + (*ResolveProjectSubProjectsRequest)(nil), // 75: service.ResolveProjectSubProjectsRequest + (*ResolveProjectSubProjectsResult)(nil), // 76: service.ResolveProjectSubProjectsResult + (*ResolveProjectSubProjectsResponse)(nil), // 77: service.ResolveProjectSubProjectsResponse + (*ResolveProjectFilteredTasksArgs)(nil), // 78: service.ResolveProjectFilteredTasksArgs + (*ResolveProjectFilteredTasksContext)(nil), // 79: service.ResolveProjectFilteredTasksContext + (*ResolveProjectFilteredTasksRequest)(nil), // 80: service.ResolveProjectFilteredTasksRequest + (*ResolveProjectFilteredTasksResult)(nil), // 81: service.ResolveProjectFilteredTasksResult + (*ResolveProjectFilteredTasksResponse)(nil), // 82: service.ResolveProjectFilteredTasksResponse + (*ResolveProjectCompletionRateArgs)(nil), // 83: service.ResolveProjectCompletionRateArgs + (*ResolveProjectCompletionRateContext)(nil), // 84: service.ResolveProjectCompletionRateContext + (*ResolveProjectCompletionRateRequest)(nil), // 85: service.ResolveProjectCompletionRateRequest + (*ResolveProjectCompletionRateResult)(nil), // 86: service.ResolveProjectCompletionRateResult + (*ResolveProjectCompletionRateResponse)(nil), // 87: service.ResolveProjectCompletionRateResponse + (*ResolveProjectEstimatedDaysRemainingArgs)(nil), // 88: service.ResolveProjectEstimatedDaysRemainingArgs + (*ResolveProjectEstimatedDaysRemainingContext)(nil), // 89: service.ResolveProjectEstimatedDaysRemainingContext + (*ResolveProjectEstimatedDaysRemainingRequest)(nil), // 90: service.ResolveProjectEstimatedDaysRemainingRequest + (*ResolveProjectEstimatedDaysRemainingResult)(nil), // 91: service.ResolveProjectEstimatedDaysRemainingResult + (*ResolveProjectEstimatedDaysRemainingResponse)(nil), // 92: service.ResolveProjectEstimatedDaysRemainingResponse + (*ResolveProjectCriticalDeadlineArgs)(nil), // 93: service.ResolveProjectCriticalDeadlineArgs + (*ResolveProjectCriticalDeadlineContext)(nil), // 94: service.ResolveProjectCriticalDeadlineContext + (*ResolveProjectCriticalDeadlineRequest)(nil), // 95: service.ResolveProjectCriticalDeadlineRequest + (*ResolveProjectCriticalDeadlineResult)(nil), // 96: service.ResolveProjectCriticalDeadlineResult + (*ResolveProjectCriticalDeadlineResponse)(nil), // 97: service.ResolveProjectCriticalDeadlineResponse + (*ResolveProjectTopPriorityItemArgs)(nil), // 98: service.ResolveProjectTopPriorityItemArgs + (*ResolveProjectTopPriorityItemContext)(nil), // 99: service.ResolveProjectTopPriorityItemContext + (*ResolveProjectTopPriorityItemRequest)(nil), // 100: service.ResolveProjectTopPriorityItemRequest + (*ResolveProjectTopPriorityItemResult)(nil), // 101: service.ResolveProjectTopPriorityItemResult + (*ResolveProjectTopPriorityItemResponse)(nil), // 102: service.ResolveProjectTopPriorityItemResponse + (*ResolveProjectTaskCountContext)(nil), // 103: service.ResolveProjectTaskCountContext + (*ResolveProjectTaskCountRequest)(nil), // 104: service.ResolveProjectTaskCountRequest + (*ResolveProjectTaskCountResult)(nil), // 105: service.ResolveProjectTaskCountResult + (*ResolveProjectTaskCountResponse)(nil), // 106: service.ResolveProjectTaskCountResponse + (*ResolveProjectActiveMilestoneCountContext)(nil), // 107: service.ResolveProjectActiveMilestoneCountContext + (*ResolveProjectActiveMilestoneCountRequest)(nil), // 108: service.ResolveProjectActiveMilestoneCountRequest + (*ResolveProjectActiveMilestoneCountResult)(nil), // 109: service.ResolveProjectActiveMilestoneCountResult + (*ResolveProjectActiveMilestoneCountResponse)(nil), // 110: service.ResolveProjectActiveMilestoneCountResponse + (*ResolveMilestoneIsAtRiskArgs)(nil), // 111: service.ResolveMilestoneIsAtRiskArgs + (*ResolveMilestoneIsAtRiskContext)(nil), // 112: service.ResolveMilestoneIsAtRiskContext + (*ResolveMilestoneIsAtRiskRequest)(nil), // 113: service.ResolveMilestoneIsAtRiskRequest + (*ResolveMilestoneIsAtRiskResult)(nil), // 114: service.ResolveMilestoneIsAtRiskResult + (*ResolveMilestoneIsAtRiskResponse)(nil), // 115: service.ResolveMilestoneIsAtRiskResponse + (*ResolveMilestoneDaysUntilDueArgs)(nil), // 116: service.ResolveMilestoneDaysUntilDueArgs + (*ResolveMilestoneDaysUntilDueContext)(nil), // 117: service.ResolveMilestoneDaysUntilDueContext + (*ResolveMilestoneDaysUntilDueRequest)(nil), // 118: service.ResolveMilestoneDaysUntilDueRequest + (*ResolveMilestoneDaysUntilDueResult)(nil), // 119: service.ResolveMilestoneDaysUntilDueResult + (*ResolveMilestoneDaysUntilDueResponse)(nil), // 120: service.ResolveMilestoneDaysUntilDueResponse + (*ResolveTaskIsBlockedArgs)(nil), // 121: service.ResolveTaskIsBlockedArgs + (*ResolveTaskIsBlockedContext)(nil), // 122: service.ResolveTaskIsBlockedContext + (*ResolveTaskIsBlockedRequest)(nil), // 123: service.ResolveTaskIsBlockedRequest + (*ResolveTaskIsBlockedResult)(nil), // 124: service.ResolveTaskIsBlockedResult + (*ResolveTaskIsBlockedResponse)(nil), // 125: service.ResolveTaskIsBlockedResponse + (*ResolveTaskTotalEffortArgs)(nil), // 126: service.ResolveTaskTotalEffortArgs + (*ResolveTaskTotalEffortContext)(nil), // 127: service.ResolveTaskTotalEffortContext + (*ResolveTaskTotalEffortRequest)(nil), // 128: service.ResolveTaskTotalEffortRequest + (*ResolveTaskTotalEffortResult)(nil), // 129: service.ResolveTaskTotalEffortResult + (*ResolveTaskTotalEffortResponse)(nil), // 130: service.ResolveTaskTotalEffortResponse + (*ResolveEmployeeCurrentWorkloadArgs)(nil), // 131: service.ResolveEmployeeCurrentWorkloadArgs + (*ResolveEmployeeCurrentWorkloadContext)(nil), // 132: service.ResolveEmployeeCurrentWorkloadContext + (*ResolveEmployeeCurrentWorkloadRequest)(nil), // 133: service.ResolveEmployeeCurrentWorkloadRequest + (*ResolveEmployeeCurrentWorkloadResult)(nil), // 134: service.ResolveEmployeeCurrentWorkloadResult + (*ResolveEmployeeCurrentWorkloadResponse)(nil), // 135: service.ResolveEmployeeCurrentWorkloadResponse + (*ResolveEmployeeAverageTaskCompletionDaysArgs)(nil), // 136: service.ResolveEmployeeAverageTaskCompletionDaysArgs + (*ResolveEmployeeAverageTaskCompletionDaysContext)(nil), // 137: service.ResolveEmployeeAverageTaskCompletionDaysContext + (*ResolveEmployeeAverageTaskCompletionDaysRequest)(nil), // 138: service.ResolveEmployeeAverageTaskCompletionDaysRequest + (*ResolveEmployeeAverageTaskCompletionDaysResult)(nil), // 139: service.ResolveEmployeeAverageTaskCompletionDaysResult + (*ResolveEmployeeAverageTaskCompletionDaysResponse)(nil), // 140: service.ResolveEmployeeAverageTaskCompletionDaysResponse + (*ResolveEmployeeTotalProjectCountContext)(nil), // 141: service.ResolveEmployeeTotalProjectCountContext + (*ResolveEmployeeTotalProjectCountRequest)(nil), // 142: service.ResolveEmployeeTotalProjectCountRequest + (*ResolveEmployeeTotalProjectCountResult)(nil), // 143: service.ResolveEmployeeTotalProjectCountResult + (*ResolveEmployeeTotalProjectCountResponse)(nil), // 144: service.ResolveEmployeeTotalProjectCountResponse + (*RequireEmployeeTaggedProjectSummaryByIdRequest)(nil), // 145: service.RequireEmployeeTaggedProjectSummaryByIdRequest + (*RequireEmployeeTaggedProjectSummaryByIdContext)(nil), // 146: service.RequireEmployeeTaggedProjectSummaryByIdContext + (*RequireEmployeeTaggedProjectSummaryByIdResponse)(nil), // 147: service.RequireEmployeeTaggedProjectSummaryByIdResponse + (*RequireEmployeeTaggedProjectSummaryByIdResult)(nil), // 148: service.RequireEmployeeTaggedProjectSummaryByIdResult + (*RequireEmployeeTaggedProjectSummaryByIdFields)(nil), // 149: service.RequireEmployeeTaggedProjectSummaryByIdFields + (*RequireEmployeeFilteredProjectSummaryByIdRequest)(nil), // 150: service.RequireEmployeeFilteredProjectSummaryByIdRequest + (*RequireEmployeeFilteredProjectSummaryByIdContext)(nil), // 151: service.RequireEmployeeFilteredProjectSummaryByIdContext + (*RequireEmployeeFilteredProjectSummaryByIdResponse)(nil), // 152: service.RequireEmployeeFilteredProjectSummaryByIdResponse + (*RequireEmployeeFilteredProjectSummaryByIdResult)(nil), // 153: service.RequireEmployeeFilteredProjectSummaryByIdResult + (*RequireEmployeeFilteredProjectSummaryByIdFields)(nil), // 154: service.RequireEmployeeFilteredProjectSummaryByIdFields + (*RequireEmployeeFilteredProjectSummaryByIdArgs)(nil), // 155: service.RequireEmployeeFilteredProjectSummaryByIdArgs + (*Project)(nil), // 156: service.Project + (*Milestone)(nil), // 157: service.Milestone + (*Task)(nil), // 158: service.Task + (*Employee)(nil), // 159: service.Employee + (*Product)(nil), // 160: service.Product + (*ProjectResource)(nil), // 161: service.ProjectResource + (*ProjectSearchResult)(nil), // 162: service.ProjectSearchResult + (*ProjectActivity)(nil), // 163: service.ProjectActivity + (*Node)(nil), // 164: service.Node + (*ProjectInput)(nil), // 165: service.ProjectInput + (*MilestoneInput)(nil), // 166: service.MilestoneInput + (*TaskInput)(nil), // 167: service.TaskInput + (*ProjectUpdate)(nil), // 168: service.ProjectUpdate + (*Timestamped)(nil), // 169: service.Timestamped + (*Assignable)(nil), // 170: service.Assignable + (*ListOfEmployee_List)(nil), // 171: service.ListOfEmployee.List + (*ListOfInt_List)(nil), // 172: service.ListOfInt.List + (*ListOfListOfListOfTask_List)(nil), // 173: service.ListOfListOfListOfTask.List + (*ListOfListOfMilestone_List)(nil), // 174: service.ListOfListOfMilestone.List + (*ListOfListOfProject_List)(nil), // 175: service.ListOfListOfProject.List + (*ListOfListOfProjectResource_List)(nil), // 176: service.ListOfListOfProjectResource.List + (*ListOfListOfString_List)(nil), // 177: service.ListOfListOfString.List + (*ListOfListOfTask_List)(nil), // 178: service.ListOfListOfTask.List + (*ListOfMilestone_List)(nil), // 179: service.ListOfMilestone.List + (*ListOfProject_List)(nil), // 180: service.ListOfProject.List + (*ListOfProjectResource_List)(nil), // 181: service.ListOfProjectResource.List + (*ListOfString_List)(nil), // 182: service.ListOfString.List + (*ListOfTask_List)(nil), // 183: service.ListOfTask.List + (*wrapperspb.BoolValue)(nil), // 184: google.protobuf.BoolValue + (*wrapperspb.Int32Value)(nil), // 185: google.protobuf.Int32Value + (*wrapperspb.StringValue)(nil), // 186: google.protobuf.StringValue + (*wrapperspb.DoubleValue)(nil), // 187: google.protobuf.DoubleValue } var file_generated_service_proto_depIdxs = []int32{ - 165, // 0: service.ListOfEmployee.list:type_name -> service.ListOfEmployee.List - 166, // 1: service.ListOfInt.list:type_name -> service.ListOfInt.List - 167, // 2: service.ListOfListOfListOfTask.list:type_name -> service.ListOfListOfListOfTask.List - 168, // 3: service.ListOfListOfMilestone.list:type_name -> service.ListOfListOfMilestone.List - 169, // 4: service.ListOfListOfProject.list:type_name -> service.ListOfListOfProject.List - 170, // 5: service.ListOfListOfProjectResource.list:type_name -> service.ListOfListOfProjectResource.List - 171, // 6: service.ListOfListOfString.list:type_name -> service.ListOfListOfString.List - 172, // 7: service.ListOfListOfTask.list:type_name -> service.ListOfListOfTask.List - 173, // 8: service.ListOfMilestone.list:type_name -> service.ListOfMilestone.List - 174, // 9: service.ListOfProject.list:type_name -> service.ListOfProject.List - 175, // 10: service.ListOfProjectResource.list:type_name -> service.ListOfProjectResource.List - 176, // 11: service.ListOfString.list:type_name -> service.ListOfString.List - 177, // 12: service.ListOfTask.list:type_name -> service.ListOfTask.List + 171, // 0: service.ListOfEmployee.list:type_name -> service.ListOfEmployee.List + 172, // 1: service.ListOfInt.list:type_name -> service.ListOfInt.List + 173, // 2: service.ListOfListOfListOfTask.list:type_name -> service.ListOfListOfListOfTask.List + 174, // 3: service.ListOfListOfMilestone.list:type_name -> service.ListOfListOfMilestone.List + 175, // 4: service.ListOfListOfProject.list:type_name -> service.ListOfListOfProject.List + 176, // 5: service.ListOfListOfProjectResource.list:type_name -> service.ListOfListOfProjectResource.List + 177, // 6: service.ListOfListOfString.list:type_name -> service.ListOfListOfString.List + 178, // 7: service.ListOfListOfTask.list:type_name -> service.ListOfListOfTask.List + 179, // 8: service.ListOfMilestone.list:type_name -> service.ListOfMilestone.List + 180, // 9: service.ListOfProject.list:type_name -> service.ListOfProject.List + 181, // 10: service.ListOfProjectResource.list:type_name -> service.ListOfProjectResource.List + 182, // 11: service.ListOfString.list:type_name -> service.ListOfString.List + 183, // 12: service.ListOfTask.list:type_name -> service.ListOfTask.List 18, // 13: service.LookupProjectByIdRequest.keys:type_name -> service.LookupProjectByIdRequestKey - 150, // 14: service.LookupProjectByIdResponse.result:type_name -> service.Project + 156, // 14: service.LookupProjectByIdResponse.result:type_name -> service.Project 21, // 15: service.LookupMilestoneByIdRequest.keys:type_name -> service.LookupMilestoneByIdRequestKey - 151, // 16: service.LookupMilestoneByIdResponse.result:type_name -> service.Milestone + 157, // 16: service.LookupMilestoneByIdResponse.result:type_name -> service.Milestone 24, // 17: service.LookupTaskByIdRequest.keys:type_name -> service.LookupTaskByIdRequestKey - 152, // 18: service.LookupTaskByIdResponse.result:type_name -> service.Task + 158, // 18: service.LookupTaskByIdResponse.result:type_name -> service.Task 27, // 19: service.LookupEmployeeByIdRequest.keys:type_name -> service.LookupEmployeeByIdRequestKey - 153, // 20: service.LookupEmployeeByIdResponse.result:type_name -> service.Employee + 159, // 20: service.LookupEmployeeByIdResponse.result:type_name -> service.Employee 30, // 21: service.LookupProductByUpcRequest.keys:type_name -> service.LookupProductByUpcRequestKey - 154, // 22: service.LookupProductByUpcResponse.result:type_name -> service.Product - 150, // 23: service.QueryProjectsResponse.projects:type_name -> service.Project - 150, // 24: service.QueryProjectResponse.project:type_name -> service.Project + 160, // 22: service.LookupProductByUpcResponse.result:type_name -> service.Product + 156, // 23: service.QueryProjectsResponse.projects:type_name -> service.Project + 156, // 24: service.QueryProjectResponse.project:type_name -> service.Project 0, // 25: service.QueryProjectStatusesResponse.project_statuses:type_name -> service.ProjectStatus 0, // 26: service.QueryProjectsByStatusRequest.status:type_name -> service.ProjectStatus - 150, // 27: service.QueryProjectsByStatusResponse.projects_by_status:type_name -> service.Project - 155, // 28: service.QueryProjectResourcesResponse.project_resources:type_name -> service.ProjectResource - 156, // 29: service.QuerySearchProjectsResponse.search_projects:type_name -> service.ProjectSearchResult - 151, // 30: service.QueryMilestonesResponse.milestones:type_name -> service.Milestone - 152, // 31: service.QueryTasksResponse.tasks:type_name -> service.Task - 157, // 32: service.QueryProjectActivitiesResponse.project_activities:type_name -> service.ProjectActivity + 156, // 27: service.QueryProjectsByStatusResponse.projects_by_status:type_name -> service.Project + 161, // 28: service.QueryProjectResourcesResponse.project_resources:type_name -> service.ProjectResource + 162, // 29: service.QuerySearchProjectsResponse.search_projects:type_name -> service.ProjectSearchResult + 157, // 30: service.QueryMilestonesResponse.milestones:type_name -> service.Milestone + 158, // 31: service.QueryTasksResponse.tasks:type_name -> service.Task + 163, // 32: service.QueryProjectActivitiesResponse.project_activities:type_name -> service.ProjectActivity 16, // 33: service.QueryProjectTagsResponse.project_tags:type_name -> service.ListOfString - 150, // 34: service.QueryArchivedProjectsResponse.archived_projects:type_name -> service.Project + 156, // 34: service.QueryArchivedProjectsResponse.archived_projects:type_name -> service.Project 12, // 35: service.QueryTasksByPriorityResponse.tasks_by_priority:type_name -> service.ListOfListOfTask 10, // 36: service.QueryResourceMatrixResponse.resource_matrix:type_name -> service.ListOfListOfProjectResource - 158, // 37: service.QueryNodesByIdResponse.nodes_by_id:type_name -> service.Node - 159, // 38: service.MutationAddProjectRequest.project:type_name -> service.ProjectInput - 150, // 39: service.MutationAddProjectResponse.add_project:type_name -> service.Project - 160, // 40: service.MutationAddMilestoneRequest.milestone:type_name -> service.MilestoneInput - 151, // 41: service.MutationAddMilestoneResponse.add_milestone:type_name -> service.Milestone - 161, // 42: service.MutationAddTaskRequest.task:type_name -> service.TaskInput - 152, // 43: service.MutationAddTaskResponse.add_task:type_name -> service.Task + 164, // 37: service.QueryNodesByIdResponse.nodes_by_id:type_name -> service.Node + 165, // 38: service.MutationAddProjectRequest.project:type_name -> service.ProjectInput + 156, // 39: service.MutationAddProjectResponse.add_project:type_name -> service.Project + 166, // 40: service.MutationAddMilestoneRequest.milestone:type_name -> service.MilestoneInput + 157, // 41: service.MutationAddMilestoneResponse.add_milestone:type_name -> service.Milestone + 167, // 42: service.MutationAddTaskRequest.task:type_name -> service.TaskInput + 158, // 43: service.MutationAddTaskResponse.add_task:type_name -> service.Task 0, // 44: service.MutationUpdateProjectStatusRequest.status:type_name -> service.ProjectStatus - 162, // 45: service.MutationUpdateProjectStatusResponse.update_project_status:type_name -> service.ProjectUpdate - 178, // 46: service.ResolveProjectSubProjectsArgs.include_archived:type_name -> google.protobuf.BoolValue + 168, // 45: service.MutationUpdateProjectStatusResponse.update_project_status:type_name -> service.ProjectUpdate + 184, // 46: service.ResolveProjectSubProjectsArgs.include_archived:type_name -> google.protobuf.BoolValue 0, // 47: service.ResolveProjectSubProjectsContext.status:type_name -> service.ProjectStatus 74, // 48: service.ResolveProjectSubProjectsRequest.context:type_name -> service.ResolveProjectSubProjectsContext 73, // 49: service.ResolveProjectSubProjectsRequest.field_args:type_name -> service.ResolveProjectSubProjectsArgs - 150, // 50: service.ResolveProjectSubProjectsResult.sub_projects:type_name -> service.Project + 156, // 50: service.ResolveProjectSubProjectsResult.sub_projects:type_name -> service.Project 76, // 51: service.ResolveProjectSubProjectsResponse.result:type_name -> service.ResolveProjectSubProjectsResult 2, // 52: service.ResolveProjectFilteredTasksArgs.status:type_name -> service.TaskStatus 3, // 53: service.ResolveProjectFilteredTasksArgs.priority:type_name -> service.TaskPriority - 179, // 54: service.ResolveProjectFilteredTasksArgs.limit:type_name -> google.protobuf.Int32Value + 185, // 54: service.ResolveProjectFilteredTasksArgs.limit:type_name -> google.protobuf.Int32Value 79, // 55: service.ResolveProjectFilteredTasksRequest.context:type_name -> service.ResolveProjectFilteredTasksContext 78, // 56: service.ResolveProjectFilteredTasksRequest.field_args:type_name -> service.ResolveProjectFilteredTasksArgs - 152, // 57: service.ResolveProjectFilteredTasksResult.filtered_tasks:type_name -> service.Task + 158, // 57: service.ResolveProjectFilteredTasksResult.filtered_tasks:type_name -> service.Task 81, // 58: service.ResolveProjectFilteredTasksResponse.result:type_name -> service.ResolveProjectFilteredTasksResult - 178, // 59: service.ResolveProjectCompletionRateArgs.include_subtasks:type_name -> google.protobuf.BoolValue - 180, // 60: service.ResolveProjectCompletionRateContext.start_date:type_name -> google.protobuf.StringValue - 180, // 61: service.ResolveProjectCompletionRateContext.end_date:type_name -> google.protobuf.StringValue + 184, // 59: service.ResolveProjectCompletionRateArgs.include_subtasks:type_name -> google.protobuf.BoolValue + 186, // 60: service.ResolveProjectCompletionRateContext.start_date:type_name -> google.protobuf.StringValue + 186, // 61: service.ResolveProjectCompletionRateContext.end_date:type_name -> google.protobuf.StringValue 0, // 62: service.ResolveProjectCompletionRateContext.status:type_name -> service.ProjectStatus 84, // 63: service.ResolveProjectCompletionRateRequest.context:type_name -> service.ResolveProjectCompletionRateContext 83, // 64: service.ResolveProjectCompletionRateRequest.field_args:type_name -> service.ResolveProjectCompletionRateArgs 86, // 65: service.ResolveProjectCompletionRateResponse.result:type_name -> service.ResolveProjectCompletionRateResult - 180, // 66: service.ResolveProjectEstimatedDaysRemainingArgs.from_date:type_name -> google.protobuf.StringValue - 180, // 67: service.ResolveProjectEstimatedDaysRemainingContext.end_date:type_name -> google.protobuf.StringValue + 186, // 66: service.ResolveProjectEstimatedDaysRemainingArgs.from_date:type_name -> google.protobuf.StringValue + 186, // 67: service.ResolveProjectEstimatedDaysRemainingContext.end_date:type_name -> google.protobuf.StringValue 0, // 68: service.ResolveProjectEstimatedDaysRemainingContext.status:type_name -> service.ProjectStatus 89, // 69: service.ResolveProjectEstimatedDaysRemainingRequest.context:type_name -> service.ResolveProjectEstimatedDaysRemainingContext 88, // 70: service.ResolveProjectEstimatedDaysRemainingRequest.field_args:type_name -> service.ResolveProjectEstimatedDaysRemainingArgs - 179, // 71: service.ResolveProjectEstimatedDaysRemainingResult.estimated_days_remaining:type_name -> google.protobuf.Int32Value + 185, // 71: service.ResolveProjectEstimatedDaysRemainingResult.estimated_days_remaining:type_name -> google.protobuf.Int32Value 91, // 72: service.ResolveProjectEstimatedDaysRemainingResponse.result:type_name -> service.ResolveProjectEstimatedDaysRemainingResult - 179, // 73: service.ResolveProjectCriticalDeadlineArgs.within_days:type_name -> google.protobuf.Int32Value + 185, // 73: service.ResolveProjectCriticalDeadlineArgs.within_days:type_name -> google.protobuf.Int32Value 0, // 74: service.ResolveProjectCriticalDeadlineContext.status:type_name -> service.ProjectStatus - 151, // 75: service.ResolveProjectCriticalDeadlineContext.milestones:type_name -> service.Milestone + 157, // 75: service.ResolveProjectCriticalDeadlineContext.milestones:type_name -> service.Milestone 94, // 76: service.ResolveProjectCriticalDeadlineRequest.context:type_name -> service.ResolveProjectCriticalDeadlineContext 93, // 77: service.ResolveProjectCriticalDeadlineRequest.field_args:type_name -> service.ResolveProjectCriticalDeadlineArgs - 163, // 78: service.ResolveProjectCriticalDeadlineResult.critical_deadline:type_name -> service.Timestamped + 169, // 78: service.ResolveProjectCriticalDeadlineResult.critical_deadline:type_name -> service.Timestamped 96, // 79: service.ResolveProjectCriticalDeadlineResponse.result:type_name -> service.ResolveProjectCriticalDeadlineResult - 180, // 80: service.ResolveProjectTopPriorityItemArgs.category:type_name -> google.protobuf.StringValue + 186, // 80: service.ResolveProjectTopPriorityItemArgs.category:type_name -> google.protobuf.StringValue 0, // 81: service.ResolveProjectTopPriorityItemContext.status:type_name -> service.ProjectStatus 99, // 82: service.ResolveProjectTopPriorityItemRequest.context:type_name -> service.ResolveProjectTopPriorityItemContext 98, // 83: service.ResolveProjectTopPriorityItemRequest.field_args:type_name -> service.ResolveProjectTopPriorityItemArgs - 156, // 84: service.ResolveProjectTopPriorityItemResult.top_priority_item:type_name -> service.ProjectSearchResult + 162, // 84: service.ResolveProjectTopPriorityItemResult.top_priority_item:type_name -> service.ProjectSearchResult 101, // 85: service.ResolveProjectTopPriorityItemResponse.result:type_name -> service.ResolveProjectTopPriorityItemResult 103, // 86: service.ResolveProjectTaskCountRequest.context:type_name -> service.ResolveProjectTaskCountContext 105, // 87: service.ResolveProjectTaskCountResponse.result:type_name -> service.ResolveProjectTaskCountResult 107, // 88: service.ResolveProjectActiveMilestoneCountRequest.context:type_name -> service.ResolveProjectActiveMilestoneCountContext 109, // 89: service.ResolveProjectActiveMilestoneCountResponse.result:type_name -> service.ResolveProjectActiveMilestoneCountResult - 181, // 90: service.ResolveMilestoneIsAtRiskArgs.threshold:type_name -> google.protobuf.DoubleValue - 180, // 91: service.ResolveMilestoneIsAtRiskContext.end_date:type_name -> google.protobuf.StringValue + 187, // 90: service.ResolveMilestoneIsAtRiskArgs.threshold:type_name -> google.protobuf.DoubleValue + 186, // 91: service.ResolveMilestoneIsAtRiskContext.end_date:type_name -> google.protobuf.StringValue 1, // 92: service.ResolveMilestoneIsAtRiskContext.status:type_name -> service.MilestoneStatus - 181, // 93: service.ResolveMilestoneIsAtRiskContext.completion_percentage:type_name -> google.protobuf.DoubleValue + 187, // 93: service.ResolveMilestoneIsAtRiskContext.completion_percentage:type_name -> google.protobuf.DoubleValue 112, // 94: service.ResolveMilestoneIsAtRiskRequest.context:type_name -> service.ResolveMilestoneIsAtRiskContext 111, // 95: service.ResolveMilestoneIsAtRiskRequest.field_args:type_name -> service.ResolveMilestoneIsAtRiskArgs 114, // 96: service.ResolveMilestoneIsAtRiskResponse.result:type_name -> service.ResolveMilestoneIsAtRiskResult - 180, // 97: service.ResolveMilestoneDaysUntilDueArgs.from_date:type_name -> google.protobuf.StringValue - 180, // 98: service.ResolveMilestoneDaysUntilDueContext.end_date:type_name -> google.protobuf.StringValue + 186, // 97: service.ResolveMilestoneDaysUntilDueArgs.from_date:type_name -> google.protobuf.StringValue + 186, // 98: service.ResolveMilestoneDaysUntilDueContext.end_date:type_name -> google.protobuf.StringValue 117, // 99: service.ResolveMilestoneDaysUntilDueRequest.context:type_name -> service.ResolveMilestoneDaysUntilDueContext 116, // 100: service.ResolveMilestoneDaysUntilDueRequest.field_args:type_name -> service.ResolveMilestoneDaysUntilDueArgs - 179, // 101: service.ResolveMilestoneDaysUntilDueResult.days_until_due:type_name -> google.protobuf.Int32Value + 185, // 101: service.ResolveMilestoneDaysUntilDueResult.days_until_due:type_name -> google.protobuf.Int32Value 119, // 102: service.ResolveMilestoneDaysUntilDueResponse.result:type_name -> service.ResolveMilestoneDaysUntilDueResult - 178, // 103: service.ResolveTaskIsBlockedArgs.check_dependencies:type_name -> google.protobuf.BoolValue + 184, // 103: service.ResolveTaskIsBlockedArgs.check_dependencies:type_name -> google.protobuf.BoolValue 2, // 104: service.ResolveTaskIsBlockedContext.status:type_name -> service.TaskStatus 122, // 105: service.ResolveTaskIsBlockedRequest.context:type_name -> service.ResolveTaskIsBlockedContext 121, // 106: service.ResolveTaskIsBlockedRequest.field_args:type_name -> service.ResolveTaskIsBlockedArgs 124, // 107: service.ResolveTaskIsBlockedResponse.result:type_name -> service.ResolveTaskIsBlockedResult - 178, // 108: service.ResolveTaskTotalEffortArgs.include_subtasks:type_name -> google.protobuf.BoolValue - 181, // 109: service.ResolveTaskTotalEffortContext.estimated_hours:type_name -> google.protobuf.DoubleValue - 181, // 110: service.ResolveTaskTotalEffortContext.actual_hours:type_name -> google.protobuf.DoubleValue + 184, // 108: service.ResolveTaskTotalEffortArgs.include_subtasks:type_name -> google.protobuf.BoolValue + 187, // 109: service.ResolveTaskTotalEffortContext.estimated_hours:type_name -> google.protobuf.DoubleValue + 187, // 110: service.ResolveTaskTotalEffortContext.actual_hours:type_name -> google.protobuf.DoubleValue 127, // 111: service.ResolveTaskTotalEffortRequest.context:type_name -> service.ResolveTaskTotalEffortContext 126, // 112: service.ResolveTaskTotalEffortRequest.field_args:type_name -> service.ResolveTaskTotalEffortArgs - 181, // 113: service.ResolveTaskTotalEffortResult.total_effort:type_name -> google.protobuf.DoubleValue + 187, // 113: service.ResolveTaskTotalEffortResult.total_effort:type_name -> google.protobuf.DoubleValue 129, // 114: service.ResolveTaskTotalEffortResponse.result:type_name -> service.ResolveTaskTotalEffortResult - 178, // 115: service.ResolveEmployeeCurrentWorkloadArgs.include_completed:type_name -> google.protobuf.BoolValue - 180, // 116: service.ResolveEmployeeCurrentWorkloadArgs.project_id:type_name -> google.protobuf.StringValue + 184, // 115: service.ResolveEmployeeCurrentWorkloadArgs.include_completed:type_name -> google.protobuf.BoolValue + 186, // 116: service.ResolveEmployeeCurrentWorkloadArgs.project_id:type_name -> google.protobuf.StringValue 132, // 117: service.ResolveEmployeeCurrentWorkloadRequest.context:type_name -> service.ResolveEmployeeCurrentWorkloadContext 131, // 118: service.ResolveEmployeeCurrentWorkloadRequest.field_args:type_name -> service.ResolveEmployeeCurrentWorkloadArgs 134, // 119: service.ResolveEmployeeCurrentWorkloadResponse.result:type_name -> service.ResolveEmployeeCurrentWorkloadResult - 180, // 120: service.ResolveEmployeeAverageTaskCompletionDaysArgs.project_id:type_name -> google.protobuf.StringValue + 186, // 120: service.ResolveEmployeeAverageTaskCompletionDaysArgs.project_id:type_name -> google.protobuf.StringValue 3, // 121: service.ResolveEmployeeAverageTaskCompletionDaysArgs.priority:type_name -> service.TaskPriority 137, // 122: service.ResolveEmployeeAverageTaskCompletionDaysRequest.context:type_name -> service.ResolveEmployeeAverageTaskCompletionDaysContext 136, // 123: service.ResolveEmployeeAverageTaskCompletionDaysRequest.field_args:type_name -> service.ResolveEmployeeAverageTaskCompletionDaysArgs - 181, // 124: service.ResolveEmployeeAverageTaskCompletionDaysResult.average_task_completion_days:type_name -> google.protobuf.DoubleValue + 187, // 124: service.ResolveEmployeeAverageTaskCompletionDaysResult.average_task_completion_days:type_name -> google.protobuf.DoubleValue 139, // 125: service.ResolveEmployeeAverageTaskCompletionDaysResponse.result:type_name -> service.ResolveEmployeeAverageTaskCompletionDaysResult 141, // 126: service.ResolveEmployeeTotalProjectCountRequest.context:type_name -> service.ResolveEmployeeTotalProjectCountContext 143, // 127: service.ResolveEmployeeTotalProjectCountResponse.result:type_name -> service.ResolveEmployeeTotalProjectCountResult @@ -11616,181 +10439,188 @@ var file_generated_service_proto_depIdxs = []int32{ 27, // 129: service.RequireEmployeeTaggedProjectSummaryByIdContext.key:type_name -> service.LookupEmployeeByIdRequestKey 149, // 130: service.RequireEmployeeTaggedProjectSummaryByIdContext.fields:type_name -> service.RequireEmployeeTaggedProjectSummaryByIdFields 148, // 131: service.RequireEmployeeTaggedProjectSummaryByIdResponse.result:type_name -> service.RequireEmployeeTaggedProjectSummaryByIdResult - 180, // 132: service.Project.description:type_name -> google.protobuf.StringValue - 180, // 133: service.Project.start_date:type_name -> google.protobuf.StringValue - 180, // 134: service.Project.end_date:type_name -> google.protobuf.StringValue - 0, // 135: service.Project.status:type_name -> service.ProjectStatus - 153, // 136: service.Project.team_members:type_name -> service.Employee - 154, // 137: service.Project.related_products:type_name -> service.Product - 16, // 138: service.Project.milestone_ids:type_name -> service.ListOfString - 151, // 139: service.Project.milestones:type_name -> service.Milestone - 152, // 140: service.Project.tasks:type_name -> service.Task - 181, // 141: service.Project.progress:type_name -> google.protobuf.DoubleValue - 16, // 142: service.Project.tags:type_name -> service.ListOfString - 14, // 143: service.Project.alternative_projects:type_name -> service.ListOfProject - 14, // 144: service.Project.dependencies:type_name -> service.ListOfProject - 10, // 145: service.Project.resource_groups:type_name -> service.ListOfListOfProjectResource - 12, // 146: service.Project.tasks_by_phase:type_name -> service.ListOfListOfTask - 8, // 147: service.Project.milestone_groups:type_name -> service.ListOfListOfMilestone - 7, // 148: service.Project.priority_matrix:type_name -> service.ListOfListOfListOfTask - 180, // 149: service.Milestone.description:type_name -> google.protobuf.StringValue - 180, // 150: service.Milestone.start_date:type_name -> google.protobuf.StringValue - 180, // 151: service.Milestone.end_date:type_name -> google.protobuf.StringValue - 1, // 152: service.Milestone.status:type_name -> service.MilestoneStatus - 181, // 153: service.Milestone.completion_percentage:type_name -> google.protobuf.DoubleValue - 151, // 154: service.Milestone.dependencies:type_name -> service.Milestone - 17, // 155: service.Milestone.subtasks:type_name -> service.ListOfTask - 5, // 156: service.Milestone.reviewers:type_name -> service.ListOfEmployee - 180, // 157: service.Task.milestone_id:type_name -> google.protobuf.StringValue - 179, // 158: service.Task.assignee_id:type_name -> google.protobuf.Int32Value - 180, // 159: service.Task.description:type_name -> google.protobuf.StringValue - 3, // 160: service.Task.priority:type_name -> service.TaskPriority - 2, // 161: service.Task.status:type_name -> service.TaskStatus - 181, // 162: service.Task.estimated_hours:type_name -> google.protobuf.DoubleValue - 181, // 163: service.Task.actual_hours:type_name -> google.protobuf.DoubleValue - 180, // 164: service.Task.created_at:type_name -> google.protobuf.StringValue - 180, // 165: service.Task.completed_at:type_name -> google.protobuf.StringValue - 16, // 166: service.Task.labels:type_name -> service.ListOfString - 17, // 167: service.Task.subtasks:type_name -> service.ListOfTask - 152, // 168: service.Task.dependencies:type_name -> service.Task - 6, // 169: service.Task.reviewer_ids:type_name -> service.ListOfInt - 14, // 170: service.Employee.projects:type_name -> service.ListOfProject - 152, // 171: service.Employee.assigned_tasks:type_name -> service.Task - 152, // 172: service.Employee.completed_tasks:type_name -> service.Task - 16, // 173: service.Employee.skills:type_name -> service.ListOfString - 16, // 174: service.Employee.certifications:type_name -> service.ListOfString - 9, // 175: service.Employee.project_history:type_name -> service.ListOfListOfProject - 14, // 176: service.Product.projects:type_name -> service.ListOfProject - 11, // 177: service.Product.feature_matrix:type_name -> service.ListOfListOfString - 153, // 178: service.ProjectResource.employee:type_name -> service.Employee - 154, // 179: service.ProjectResource.product:type_name -> service.Product - 151, // 180: service.ProjectResource.milestone:type_name -> service.Milestone - 152, // 181: service.ProjectResource.task:type_name -> service.Task - 150, // 182: service.ProjectSearchResult.project:type_name -> service.Project - 151, // 183: service.ProjectSearchResult.milestone:type_name -> service.Milestone - 152, // 184: service.ProjectSearchResult.task:type_name -> service.Task - 162, // 185: service.ProjectActivity.project_update:type_name -> service.ProjectUpdate - 151, // 186: service.ProjectActivity.milestone:type_name -> service.Milestone - 152, // 187: service.ProjectActivity.task:type_name -> service.Task - 150, // 188: service.Node.project:type_name -> service.Project - 151, // 189: service.Node.milestone:type_name -> service.Milestone - 152, // 190: service.Node.task:type_name -> service.Task - 162, // 191: service.Node.project_update:type_name -> service.ProjectUpdate - 180, // 192: service.ProjectInput.description:type_name -> google.protobuf.StringValue - 180, // 193: service.ProjectInput.start_date:type_name -> google.protobuf.StringValue - 180, // 194: service.ProjectInput.end_date:type_name -> google.protobuf.StringValue - 0, // 195: service.ProjectInput.status:type_name -> service.ProjectStatus - 180, // 196: service.MilestoneInput.description:type_name -> google.protobuf.StringValue - 180, // 197: service.MilestoneInput.due_date:type_name -> google.protobuf.StringValue - 1, // 198: service.MilestoneInput.status:type_name -> service.MilestoneStatus - 179, // 199: service.TaskInput.assignee_id:type_name -> google.protobuf.Int32Value - 180, // 200: service.TaskInput.description:type_name -> google.protobuf.StringValue - 3, // 201: service.TaskInput.priority:type_name -> service.TaskPriority - 2, // 202: service.TaskInput.status:type_name -> service.TaskStatus - 181, // 203: service.TaskInput.estimated_hours:type_name -> google.protobuf.DoubleValue - 4, // 204: service.ProjectUpdate.update_type:type_name -> service.ProjectUpdateType - 180, // 205: service.ProjectUpdate.metadata:type_name -> google.protobuf.StringValue - 150, // 206: service.Timestamped.project:type_name -> service.Project - 151, // 207: service.Timestamped.milestone:type_name -> service.Milestone - 152, // 208: service.Assignable.task:type_name -> service.Task - 153, // 209: service.ListOfEmployee.List.items:type_name -> service.Employee - 12, // 210: service.ListOfListOfListOfTask.List.items:type_name -> service.ListOfListOfTask - 13, // 211: service.ListOfListOfMilestone.List.items:type_name -> service.ListOfMilestone - 14, // 212: service.ListOfListOfProject.List.items:type_name -> service.ListOfProject - 15, // 213: service.ListOfListOfProjectResource.List.items:type_name -> service.ListOfProjectResource - 16, // 214: service.ListOfListOfString.List.items:type_name -> service.ListOfString - 17, // 215: service.ListOfListOfTask.List.items:type_name -> service.ListOfTask - 151, // 216: service.ListOfMilestone.List.items:type_name -> service.Milestone - 150, // 217: service.ListOfProject.List.items:type_name -> service.Project - 155, // 218: service.ListOfProjectResource.List.items:type_name -> service.ProjectResource - 152, // 219: service.ListOfTask.List.items:type_name -> service.Task - 28, // 220: service.ProjectsService.LookupEmployeeById:input_type -> service.LookupEmployeeByIdRequest - 22, // 221: service.ProjectsService.LookupMilestoneById:input_type -> service.LookupMilestoneByIdRequest - 31, // 222: service.ProjectsService.LookupProductByUpc:input_type -> service.LookupProductByUpcRequest - 19, // 223: service.ProjectsService.LookupProjectById:input_type -> service.LookupProjectByIdRequest - 25, // 224: service.ProjectsService.LookupTaskById:input_type -> service.LookupTaskByIdRequest - 67, // 225: service.ProjectsService.MutationAddMilestone:input_type -> service.MutationAddMilestoneRequest - 65, // 226: service.ProjectsService.MutationAddProject:input_type -> service.MutationAddProjectRequest - 69, // 227: service.ProjectsService.MutationAddTask:input_type -> service.MutationAddTaskRequest - 71, // 228: service.ProjectsService.MutationUpdateProjectStatus:input_type -> service.MutationUpdateProjectStatusRequest - 53, // 229: service.ProjectsService.QueryArchivedProjects:input_type -> service.QueryArchivedProjectsRequest - 59, // 230: service.ProjectsService.QueryKillService:input_type -> service.QueryKillServiceRequest - 45, // 231: service.ProjectsService.QueryMilestones:input_type -> service.QueryMilestonesRequest - 63, // 232: service.ProjectsService.QueryNodesById:input_type -> service.QueryNodesByIdRequest - 61, // 233: service.ProjectsService.QueryPanic:input_type -> service.QueryPanicRequest - 35, // 234: service.ProjectsService.QueryProject:input_type -> service.QueryProjectRequest - 49, // 235: service.ProjectsService.QueryProjectActivities:input_type -> service.QueryProjectActivitiesRequest - 41, // 236: service.ProjectsService.QueryProjectResources:input_type -> service.QueryProjectResourcesRequest - 37, // 237: service.ProjectsService.QueryProjectStatuses:input_type -> service.QueryProjectStatusesRequest - 51, // 238: service.ProjectsService.QueryProjectTags:input_type -> service.QueryProjectTagsRequest - 33, // 239: service.ProjectsService.QueryProjects:input_type -> service.QueryProjectsRequest - 39, // 240: service.ProjectsService.QueryProjectsByStatus:input_type -> service.QueryProjectsByStatusRequest - 57, // 241: service.ProjectsService.QueryResourceMatrix:input_type -> service.QueryResourceMatrixRequest - 43, // 242: service.ProjectsService.QuerySearchProjects:input_type -> service.QuerySearchProjectsRequest - 47, // 243: service.ProjectsService.QueryTasks:input_type -> service.QueryTasksRequest - 55, // 244: service.ProjectsService.QueryTasksByPriority:input_type -> service.QueryTasksByPriorityRequest - 145, // 245: service.ProjectsService.RequireEmployeeTaggedProjectSummaryById:input_type -> service.RequireEmployeeTaggedProjectSummaryByIdRequest - 138, // 246: service.ProjectsService.ResolveEmployeeAverageTaskCompletionDays:input_type -> service.ResolveEmployeeAverageTaskCompletionDaysRequest - 133, // 247: service.ProjectsService.ResolveEmployeeCurrentWorkload:input_type -> service.ResolveEmployeeCurrentWorkloadRequest - 142, // 248: service.ProjectsService.ResolveEmployeeTotalProjectCount:input_type -> service.ResolveEmployeeTotalProjectCountRequest - 118, // 249: service.ProjectsService.ResolveMilestoneDaysUntilDue:input_type -> service.ResolveMilestoneDaysUntilDueRequest - 113, // 250: service.ProjectsService.ResolveMilestoneIsAtRisk:input_type -> service.ResolveMilestoneIsAtRiskRequest - 108, // 251: service.ProjectsService.ResolveProjectActiveMilestoneCount:input_type -> service.ResolveProjectActiveMilestoneCountRequest - 85, // 252: service.ProjectsService.ResolveProjectCompletionRate:input_type -> service.ResolveProjectCompletionRateRequest - 95, // 253: service.ProjectsService.ResolveProjectCriticalDeadline:input_type -> service.ResolveProjectCriticalDeadlineRequest - 90, // 254: service.ProjectsService.ResolveProjectEstimatedDaysRemaining:input_type -> service.ResolveProjectEstimatedDaysRemainingRequest - 80, // 255: service.ProjectsService.ResolveProjectFilteredTasks:input_type -> service.ResolveProjectFilteredTasksRequest - 75, // 256: service.ProjectsService.ResolveProjectSubProjects:input_type -> service.ResolveProjectSubProjectsRequest - 104, // 257: service.ProjectsService.ResolveProjectTaskCount:input_type -> service.ResolveProjectTaskCountRequest - 100, // 258: service.ProjectsService.ResolveProjectTopPriorityItem:input_type -> service.ResolveProjectTopPriorityItemRequest - 123, // 259: service.ProjectsService.ResolveTaskIsBlocked:input_type -> service.ResolveTaskIsBlockedRequest - 128, // 260: service.ProjectsService.ResolveTaskTotalEffort:input_type -> service.ResolveTaskTotalEffortRequest - 29, // 261: service.ProjectsService.LookupEmployeeById:output_type -> service.LookupEmployeeByIdResponse - 23, // 262: service.ProjectsService.LookupMilestoneById:output_type -> service.LookupMilestoneByIdResponse - 32, // 263: service.ProjectsService.LookupProductByUpc:output_type -> service.LookupProductByUpcResponse - 20, // 264: service.ProjectsService.LookupProjectById:output_type -> service.LookupProjectByIdResponse - 26, // 265: service.ProjectsService.LookupTaskById:output_type -> service.LookupTaskByIdResponse - 68, // 266: service.ProjectsService.MutationAddMilestone:output_type -> service.MutationAddMilestoneResponse - 66, // 267: service.ProjectsService.MutationAddProject:output_type -> service.MutationAddProjectResponse - 70, // 268: service.ProjectsService.MutationAddTask:output_type -> service.MutationAddTaskResponse - 72, // 269: service.ProjectsService.MutationUpdateProjectStatus:output_type -> service.MutationUpdateProjectStatusResponse - 54, // 270: service.ProjectsService.QueryArchivedProjects:output_type -> service.QueryArchivedProjectsResponse - 60, // 271: service.ProjectsService.QueryKillService:output_type -> service.QueryKillServiceResponse - 46, // 272: service.ProjectsService.QueryMilestones:output_type -> service.QueryMilestonesResponse - 64, // 273: service.ProjectsService.QueryNodesById:output_type -> service.QueryNodesByIdResponse - 62, // 274: service.ProjectsService.QueryPanic:output_type -> service.QueryPanicResponse - 36, // 275: service.ProjectsService.QueryProject:output_type -> service.QueryProjectResponse - 50, // 276: service.ProjectsService.QueryProjectActivities:output_type -> service.QueryProjectActivitiesResponse - 42, // 277: service.ProjectsService.QueryProjectResources:output_type -> service.QueryProjectResourcesResponse - 38, // 278: service.ProjectsService.QueryProjectStatuses:output_type -> service.QueryProjectStatusesResponse - 52, // 279: service.ProjectsService.QueryProjectTags:output_type -> service.QueryProjectTagsResponse - 34, // 280: service.ProjectsService.QueryProjects:output_type -> service.QueryProjectsResponse - 40, // 281: service.ProjectsService.QueryProjectsByStatus:output_type -> service.QueryProjectsByStatusResponse - 58, // 282: service.ProjectsService.QueryResourceMatrix:output_type -> service.QueryResourceMatrixResponse - 44, // 283: service.ProjectsService.QuerySearchProjects:output_type -> service.QuerySearchProjectsResponse - 48, // 284: service.ProjectsService.QueryTasks:output_type -> service.QueryTasksResponse - 56, // 285: service.ProjectsService.QueryTasksByPriority:output_type -> service.QueryTasksByPriorityResponse - 147, // 286: service.ProjectsService.RequireEmployeeTaggedProjectSummaryById:output_type -> service.RequireEmployeeTaggedProjectSummaryByIdResponse - 140, // 287: service.ProjectsService.ResolveEmployeeAverageTaskCompletionDays:output_type -> service.ResolveEmployeeAverageTaskCompletionDaysResponse - 135, // 288: service.ProjectsService.ResolveEmployeeCurrentWorkload:output_type -> service.ResolveEmployeeCurrentWorkloadResponse - 144, // 289: service.ProjectsService.ResolveEmployeeTotalProjectCount:output_type -> service.ResolveEmployeeTotalProjectCountResponse - 120, // 290: service.ProjectsService.ResolveMilestoneDaysUntilDue:output_type -> service.ResolveMilestoneDaysUntilDueResponse - 115, // 291: service.ProjectsService.ResolveMilestoneIsAtRisk:output_type -> service.ResolveMilestoneIsAtRiskResponse - 110, // 292: service.ProjectsService.ResolveProjectActiveMilestoneCount:output_type -> service.ResolveProjectActiveMilestoneCountResponse - 87, // 293: service.ProjectsService.ResolveProjectCompletionRate:output_type -> service.ResolveProjectCompletionRateResponse - 97, // 294: service.ProjectsService.ResolveProjectCriticalDeadline:output_type -> service.ResolveProjectCriticalDeadlineResponse - 92, // 295: service.ProjectsService.ResolveProjectEstimatedDaysRemaining:output_type -> service.ResolveProjectEstimatedDaysRemainingResponse - 82, // 296: service.ProjectsService.ResolveProjectFilteredTasks:output_type -> service.ResolveProjectFilteredTasksResponse - 77, // 297: service.ProjectsService.ResolveProjectSubProjects:output_type -> service.ResolveProjectSubProjectsResponse - 106, // 298: service.ProjectsService.ResolveProjectTaskCount:output_type -> service.ResolveProjectTaskCountResponse - 102, // 299: service.ProjectsService.ResolveProjectTopPriorityItem:output_type -> service.ResolveProjectTopPriorityItemResponse - 125, // 300: service.ProjectsService.ResolveTaskIsBlocked:output_type -> service.ResolveTaskIsBlockedResponse - 130, // 301: service.ProjectsService.ResolveTaskTotalEffort:output_type -> service.ResolveTaskTotalEffortResponse - 261, // [261:302] is the sub-list for method output_type - 220, // [220:261] is the sub-list for method input_type - 220, // [220:220] is the sub-list for extension type_name - 220, // [220:220] is the sub-list for extension extendee - 0, // [0:220] is the sub-list for field type_name + 151, // 132: service.RequireEmployeeFilteredProjectSummaryByIdRequest.context:type_name -> service.RequireEmployeeFilteredProjectSummaryByIdContext + 155, // 133: service.RequireEmployeeFilteredProjectSummaryByIdRequest.field_args:type_name -> service.RequireEmployeeFilteredProjectSummaryByIdArgs + 27, // 134: service.RequireEmployeeFilteredProjectSummaryByIdContext.key:type_name -> service.LookupEmployeeByIdRequestKey + 154, // 135: service.RequireEmployeeFilteredProjectSummaryByIdContext.fields:type_name -> service.RequireEmployeeFilteredProjectSummaryByIdFields + 153, // 136: service.RequireEmployeeFilteredProjectSummaryByIdResponse.result:type_name -> service.RequireEmployeeFilteredProjectSummaryByIdResult + 186, // 137: service.Project.description:type_name -> google.protobuf.StringValue + 186, // 138: service.Project.start_date:type_name -> google.protobuf.StringValue + 186, // 139: service.Project.end_date:type_name -> google.protobuf.StringValue + 0, // 140: service.Project.status:type_name -> service.ProjectStatus + 159, // 141: service.Project.team_members:type_name -> service.Employee + 160, // 142: service.Project.related_products:type_name -> service.Product + 16, // 143: service.Project.milestone_ids:type_name -> service.ListOfString + 157, // 144: service.Project.milestones:type_name -> service.Milestone + 158, // 145: service.Project.tasks:type_name -> service.Task + 187, // 146: service.Project.progress:type_name -> google.protobuf.DoubleValue + 16, // 147: service.Project.tags:type_name -> service.ListOfString + 14, // 148: service.Project.alternative_projects:type_name -> service.ListOfProject + 14, // 149: service.Project.dependencies:type_name -> service.ListOfProject + 10, // 150: service.Project.resource_groups:type_name -> service.ListOfListOfProjectResource + 12, // 151: service.Project.tasks_by_phase:type_name -> service.ListOfListOfTask + 8, // 152: service.Project.milestone_groups:type_name -> service.ListOfListOfMilestone + 7, // 153: service.Project.priority_matrix:type_name -> service.ListOfListOfListOfTask + 186, // 154: service.Milestone.description:type_name -> google.protobuf.StringValue + 186, // 155: service.Milestone.start_date:type_name -> google.protobuf.StringValue + 186, // 156: service.Milestone.end_date:type_name -> google.protobuf.StringValue + 1, // 157: service.Milestone.status:type_name -> service.MilestoneStatus + 187, // 158: service.Milestone.completion_percentage:type_name -> google.protobuf.DoubleValue + 157, // 159: service.Milestone.dependencies:type_name -> service.Milestone + 17, // 160: service.Milestone.subtasks:type_name -> service.ListOfTask + 5, // 161: service.Milestone.reviewers:type_name -> service.ListOfEmployee + 186, // 162: service.Task.milestone_id:type_name -> google.protobuf.StringValue + 185, // 163: service.Task.assignee_id:type_name -> google.protobuf.Int32Value + 186, // 164: service.Task.description:type_name -> google.protobuf.StringValue + 3, // 165: service.Task.priority:type_name -> service.TaskPriority + 2, // 166: service.Task.status:type_name -> service.TaskStatus + 187, // 167: service.Task.estimated_hours:type_name -> google.protobuf.DoubleValue + 187, // 168: service.Task.actual_hours:type_name -> google.protobuf.DoubleValue + 186, // 169: service.Task.created_at:type_name -> google.protobuf.StringValue + 186, // 170: service.Task.completed_at:type_name -> google.protobuf.StringValue + 16, // 171: service.Task.labels:type_name -> service.ListOfString + 17, // 172: service.Task.subtasks:type_name -> service.ListOfTask + 158, // 173: service.Task.dependencies:type_name -> service.Task + 6, // 174: service.Task.reviewer_ids:type_name -> service.ListOfInt + 14, // 175: service.Employee.projects:type_name -> service.ListOfProject + 158, // 176: service.Employee.assigned_tasks:type_name -> service.Task + 158, // 177: service.Employee.completed_tasks:type_name -> service.Task + 16, // 178: service.Employee.skills:type_name -> service.ListOfString + 16, // 179: service.Employee.certifications:type_name -> service.ListOfString + 9, // 180: service.Employee.project_history:type_name -> service.ListOfListOfProject + 14, // 181: service.Product.projects:type_name -> service.ListOfProject + 11, // 182: service.Product.feature_matrix:type_name -> service.ListOfListOfString + 159, // 183: service.ProjectResource.employee:type_name -> service.Employee + 160, // 184: service.ProjectResource.product:type_name -> service.Product + 157, // 185: service.ProjectResource.milestone:type_name -> service.Milestone + 158, // 186: service.ProjectResource.task:type_name -> service.Task + 156, // 187: service.ProjectSearchResult.project:type_name -> service.Project + 157, // 188: service.ProjectSearchResult.milestone:type_name -> service.Milestone + 158, // 189: service.ProjectSearchResult.task:type_name -> service.Task + 168, // 190: service.ProjectActivity.project_update:type_name -> service.ProjectUpdate + 157, // 191: service.ProjectActivity.milestone:type_name -> service.Milestone + 158, // 192: service.ProjectActivity.task:type_name -> service.Task + 156, // 193: service.Node.project:type_name -> service.Project + 157, // 194: service.Node.milestone:type_name -> service.Milestone + 158, // 195: service.Node.task:type_name -> service.Task + 168, // 196: service.Node.project_update:type_name -> service.ProjectUpdate + 186, // 197: service.ProjectInput.description:type_name -> google.protobuf.StringValue + 186, // 198: service.ProjectInput.start_date:type_name -> google.protobuf.StringValue + 186, // 199: service.ProjectInput.end_date:type_name -> google.protobuf.StringValue + 0, // 200: service.ProjectInput.status:type_name -> service.ProjectStatus + 186, // 201: service.MilestoneInput.description:type_name -> google.protobuf.StringValue + 186, // 202: service.MilestoneInput.due_date:type_name -> google.protobuf.StringValue + 1, // 203: service.MilestoneInput.status:type_name -> service.MilestoneStatus + 185, // 204: service.TaskInput.assignee_id:type_name -> google.protobuf.Int32Value + 186, // 205: service.TaskInput.description:type_name -> google.protobuf.StringValue + 3, // 206: service.TaskInput.priority:type_name -> service.TaskPriority + 2, // 207: service.TaskInput.status:type_name -> service.TaskStatus + 187, // 208: service.TaskInput.estimated_hours:type_name -> google.protobuf.DoubleValue + 4, // 209: service.ProjectUpdate.update_type:type_name -> service.ProjectUpdateType + 186, // 210: service.ProjectUpdate.metadata:type_name -> google.protobuf.StringValue + 156, // 211: service.Timestamped.project:type_name -> service.Project + 157, // 212: service.Timestamped.milestone:type_name -> service.Milestone + 158, // 213: service.Assignable.task:type_name -> service.Task + 159, // 214: service.ListOfEmployee.List.items:type_name -> service.Employee + 12, // 215: service.ListOfListOfListOfTask.List.items:type_name -> service.ListOfListOfTask + 13, // 216: service.ListOfListOfMilestone.List.items:type_name -> service.ListOfMilestone + 14, // 217: service.ListOfListOfProject.List.items:type_name -> service.ListOfProject + 15, // 218: service.ListOfListOfProjectResource.List.items:type_name -> service.ListOfProjectResource + 16, // 219: service.ListOfListOfString.List.items:type_name -> service.ListOfString + 17, // 220: service.ListOfListOfTask.List.items:type_name -> service.ListOfTask + 157, // 221: service.ListOfMilestone.List.items:type_name -> service.Milestone + 156, // 222: service.ListOfProject.List.items:type_name -> service.Project + 161, // 223: service.ListOfProjectResource.List.items:type_name -> service.ProjectResource + 158, // 224: service.ListOfTask.List.items:type_name -> service.Task + 28, // 225: service.ProjectsService.LookupEmployeeById:input_type -> service.LookupEmployeeByIdRequest + 22, // 226: service.ProjectsService.LookupMilestoneById:input_type -> service.LookupMilestoneByIdRequest + 31, // 227: service.ProjectsService.LookupProductByUpc:input_type -> service.LookupProductByUpcRequest + 19, // 228: service.ProjectsService.LookupProjectById:input_type -> service.LookupProjectByIdRequest + 25, // 229: service.ProjectsService.LookupTaskById:input_type -> service.LookupTaskByIdRequest + 67, // 230: service.ProjectsService.MutationAddMilestone:input_type -> service.MutationAddMilestoneRequest + 65, // 231: service.ProjectsService.MutationAddProject:input_type -> service.MutationAddProjectRequest + 69, // 232: service.ProjectsService.MutationAddTask:input_type -> service.MutationAddTaskRequest + 71, // 233: service.ProjectsService.MutationUpdateProjectStatus:input_type -> service.MutationUpdateProjectStatusRequest + 53, // 234: service.ProjectsService.QueryArchivedProjects:input_type -> service.QueryArchivedProjectsRequest + 59, // 235: service.ProjectsService.QueryKillService:input_type -> service.QueryKillServiceRequest + 45, // 236: service.ProjectsService.QueryMilestones:input_type -> service.QueryMilestonesRequest + 63, // 237: service.ProjectsService.QueryNodesById:input_type -> service.QueryNodesByIdRequest + 61, // 238: service.ProjectsService.QueryPanic:input_type -> service.QueryPanicRequest + 35, // 239: service.ProjectsService.QueryProject:input_type -> service.QueryProjectRequest + 49, // 240: service.ProjectsService.QueryProjectActivities:input_type -> service.QueryProjectActivitiesRequest + 41, // 241: service.ProjectsService.QueryProjectResources:input_type -> service.QueryProjectResourcesRequest + 37, // 242: service.ProjectsService.QueryProjectStatuses:input_type -> service.QueryProjectStatusesRequest + 51, // 243: service.ProjectsService.QueryProjectTags:input_type -> service.QueryProjectTagsRequest + 33, // 244: service.ProjectsService.QueryProjects:input_type -> service.QueryProjectsRequest + 39, // 245: service.ProjectsService.QueryProjectsByStatus:input_type -> service.QueryProjectsByStatusRequest + 57, // 246: service.ProjectsService.QueryResourceMatrix:input_type -> service.QueryResourceMatrixRequest + 43, // 247: service.ProjectsService.QuerySearchProjects:input_type -> service.QuerySearchProjectsRequest + 47, // 248: service.ProjectsService.QueryTasks:input_type -> service.QueryTasksRequest + 55, // 249: service.ProjectsService.QueryTasksByPriority:input_type -> service.QueryTasksByPriorityRequest + 150, // 250: service.ProjectsService.RequireEmployeeFilteredProjectSummaryById:input_type -> service.RequireEmployeeFilteredProjectSummaryByIdRequest + 145, // 251: service.ProjectsService.RequireEmployeeTaggedProjectSummaryById:input_type -> service.RequireEmployeeTaggedProjectSummaryByIdRequest + 138, // 252: service.ProjectsService.ResolveEmployeeAverageTaskCompletionDays:input_type -> service.ResolveEmployeeAverageTaskCompletionDaysRequest + 133, // 253: service.ProjectsService.ResolveEmployeeCurrentWorkload:input_type -> service.ResolveEmployeeCurrentWorkloadRequest + 142, // 254: service.ProjectsService.ResolveEmployeeTotalProjectCount:input_type -> service.ResolveEmployeeTotalProjectCountRequest + 118, // 255: service.ProjectsService.ResolveMilestoneDaysUntilDue:input_type -> service.ResolveMilestoneDaysUntilDueRequest + 113, // 256: service.ProjectsService.ResolveMilestoneIsAtRisk:input_type -> service.ResolveMilestoneIsAtRiskRequest + 108, // 257: service.ProjectsService.ResolveProjectActiveMilestoneCount:input_type -> service.ResolveProjectActiveMilestoneCountRequest + 85, // 258: service.ProjectsService.ResolveProjectCompletionRate:input_type -> service.ResolveProjectCompletionRateRequest + 95, // 259: service.ProjectsService.ResolveProjectCriticalDeadline:input_type -> service.ResolveProjectCriticalDeadlineRequest + 90, // 260: service.ProjectsService.ResolveProjectEstimatedDaysRemaining:input_type -> service.ResolveProjectEstimatedDaysRemainingRequest + 80, // 261: service.ProjectsService.ResolveProjectFilteredTasks:input_type -> service.ResolveProjectFilteredTasksRequest + 75, // 262: service.ProjectsService.ResolveProjectSubProjects:input_type -> service.ResolveProjectSubProjectsRequest + 104, // 263: service.ProjectsService.ResolveProjectTaskCount:input_type -> service.ResolveProjectTaskCountRequest + 100, // 264: service.ProjectsService.ResolveProjectTopPriorityItem:input_type -> service.ResolveProjectTopPriorityItemRequest + 123, // 265: service.ProjectsService.ResolveTaskIsBlocked:input_type -> service.ResolveTaskIsBlockedRequest + 128, // 266: service.ProjectsService.ResolveTaskTotalEffort:input_type -> service.ResolveTaskTotalEffortRequest + 29, // 267: service.ProjectsService.LookupEmployeeById:output_type -> service.LookupEmployeeByIdResponse + 23, // 268: service.ProjectsService.LookupMilestoneById:output_type -> service.LookupMilestoneByIdResponse + 32, // 269: service.ProjectsService.LookupProductByUpc:output_type -> service.LookupProductByUpcResponse + 20, // 270: service.ProjectsService.LookupProjectById:output_type -> service.LookupProjectByIdResponse + 26, // 271: service.ProjectsService.LookupTaskById:output_type -> service.LookupTaskByIdResponse + 68, // 272: service.ProjectsService.MutationAddMilestone:output_type -> service.MutationAddMilestoneResponse + 66, // 273: service.ProjectsService.MutationAddProject:output_type -> service.MutationAddProjectResponse + 70, // 274: service.ProjectsService.MutationAddTask:output_type -> service.MutationAddTaskResponse + 72, // 275: service.ProjectsService.MutationUpdateProjectStatus:output_type -> service.MutationUpdateProjectStatusResponse + 54, // 276: service.ProjectsService.QueryArchivedProjects:output_type -> service.QueryArchivedProjectsResponse + 60, // 277: service.ProjectsService.QueryKillService:output_type -> service.QueryKillServiceResponse + 46, // 278: service.ProjectsService.QueryMilestones:output_type -> service.QueryMilestonesResponse + 64, // 279: service.ProjectsService.QueryNodesById:output_type -> service.QueryNodesByIdResponse + 62, // 280: service.ProjectsService.QueryPanic:output_type -> service.QueryPanicResponse + 36, // 281: service.ProjectsService.QueryProject:output_type -> service.QueryProjectResponse + 50, // 282: service.ProjectsService.QueryProjectActivities:output_type -> service.QueryProjectActivitiesResponse + 42, // 283: service.ProjectsService.QueryProjectResources:output_type -> service.QueryProjectResourcesResponse + 38, // 284: service.ProjectsService.QueryProjectStatuses:output_type -> service.QueryProjectStatusesResponse + 52, // 285: service.ProjectsService.QueryProjectTags:output_type -> service.QueryProjectTagsResponse + 34, // 286: service.ProjectsService.QueryProjects:output_type -> service.QueryProjectsResponse + 40, // 287: service.ProjectsService.QueryProjectsByStatus:output_type -> service.QueryProjectsByStatusResponse + 58, // 288: service.ProjectsService.QueryResourceMatrix:output_type -> service.QueryResourceMatrixResponse + 44, // 289: service.ProjectsService.QuerySearchProjects:output_type -> service.QuerySearchProjectsResponse + 48, // 290: service.ProjectsService.QueryTasks:output_type -> service.QueryTasksResponse + 56, // 291: service.ProjectsService.QueryTasksByPriority:output_type -> service.QueryTasksByPriorityResponse + 152, // 292: service.ProjectsService.RequireEmployeeFilteredProjectSummaryById:output_type -> service.RequireEmployeeFilteredProjectSummaryByIdResponse + 147, // 293: service.ProjectsService.RequireEmployeeTaggedProjectSummaryById:output_type -> service.RequireEmployeeTaggedProjectSummaryByIdResponse + 140, // 294: service.ProjectsService.ResolveEmployeeAverageTaskCompletionDays:output_type -> service.ResolveEmployeeAverageTaskCompletionDaysResponse + 135, // 295: service.ProjectsService.ResolveEmployeeCurrentWorkload:output_type -> service.ResolveEmployeeCurrentWorkloadResponse + 144, // 296: service.ProjectsService.ResolveEmployeeTotalProjectCount:output_type -> service.ResolveEmployeeTotalProjectCountResponse + 120, // 297: service.ProjectsService.ResolveMilestoneDaysUntilDue:output_type -> service.ResolveMilestoneDaysUntilDueResponse + 115, // 298: service.ProjectsService.ResolveMilestoneIsAtRisk:output_type -> service.ResolveMilestoneIsAtRiskResponse + 110, // 299: service.ProjectsService.ResolveProjectActiveMilestoneCount:output_type -> service.ResolveProjectActiveMilestoneCountResponse + 87, // 300: service.ProjectsService.ResolveProjectCompletionRate:output_type -> service.ResolveProjectCompletionRateResponse + 97, // 301: service.ProjectsService.ResolveProjectCriticalDeadline:output_type -> service.ResolveProjectCriticalDeadlineResponse + 92, // 302: service.ProjectsService.ResolveProjectEstimatedDaysRemaining:output_type -> service.ResolveProjectEstimatedDaysRemainingResponse + 82, // 303: service.ProjectsService.ResolveProjectFilteredTasks:output_type -> service.ResolveProjectFilteredTasksResponse + 77, // 304: service.ProjectsService.ResolveProjectSubProjects:output_type -> service.ResolveProjectSubProjectsResponse + 106, // 305: service.ProjectsService.ResolveProjectTaskCount:output_type -> service.ResolveProjectTaskCountResponse + 102, // 306: service.ProjectsService.ResolveProjectTopPriorityItem:output_type -> service.ResolveProjectTopPriorityItemResponse + 125, // 307: service.ProjectsService.ResolveTaskIsBlocked:output_type -> service.ResolveTaskIsBlockedResponse + 130, // 308: service.ProjectsService.ResolveTaskTotalEffort:output_type -> service.ResolveTaskTotalEffortResponse + 267, // [267:309] is the sub-list for method output_type + 225, // [225:267] is the sub-list for method input_type + 225, // [225:225] is the sub-list for extension type_name + 225, // [225:225] is the sub-list for extension extendee + 0, // [0:225] is the sub-list for field type_name } func init() { file_generated_service_proto_init() } @@ -11798,2120 +10628,42 @@ func file_generated_service_proto_init() { if File_generated_service_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_generated_service_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ListOfEmployee); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ListOfInt); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfListOfTask); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfMilestone); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfProject); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfProjectResource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfString); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfTask); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ListOfMilestone); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ListOfProject); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ListOfProjectResource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ListOfString); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*ListOfTask); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*LookupProjectByIdRequestKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*LookupProjectByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*LookupProjectByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*LookupMilestoneByIdRequestKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*LookupMilestoneByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*LookupMilestoneByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*LookupTaskByIdRequestKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*LookupTaskByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*LookupTaskByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*LookupEmployeeByIdRequestKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*LookupEmployeeByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*LookupEmployeeByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*LookupProductByUpcRequestKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*LookupProductByUpcRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*LookupProductByUpcResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectStatusesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectStatusesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectsByStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectsByStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectResourcesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectResourcesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*QuerySearchProjectsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*QuerySearchProjectsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*QueryMilestonesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*QueryMilestonesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*QueryTasksRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*QueryTasksResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectActivitiesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectActivitiesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectTagsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*QueryProjectTagsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*QueryArchivedProjectsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*QueryArchivedProjectsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*QueryTasksByPriorityRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*QueryTasksByPriorityResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*QueryResourceMatrixRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*QueryResourceMatrixResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*QueryKillServiceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*QueryKillServiceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*QueryPanicRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*QueryPanicResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*QueryNodesByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*QueryNodesByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddProjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddProjectResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddMilestoneRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddMilestoneResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddTaskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*MutationAddTaskResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*MutationUpdateProjectStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*MutationUpdateProjectStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectSubProjectsArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectSubProjectsContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectSubProjectsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectSubProjectsResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectSubProjectsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectFilteredTasksArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectFilteredTasksContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectFilteredTasksRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectFilteredTasksResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectFilteredTasksResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCompletionRateArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCompletionRateContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCompletionRateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCompletionRateResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCompletionRateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectEstimatedDaysRemainingArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectEstimatedDaysRemainingContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectEstimatedDaysRemainingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectEstimatedDaysRemainingResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectEstimatedDaysRemainingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCriticalDeadlineArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCriticalDeadlineContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCriticalDeadlineRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCriticalDeadlineResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectCriticalDeadlineResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTopPriorityItemArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTopPriorityItemContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTopPriorityItemRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTopPriorityItemResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTopPriorityItemResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTaskCountContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTaskCountRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTaskCountResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectTaskCountResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectActiveMilestoneCountContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectActiveMilestoneCountRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectActiveMilestoneCountResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*ResolveProjectActiveMilestoneCountResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneIsAtRiskArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneIsAtRiskContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneIsAtRiskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneIsAtRiskResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneIsAtRiskResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneDaysUntilDueArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneDaysUntilDueContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneDaysUntilDueRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneDaysUntilDueResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*ResolveMilestoneDaysUntilDueResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskIsBlockedArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskIsBlockedContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskIsBlockedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskIsBlockedResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskIsBlockedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskTotalEffortArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskTotalEffortContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskTotalEffortRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskTotalEffortResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTaskTotalEffortResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeCurrentWorkloadArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[127].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeCurrentWorkloadContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[128].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeCurrentWorkloadRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeCurrentWorkloadResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeCurrentWorkloadResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[131].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeAverageTaskCompletionDaysArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeAverageTaskCompletionDaysContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[133].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeAverageTaskCompletionDaysRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[134].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeAverageTaskCompletionDaysResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeAverageTaskCompletionDaysResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeTotalProjectCountContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeTotalProjectCountRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[138].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeTotalProjectCountResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[139].Exporter = func(v any, i int) any { - switch v := v.(*ResolveEmployeeTotalProjectCountResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[140].Exporter = func(v any, i int) any { - switch v := v.(*RequireEmployeeTaggedProjectSummaryByIdRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[141].Exporter = func(v any, i int) any { - switch v := v.(*RequireEmployeeTaggedProjectSummaryByIdContext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[142].Exporter = func(v any, i int) any { - switch v := v.(*RequireEmployeeTaggedProjectSummaryByIdResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[143].Exporter = func(v any, i int) any { - switch v := v.(*RequireEmployeeTaggedProjectSummaryByIdResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[144].Exporter = func(v any, i int) any { - switch v := v.(*RequireEmployeeTaggedProjectSummaryByIdFields); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[145].Exporter = func(v any, i int) any { - switch v := v.(*Project); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[146].Exporter = func(v any, i int) any { - switch v := v.(*Milestone); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[147].Exporter = func(v any, i int) any { - switch v := v.(*Task); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[148].Exporter = func(v any, i int) any { - switch v := v.(*Employee); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[149].Exporter = func(v any, i int) any { - switch v := v.(*Product); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[150].Exporter = func(v any, i int) any { - switch v := v.(*ProjectResource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[151].Exporter = func(v any, i int) any { - switch v := v.(*ProjectSearchResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[152].Exporter = func(v any, i int) any { - switch v := v.(*ProjectActivity); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[153].Exporter = func(v any, i int) any { - switch v := v.(*Node); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[154].Exporter = func(v any, i int) any { - switch v := v.(*ProjectInput); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[155].Exporter = func(v any, i int) any { - switch v := v.(*MilestoneInput); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[156].Exporter = func(v any, i int) any { - switch v := v.(*TaskInput); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[157].Exporter = func(v any, i int) any { - switch v := v.(*ProjectUpdate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[158].Exporter = func(v any, i int) any { - switch v := v.(*Timestamped); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[159].Exporter = func(v any, i int) any { - switch v := v.(*Assignable); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[160].Exporter = func(v any, i int) any { - switch v := v.(*ListOfEmployee_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[161].Exporter = func(v any, i int) any { - switch v := v.(*ListOfInt_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[162].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfListOfTask_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[163].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfMilestone_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[164].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfProject_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[165].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfProjectResource_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[166].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfString_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[167].Exporter = func(v any, i int) any { - switch v := v.(*ListOfListOfTask_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[168].Exporter = func(v any, i int) any { - switch v := v.(*ListOfMilestone_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[169].Exporter = func(v any, i int) any { - switch v := v.(*ListOfProject_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[170].Exporter = func(v any, i int) any { - switch v := v.(*ListOfProjectResource_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[171].Exporter = func(v any, i int) any { - switch v := v.(*ListOfString_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_generated_service_proto_msgTypes[172].Exporter = func(v any, i int) any { - switch v := v.(*ListOfTask_List); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_generated_service_proto_msgTypes[150].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[156].OneofWrappers = []any{ (*ProjectResource_Employee)(nil), (*ProjectResource_Product)(nil), (*ProjectResource_Milestone)(nil), (*ProjectResource_Task)(nil), } - file_generated_service_proto_msgTypes[151].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[157].OneofWrappers = []any{ (*ProjectSearchResult_Project)(nil), (*ProjectSearchResult_Milestone)(nil), (*ProjectSearchResult_Task)(nil), } - file_generated_service_proto_msgTypes[152].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[158].OneofWrappers = []any{ (*ProjectActivity_ProjectUpdate)(nil), (*ProjectActivity_Milestone)(nil), (*ProjectActivity_Task)(nil), } - file_generated_service_proto_msgTypes[153].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[159].OneofWrappers = []any{ (*Node_Project)(nil), (*Node_Milestone)(nil), (*Node_Task)(nil), (*Node_ProjectUpdate)(nil), } - file_generated_service_proto_msgTypes[158].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[164].OneofWrappers = []any{ (*Timestamped_Project)(nil), (*Timestamped_Milestone)(nil), } - file_generated_service_proto_msgTypes[159].OneofWrappers = []any{ + file_generated_service_proto_msgTypes[165].OneofWrappers = []any{ (*Assignable_Task)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_generated_service_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_generated_service_proto_rawDesc), len(file_generated_service_proto_rawDesc)), NumEnums: 5, - NumMessages: 173, + NumMessages: 179, NumExtensions: 0, NumServices: 1, }, @@ -13921,7 +10673,6 @@ func file_generated_service_proto_init() { MessageInfos: file_generated_service_proto_msgTypes, }.Build() File_generated_service_proto = out.File - file_generated_service_proto_rawDesc = nil file_generated_service_proto_goTypes = nil file_generated_service_proto_depIdxs = nil } diff --git a/demo/pkg/subgraphs/projects/generated/service.proto b/demo/pkg/subgraphs/projects/generated/service.proto index f6f12d69f1..f4d4bb2cd9 100644 --- a/demo/pkg/subgraphs/projects/generated/service.proto +++ b/demo/pkg/subgraphs/projects/generated/service.proto @@ -37,6 +37,7 @@ service ProjectsService { rpc QuerySearchProjects(QuerySearchProjectsRequest) returns (QuerySearchProjectsResponse) {} rpc QueryTasks(QueryTasksRequest) returns (QueryTasksResponse) {} rpc QueryTasksByPriority(QueryTasksByPriorityRequest) returns (QueryTasksByPriorityResponse) {} + rpc RequireEmployeeFilteredProjectSummaryById(RequireEmployeeFilteredProjectSummaryByIdRequest) returns (RequireEmployeeFilteredProjectSummaryByIdResponse) {} rpc RequireEmployeeTaggedProjectSummaryById(RequireEmployeeTaggedProjectSummaryByIdRequest) returns (RequireEmployeeTaggedProjectSummaryByIdResponse) {} rpc ResolveEmployeeAverageTaskCompletionDays(ResolveEmployeeAverageTaskCompletionDaysRequest) returns (ResolveEmployeeAverageTaskCompletionDaysResponse) {} rpc ResolveEmployeeCurrentWorkload(ResolveEmployeeCurrentWorkloadRequest) returns (ResolveEmployeeCurrentWorkloadResponse) {} @@ -841,6 +842,35 @@ message RequireEmployeeTaggedProjectSummaryByIdFields { string expertise = 1; } +message RequireEmployeeFilteredProjectSummaryByIdRequest { + // RequireEmployeeFilteredProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeFilteredProjectSummaryById. + repeated RequireEmployeeFilteredProjectSummaryByIdContext context = 1; + // field_args provides the arguments for the required fields resolver field filteredProjectSummary of type Employee. + RequireEmployeeFilteredProjectSummaryByIdArgs field_args = 2; +} + +message RequireEmployeeFilteredProjectSummaryByIdContext { + LookupEmployeeByIdRequestKey key = 1; + RequireEmployeeFilteredProjectSummaryByIdFields fields = 2; +} + +message RequireEmployeeFilteredProjectSummaryByIdResponse { + // RequireEmployeeFilteredProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeFilteredProjectSummaryById. + repeated RequireEmployeeFilteredProjectSummaryByIdResult result = 1; +} + +message RequireEmployeeFilteredProjectSummaryByIdResult { + string filtered_project_summary = 1; +} + +message RequireEmployeeFilteredProjectSummaryByIdFields { + string expertise = 1; +} + +message RequireEmployeeFilteredProjectSummaryByIdArgs { + string tag = 1; +} + message Project { string id = 1; string name = 2; diff --git a/demo/pkg/subgraphs/projects/generated/service_grpc.pb.go b/demo/pkg/subgraphs/projects/generated/service_grpc.pb.go index 0132559ce7..70e7896d45 100644 --- a/demo/pkg/subgraphs/projects/generated/service_grpc.pb.go +++ b/demo/pkg/subgraphs/projects/generated/service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v5.29.3 +// - protoc-gen-go-grpc v1.6.1 +// - protoc v7.34.0 // source: generated/service.proto package projects @@ -19,47 +19,48 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - ProjectsService_LookupEmployeeById_FullMethodName = "/service.ProjectsService/LookupEmployeeById" - ProjectsService_LookupMilestoneById_FullMethodName = "/service.ProjectsService/LookupMilestoneById" - ProjectsService_LookupProductByUpc_FullMethodName = "/service.ProjectsService/LookupProductByUpc" - ProjectsService_LookupProjectById_FullMethodName = "/service.ProjectsService/LookupProjectById" - ProjectsService_LookupTaskById_FullMethodName = "/service.ProjectsService/LookupTaskById" - ProjectsService_MutationAddMilestone_FullMethodName = "/service.ProjectsService/MutationAddMilestone" - ProjectsService_MutationAddProject_FullMethodName = "/service.ProjectsService/MutationAddProject" - ProjectsService_MutationAddTask_FullMethodName = "/service.ProjectsService/MutationAddTask" - ProjectsService_MutationUpdateProjectStatus_FullMethodName = "/service.ProjectsService/MutationUpdateProjectStatus" - ProjectsService_QueryArchivedProjects_FullMethodName = "/service.ProjectsService/QueryArchivedProjects" - ProjectsService_QueryKillService_FullMethodName = "/service.ProjectsService/QueryKillService" - ProjectsService_QueryMilestones_FullMethodName = "/service.ProjectsService/QueryMilestones" - ProjectsService_QueryNodesById_FullMethodName = "/service.ProjectsService/QueryNodesById" - ProjectsService_QueryPanic_FullMethodName = "/service.ProjectsService/QueryPanic" - ProjectsService_QueryProject_FullMethodName = "/service.ProjectsService/QueryProject" - ProjectsService_QueryProjectActivities_FullMethodName = "/service.ProjectsService/QueryProjectActivities" - ProjectsService_QueryProjectResources_FullMethodName = "/service.ProjectsService/QueryProjectResources" - ProjectsService_QueryProjectStatuses_FullMethodName = "/service.ProjectsService/QueryProjectStatuses" - ProjectsService_QueryProjectTags_FullMethodName = "/service.ProjectsService/QueryProjectTags" - ProjectsService_QueryProjects_FullMethodName = "/service.ProjectsService/QueryProjects" - ProjectsService_QueryProjectsByStatus_FullMethodName = "/service.ProjectsService/QueryProjectsByStatus" - ProjectsService_QueryResourceMatrix_FullMethodName = "/service.ProjectsService/QueryResourceMatrix" - ProjectsService_QuerySearchProjects_FullMethodName = "/service.ProjectsService/QuerySearchProjects" - ProjectsService_QueryTasks_FullMethodName = "/service.ProjectsService/QueryTasks" - ProjectsService_QueryTasksByPriority_FullMethodName = "/service.ProjectsService/QueryTasksByPriority" - ProjectsService_RequireEmployeeTaggedProjectSummaryById_FullMethodName = "/service.ProjectsService/RequireEmployeeTaggedProjectSummaryById" - ProjectsService_ResolveEmployeeAverageTaskCompletionDays_FullMethodName = "/service.ProjectsService/ResolveEmployeeAverageTaskCompletionDays" - ProjectsService_ResolveEmployeeCurrentWorkload_FullMethodName = "/service.ProjectsService/ResolveEmployeeCurrentWorkload" - ProjectsService_ResolveEmployeeTotalProjectCount_FullMethodName = "/service.ProjectsService/ResolveEmployeeTotalProjectCount" - ProjectsService_ResolveMilestoneDaysUntilDue_FullMethodName = "/service.ProjectsService/ResolveMilestoneDaysUntilDue" - ProjectsService_ResolveMilestoneIsAtRisk_FullMethodName = "/service.ProjectsService/ResolveMilestoneIsAtRisk" - ProjectsService_ResolveProjectActiveMilestoneCount_FullMethodName = "/service.ProjectsService/ResolveProjectActiveMilestoneCount" - ProjectsService_ResolveProjectCompletionRate_FullMethodName = "/service.ProjectsService/ResolveProjectCompletionRate" - ProjectsService_ResolveProjectCriticalDeadline_FullMethodName = "/service.ProjectsService/ResolveProjectCriticalDeadline" - ProjectsService_ResolveProjectEstimatedDaysRemaining_FullMethodName = "/service.ProjectsService/ResolveProjectEstimatedDaysRemaining" - ProjectsService_ResolveProjectFilteredTasks_FullMethodName = "/service.ProjectsService/ResolveProjectFilteredTasks" - ProjectsService_ResolveProjectSubProjects_FullMethodName = "/service.ProjectsService/ResolveProjectSubProjects" - ProjectsService_ResolveProjectTaskCount_FullMethodName = "/service.ProjectsService/ResolveProjectTaskCount" - ProjectsService_ResolveProjectTopPriorityItem_FullMethodName = "/service.ProjectsService/ResolveProjectTopPriorityItem" - ProjectsService_ResolveTaskIsBlocked_FullMethodName = "/service.ProjectsService/ResolveTaskIsBlocked" - ProjectsService_ResolveTaskTotalEffort_FullMethodName = "/service.ProjectsService/ResolveTaskTotalEffort" + ProjectsService_LookupEmployeeById_FullMethodName = "/service.ProjectsService/LookupEmployeeById" + ProjectsService_LookupMilestoneById_FullMethodName = "/service.ProjectsService/LookupMilestoneById" + ProjectsService_LookupProductByUpc_FullMethodName = "/service.ProjectsService/LookupProductByUpc" + ProjectsService_LookupProjectById_FullMethodName = "/service.ProjectsService/LookupProjectById" + ProjectsService_LookupTaskById_FullMethodName = "/service.ProjectsService/LookupTaskById" + ProjectsService_MutationAddMilestone_FullMethodName = "/service.ProjectsService/MutationAddMilestone" + ProjectsService_MutationAddProject_FullMethodName = "/service.ProjectsService/MutationAddProject" + ProjectsService_MutationAddTask_FullMethodName = "/service.ProjectsService/MutationAddTask" + ProjectsService_MutationUpdateProjectStatus_FullMethodName = "/service.ProjectsService/MutationUpdateProjectStatus" + ProjectsService_QueryArchivedProjects_FullMethodName = "/service.ProjectsService/QueryArchivedProjects" + ProjectsService_QueryKillService_FullMethodName = "/service.ProjectsService/QueryKillService" + ProjectsService_QueryMilestones_FullMethodName = "/service.ProjectsService/QueryMilestones" + ProjectsService_QueryNodesById_FullMethodName = "/service.ProjectsService/QueryNodesById" + ProjectsService_QueryPanic_FullMethodName = "/service.ProjectsService/QueryPanic" + ProjectsService_QueryProject_FullMethodName = "/service.ProjectsService/QueryProject" + ProjectsService_QueryProjectActivities_FullMethodName = "/service.ProjectsService/QueryProjectActivities" + ProjectsService_QueryProjectResources_FullMethodName = "/service.ProjectsService/QueryProjectResources" + ProjectsService_QueryProjectStatuses_FullMethodName = "/service.ProjectsService/QueryProjectStatuses" + ProjectsService_QueryProjectTags_FullMethodName = "/service.ProjectsService/QueryProjectTags" + ProjectsService_QueryProjects_FullMethodName = "/service.ProjectsService/QueryProjects" + ProjectsService_QueryProjectsByStatus_FullMethodName = "/service.ProjectsService/QueryProjectsByStatus" + ProjectsService_QueryResourceMatrix_FullMethodName = "/service.ProjectsService/QueryResourceMatrix" + ProjectsService_QuerySearchProjects_FullMethodName = "/service.ProjectsService/QuerySearchProjects" + ProjectsService_QueryTasks_FullMethodName = "/service.ProjectsService/QueryTasks" + ProjectsService_QueryTasksByPriority_FullMethodName = "/service.ProjectsService/QueryTasksByPriority" + ProjectsService_RequireEmployeeFilteredProjectSummaryById_FullMethodName = "/service.ProjectsService/RequireEmployeeFilteredProjectSummaryById" + ProjectsService_RequireEmployeeTaggedProjectSummaryById_FullMethodName = "/service.ProjectsService/RequireEmployeeTaggedProjectSummaryById" + ProjectsService_ResolveEmployeeAverageTaskCompletionDays_FullMethodName = "/service.ProjectsService/ResolveEmployeeAverageTaskCompletionDays" + ProjectsService_ResolveEmployeeCurrentWorkload_FullMethodName = "/service.ProjectsService/ResolveEmployeeCurrentWorkload" + ProjectsService_ResolveEmployeeTotalProjectCount_FullMethodName = "/service.ProjectsService/ResolveEmployeeTotalProjectCount" + ProjectsService_ResolveMilestoneDaysUntilDue_FullMethodName = "/service.ProjectsService/ResolveMilestoneDaysUntilDue" + ProjectsService_ResolveMilestoneIsAtRisk_FullMethodName = "/service.ProjectsService/ResolveMilestoneIsAtRisk" + ProjectsService_ResolveProjectActiveMilestoneCount_FullMethodName = "/service.ProjectsService/ResolveProjectActiveMilestoneCount" + ProjectsService_ResolveProjectCompletionRate_FullMethodName = "/service.ProjectsService/ResolveProjectCompletionRate" + ProjectsService_ResolveProjectCriticalDeadline_FullMethodName = "/service.ProjectsService/ResolveProjectCriticalDeadline" + ProjectsService_ResolveProjectEstimatedDaysRemaining_FullMethodName = "/service.ProjectsService/ResolveProjectEstimatedDaysRemaining" + ProjectsService_ResolveProjectFilteredTasks_FullMethodName = "/service.ProjectsService/ResolveProjectFilteredTasks" + ProjectsService_ResolveProjectSubProjects_FullMethodName = "/service.ProjectsService/ResolveProjectSubProjects" + ProjectsService_ResolveProjectTaskCount_FullMethodName = "/service.ProjectsService/ResolveProjectTaskCount" + ProjectsService_ResolveProjectTopPriorityItem_FullMethodName = "/service.ProjectsService/ResolveProjectTopPriorityItem" + ProjectsService_ResolveTaskIsBlocked_FullMethodName = "/service.ProjectsService/ResolveTaskIsBlocked" + ProjectsService_ResolveTaskTotalEffort_FullMethodName = "/service.ProjectsService/ResolveTaskTotalEffort" ) // ProjectsServiceClient is the client API for ProjectsService service. @@ -98,6 +99,7 @@ type ProjectsServiceClient interface { QuerySearchProjects(ctx context.Context, in *QuerySearchProjectsRequest, opts ...grpc.CallOption) (*QuerySearchProjectsResponse, error) QueryTasks(ctx context.Context, in *QueryTasksRequest, opts ...grpc.CallOption) (*QueryTasksResponse, error) QueryTasksByPriority(ctx context.Context, in *QueryTasksByPriorityRequest, opts ...grpc.CallOption) (*QueryTasksByPriorityResponse, error) + RequireEmployeeFilteredProjectSummaryById(ctx context.Context, in *RequireEmployeeFilteredProjectSummaryByIdRequest, opts ...grpc.CallOption) (*RequireEmployeeFilteredProjectSummaryByIdResponse, error) RequireEmployeeTaggedProjectSummaryById(ctx context.Context, in *RequireEmployeeTaggedProjectSummaryByIdRequest, opts ...grpc.CallOption) (*RequireEmployeeTaggedProjectSummaryByIdResponse, error) ResolveEmployeeAverageTaskCompletionDays(ctx context.Context, in *ResolveEmployeeAverageTaskCompletionDaysRequest, opts ...grpc.CallOption) (*ResolveEmployeeAverageTaskCompletionDaysResponse, error) ResolveEmployeeCurrentWorkload(ctx context.Context, in *ResolveEmployeeCurrentWorkloadRequest, opts ...grpc.CallOption) (*ResolveEmployeeCurrentWorkloadResponse, error) @@ -374,6 +376,16 @@ func (c *projectsServiceClient) QueryTasksByPriority(ctx context.Context, in *Qu return out, nil } +func (c *projectsServiceClient) RequireEmployeeFilteredProjectSummaryById(ctx context.Context, in *RequireEmployeeFilteredProjectSummaryByIdRequest, opts ...grpc.CallOption) (*RequireEmployeeFilteredProjectSummaryByIdResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RequireEmployeeFilteredProjectSummaryByIdResponse) + err := c.cc.Invoke(ctx, ProjectsService_RequireEmployeeFilteredProjectSummaryById_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *projectsServiceClient) RequireEmployeeTaggedProjectSummaryById(ctx context.Context, in *RequireEmployeeTaggedProjectSummaryByIdRequest, opts ...grpc.CallOption) (*RequireEmployeeTaggedProjectSummaryByIdResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RequireEmployeeTaggedProjectSummaryByIdResponse) @@ -570,6 +582,7 @@ type ProjectsServiceServer interface { QuerySearchProjects(context.Context, *QuerySearchProjectsRequest) (*QuerySearchProjectsResponse, error) QueryTasks(context.Context, *QueryTasksRequest) (*QueryTasksResponse, error) QueryTasksByPriority(context.Context, *QueryTasksByPriorityRequest) (*QueryTasksByPriorityResponse, error) + RequireEmployeeFilteredProjectSummaryById(context.Context, *RequireEmployeeFilteredProjectSummaryByIdRequest) (*RequireEmployeeFilteredProjectSummaryByIdResponse, error) RequireEmployeeTaggedProjectSummaryById(context.Context, *RequireEmployeeTaggedProjectSummaryByIdRequest) (*RequireEmployeeTaggedProjectSummaryByIdResponse, error) ResolveEmployeeAverageTaskCompletionDays(context.Context, *ResolveEmployeeAverageTaskCompletionDaysRequest) (*ResolveEmployeeAverageTaskCompletionDaysResponse, error) ResolveEmployeeCurrentWorkload(context.Context, *ResolveEmployeeCurrentWorkloadRequest) (*ResolveEmployeeCurrentWorkloadResponse, error) @@ -597,127 +610,130 @@ type ProjectsServiceServer interface { type UnimplementedProjectsServiceServer struct{} func (UnimplementedProjectsServiceServer) LookupEmployeeById(context.Context, *LookupEmployeeByIdRequest) (*LookupEmployeeByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LookupEmployeeById not implemented") + return nil, status.Error(codes.Unimplemented, "method LookupEmployeeById not implemented") } func (UnimplementedProjectsServiceServer) LookupMilestoneById(context.Context, *LookupMilestoneByIdRequest) (*LookupMilestoneByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LookupMilestoneById not implemented") + return nil, status.Error(codes.Unimplemented, "method LookupMilestoneById not implemented") } func (UnimplementedProjectsServiceServer) LookupProductByUpc(context.Context, *LookupProductByUpcRequest) (*LookupProductByUpcResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LookupProductByUpc not implemented") + return nil, status.Error(codes.Unimplemented, "method LookupProductByUpc not implemented") } func (UnimplementedProjectsServiceServer) LookupProjectById(context.Context, *LookupProjectByIdRequest) (*LookupProjectByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LookupProjectById not implemented") + return nil, status.Error(codes.Unimplemented, "method LookupProjectById not implemented") } func (UnimplementedProjectsServiceServer) LookupTaskById(context.Context, *LookupTaskByIdRequest) (*LookupTaskByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method LookupTaskById not implemented") + return nil, status.Error(codes.Unimplemented, "method LookupTaskById not implemented") } func (UnimplementedProjectsServiceServer) MutationAddMilestone(context.Context, *MutationAddMilestoneRequest) (*MutationAddMilestoneResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MutationAddMilestone not implemented") + return nil, status.Error(codes.Unimplemented, "method MutationAddMilestone not implemented") } func (UnimplementedProjectsServiceServer) MutationAddProject(context.Context, *MutationAddProjectRequest) (*MutationAddProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MutationAddProject not implemented") + return nil, status.Error(codes.Unimplemented, "method MutationAddProject not implemented") } func (UnimplementedProjectsServiceServer) MutationAddTask(context.Context, *MutationAddTaskRequest) (*MutationAddTaskResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MutationAddTask not implemented") + return nil, status.Error(codes.Unimplemented, "method MutationAddTask not implemented") } func (UnimplementedProjectsServiceServer) MutationUpdateProjectStatus(context.Context, *MutationUpdateProjectStatusRequest) (*MutationUpdateProjectStatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MutationUpdateProjectStatus not implemented") + return nil, status.Error(codes.Unimplemented, "method MutationUpdateProjectStatus not implemented") } func (UnimplementedProjectsServiceServer) QueryArchivedProjects(context.Context, *QueryArchivedProjectsRequest) (*QueryArchivedProjectsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryArchivedProjects not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryArchivedProjects not implemented") } func (UnimplementedProjectsServiceServer) QueryKillService(context.Context, *QueryKillServiceRequest) (*QueryKillServiceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryKillService not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryKillService not implemented") } func (UnimplementedProjectsServiceServer) QueryMilestones(context.Context, *QueryMilestonesRequest) (*QueryMilestonesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryMilestones not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryMilestones not implemented") } func (UnimplementedProjectsServiceServer) QueryNodesById(context.Context, *QueryNodesByIdRequest) (*QueryNodesByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryNodesById not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryNodesById not implemented") } func (UnimplementedProjectsServiceServer) QueryPanic(context.Context, *QueryPanicRequest) (*QueryPanicResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryPanic not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryPanic not implemented") } func (UnimplementedProjectsServiceServer) QueryProject(context.Context, *QueryProjectRequest) (*QueryProjectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProject not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProject not implemented") } func (UnimplementedProjectsServiceServer) QueryProjectActivities(context.Context, *QueryProjectActivitiesRequest) (*QueryProjectActivitiesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjectActivities not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjectActivities not implemented") } func (UnimplementedProjectsServiceServer) QueryProjectResources(context.Context, *QueryProjectResourcesRequest) (*QueryProjectResourcesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjectResources not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjectResources not implemented") } func (UnimplementedProjectsServiceServer) QueryProjectStatuses(context.Context, *QueryProjectStatusesRequest) (*QueryProjectStatusesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjectStatuses not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjectStatuses not implemented") } func (UnimplementedProjectsServiceServer) QueryProjectTags(context.Context, *QueryProjectTagsRequest) (*QueryProjectTagsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjectTags not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjectTags not implemented") } func (UnimplementedProjectsServiceServer) QueryProjects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjects not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjects not implemented") } func (UnimplementedProjectsServiceServer) QueryProjectsByStatus(context.Context, *QueryProjectsByStatusRequest) (*QueryProjectsByStatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryProjectsByStatus not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryProjectsByStatus not implemented") } func (UnimplementedProjectsServiceServer) QueryResourceMatrix(context.Context, *QueryResourceMatrixRequest) (*QueryResourceMatrixResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryResourceMatrix not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryResourceMatrix not implemented") } func (UnimplementedProjectsServiceServer) QuerySearchProjects(context.Context, *QuerySearchProjectsRequest) (*QuerySearchProjectsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QuerySearchProjects not implemented") + return nil, status.Error(codes.Unimplemented, "method QuerySearchProjects not implemented") } func (UnimplementedProjectsServiceServer) QueryTasks(context.Context, *QueryTasksRequest) (*QueryTasksResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryTasks not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryTasks not implemented") } func (UnimplementedProjectsServiceServer) QueryTasksByPriority(context.Context, *QueryTasksByPriorityRequest) (*QueryTasksByPriorityResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method QueryTasksByPriority not implemented") + return nil, status.Error(codes.Unimplemented, "method QueryTasksByPriority not implemented") +} +func (UnimplementedProjectsServiceServer) RequireEmployeeFilteredProjectSummaryById(context.Context, *RequireEmployeeFilteredProjectSummaryByIdRequest) (*RequireEmployeeFilteredProjectSummaryByIdResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RequireEmployeeFilteredProjectSummaryById not implemented") } func (UnimplementedProjectsServiceServer) RequireEmployeeTaggedProjectSummaryById(context.Context, *RequireEmployeeTaggedProjectSummaryByIdRequest) (*RequireEmployeeTaggedProjectSummaryByIdResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RequireEmployeeTaggedProjectSummaryById not implemented") + return nil, status.Error(codes.Unimplemented, "method RequireEmployeeTaggedProjectSummaryById not implemented") } func (UnimplementedProjectsServiceServer) ResolveEmployeeAverageTaskCompletionDays(context.Context, *ResolveEmployeeAverageTaskCompletionDaysRequest) (*ResolveEmployeeAverageTaskCompletionDaysResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveEmployeeAverageTaskCompletionDays not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveEmployeeAverageTaskCompletionDays not implemented") } func (UnimplementedProjectsServiceServer) ResolveEmployeeCurrentWorkload(context.Context, *ResolveEmployeeCurrentWorkloadRequest) (*ResolveEmployeeCurrentWorkloadResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveEmployeeCurrentWorkload not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveEmployeeCurrentWorkload not implemented") } func (UnimplementedProjectsServiceServer) ResolveEmployeeTotalProjectCount(context.Context, *ResolveEmployeeTotalProjectCountRequest) (*ResolveEmployeeTotalProjectCountResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveEmployeeTotalProjectCount not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveEmployeeTotalProjectCount not implemented") } func (UnimplementedProjectsServiceServer) ResolveMilestoneDaysUntilDue(context.Context, *ResolveMilestoneDaysUntilDueRequest) (*ResolveMilestoneDaysUntilDueResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveMilestoneDaysUntilDue not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveMilestoneDaysUntilDue not implemented") } func (UnimplementedProjectsServiceServer) ResolveMilestoneIsAtRisk(context.Context, *ResolveMilestoneIsAtRiskRequest) (*ResolveMilestoneIsAtRiskResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveMilestoneIsAtRisk not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveMilestoneIsAtRisk not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectActiveMilestoneCount(context.Context, *ResolveProjectActiveMilestoneCountRequest) (*ResolveProjectActiveMilestoneCountResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectActiveMilestoneCount not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectActiveMilestoneCount not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectCompletionRate(context.Context, *ResolveProjectCompletionRateRequest) (*ResolveProjectCompletionRateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectCompletionRate not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectCompletionRate not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectCriticalDeadline(context.Context, *ResolveProjectCriticalDeadlineRequest) (*ResolveProjectCriticalDeadlineResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectCriticalDeadline not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectCriticalDeadline not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectEstimatedDaysRemaining(context.Context, *ResolveProjectEstimatedDaysRemainingRequest) (*ResolveProjectEstimatedDaysRemainingResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectEstimatedDaysRemaining not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectEstimatedDaysRemaining not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectFilteredTasks(context.Context, *ResolveProjectFilteredTasksRequest) (*ResolveProjectFilteredTasksResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectFilteredTasks not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectFilteredTasks not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectSubProjects(context.Context, *ResolveProjectSubProjectsRequest) (*ResolveProjectSubProjectsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectSubProjects not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectSubProjects not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectTaskCount(context.Context, *ResolveProjectTaskCountRequest) (*ResolveProjectTaskCountResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectTaskCount not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectTaskCount not implemented") } func (UnimplementedProjectsServiceServer) ResolveProjectTopPriorityItem(context.Context, *ResolveProjectTopPriorityItemRequest) (*ResolveProjectTopPriorityItemResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveProjectTopPriorityItem not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveProjectTopPriorityItem not implemented") } func (UnimplementedProjectsServiceServer) ResolveTaskIsBlocked(context.Context, *ResolveTaskIsBlockedRequest) (*ResolveTaskIsBlockedResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveTaskIsBlocked not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveTaskIsBlocked not implemented") } func (UnimplementedProjectsServiceServer) ResolveTaskTotalEffort(context.Context, *ResolveTaskTotalEffortRequest) (*ResolveTaskTotalEffortResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResolveTaskTotalEffort not implemented") + return nil, status.Error(codes.Unimplemented, "method ResolveTaskTotalEffort not implemented") } func (UnimplementedProjectsServiceServer) mustEmbedUnimplementedProjectsServiceServer() {} func (UnimplementedProjectsServiceServer) testEmbeddedByValue() {} @@ -730,7 +746,7 @@ type UnsafeProjectsServiceServer interface { } func RegisterProjectsServiceServer(s grpc.ServiceRegistrar, srv ProjectsServiceServer) { - // If the following call pancis, it indicates UnimplementedProjectsServiceServer was + // If the following call panics, it indicates UnimplementedProjectsServiceServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. @@ -1190,6 +1206,24 @@ func _ProjectsService_QueryTasksByPriority_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } +func _ProjectsService_RequireEmployeeFilteredProjectSummaryById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequireEmployeeFilteredProjectSummaryByIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProjectsServiceServer).RequireEmployeeFilteredProjectSummaryById(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProjectsService_RequireEmployeeFilteredProjectSummaryById_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProjectsServiceServer).RequireEmployeeFilteredProjectSummaryById(ctx, req.(*RequireEmployeeFilteredProjectSummaryByIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProjectsService_RequireEmployeeTaggedProjectSummaryById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RequireEmployeeTaggedProjectSummaryByIdRequest) if err := dec(in); err != nil { @@ -1585,6 +1619,10 @@ var ProjectsService_ServiceDesc = grpc.ServiceDesc{ MethodName: "QueryTasksByPriority", Handler: _ProjectsService_QueryTasksByPriority_Handler, }, + { + MethodName: "RequireEmployeeFilteredProjectSummaryById", + Handler: _ProjectsService_RequireEmployeeFilteredProjectSummaryById_Handler, + }, { MethodName: "RequireEmployeeTaggedProjectSummaryById", Handler: _ProjectsService_RequireEmployeeTaggedProjectSummaryById_Handler, diff --git a/demo/pkg/subgraphs/projects/src/schema.graphql b/demo/pkg/subgraphs/projects/src/schema.graphql index de4caba232..442240620b 100644 --- a/demo/pkg/subgraphs/projects/src/schema.graphql +++ b/demo/pkg/subgraphs/projects/src/schema.graphql @@ -239,6 +239,7 @@ type Employee @key(fields: "id") { # Field requiring expertise from employees subgraph taggedProjectSummary: String! @requires(fields: "expertise") + filteredProjectSummary(tag: String!): String! @requires(fields: "expertise") # Computed fields with @connect__fieldResolver currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: "id") diff --git a/demo/pkg/subgraphs/projects/src/service/service.go b/demo/pkg/subgraphs/projects/src/service/service.go index 5c7dc30ff6..bdc8a433c4 100644 --- a/demo/pkg/subgraphs/projects/src/service/service.go +++ b/demo/pkg/subgraphs/projects/src/service/service.go @@ -487,6 +487,69 @@ func (p *ProjectsService) LookupEmployeeById(ctx context.Context, req *service.L return &service.LookupEmployeeByIdResponse{Result: result}, nil } +// RequireEmployeeFilteredProjectSummaryById implements projects.ProjectsServiceServer. +// It resolves the filteredProjectSummary field on Employee, which requires the `expertise` field +// from the employees subgraph via @requires(fields: "expertise") and accepts a `tag` argument to filter. +func (p *ProjectsService) RequireEmployeeFilteredProjectSummaryById(_ context.Context, req *service.RequireEmployeeFilteredProjectSummaryByIdRequest) (*service.RequireEmployeeFilteredProjectSummaryByIdResponse, error) { + p.lock.RLock() + defer p.lock.RUnlock() + + tagFilter := "" + if req.GetFieldArgs() != nil { + tagFilter = req.GetFieldArgs().GetTag() + } + + result := make([]*service.RequireEmployeeFilteredProjectSummaryByIdResult, 0, len(req.Context)) + + for _, ctx := range req.Context { + keyID := ctx.GetKey().GetId() + if keyID == "" { + return nil, status.Errorf(codes.InvalidArgument, "missing employee id") + } + id, err := strconv.ParseInt(keyID, 10, 32) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "invalid employee id %q: %v", keyID, err) + } + + var matchingTags []string + emp := data.GetEmployeeByID(int32(id)) + if emp != nil && emp.Projects != nil && emp.Projects.List != nil { + seen := make(map[string]struct{}) + for _, project := range emp.Projects.List.Items { + if project.Tags == nil || project.Tags.List == nil { + continue + } + for _, tag := range project.Tags.List.Items { + if _, ok := seen[tag]; ok { + continue + } + seen[tag] = struct{}{} + if tagFilter == "" || strings.EqualFold(tag, tagFilter) { + matchingTags = append(matchingTags, tag) + } + } + } + } + + employeeExpertise := ctx.GetFields().GetExpertise() + if employeeExpertise == "" { + employeeExpertise = "none" + } + + var summary string + if len(matchingTags) > 0 { + summary = fmt.Sprintf("expertise: %s, filtered tags (tag=%s): [%s]", employeeExpertise, tagFilter, strings.Join(matchingTags, ", ")) + } else { + summary = fmt.Sprintf("expertise: %s, no tags matched (tag=%s)", employeeExpertise, tagFilter) + } + result = append(result, &service.RequireEmployeeFilteredProjectSummaryByIdResult{ + FilteredProjectSummary: summary, + }) + } + + return &service.RequireEmployeeFilteredProjectSummaryByIdResponse{Result: result}, nil +} + // RequireEmployeeTaggedProjectSummaryById implements projects.ProjectsServiceServer. // It resolves the taggedProjectSummary field on Employee, which requires the `tag` field // from the employees subgraph via @requires(fields: "tag"). diff --git a/router-tests/protocol/grpc_subgraph_test.go b/router-tests/protocol/grpc_subgraph_test.go index f4f8dfb87a..59753c9505 100644 --- a/router-tests/protocol/grpc_subgraph_test.go +++ b/router-tests/protocol/grpc_subgraph_test.go @@ -320,6 +320,16 @@ func TestGRPCSubgraph(t *testing.T) { query: `{ employee(id: 999) { id taggedProjectSummary } }`, expected: `{"data":{"employee":null}}`, }, + { + name: "query employee @requires field with argument resolved with expertise", + query: `{ employee(id: 1) { id filteredProjectSummary(tag: "cloud") } }`, + expected: `{"data":{"employee":{"id":1,"filteredProjectSummary":"expertise: Backend Architecture, filtered tags (tag=cloud): [cloud]"}}}`, + }, + { + name: "query employee @requires field with argument — no matching tags", + query: `{ employee(id: 1) { id filteredProjectSummary(tag: "nonexistent") } }`, + expected: `{"data":{"employee":{"id":1,"filteredProjectSummary":"expertise: Backend Architecture, no tags matched (tag=nonexistent)"}}}`, + }, } testenv.Run(t, &testenv.Config{ RouterConfigJSONTemplate: testenv.ConfigWithGRPCJSONTemplate, diff --git a/router-tests/testenv/testdata/configWithGRPC.json b/router-tests/testenv/testdata/configWithGRPC.json index 1684a2913f..998fcb8598 100644 --- a/router-tests/testenv/testdata/configWithGRPC.json +++ b/router-tests/testenv/testdata/configWithGRPC.json @@ -1334,6 +1334,7 @@ "certifications", "projectHistory", "taggedProjectSummary", + "filteredProjectSummary", "currentWorkload", "averageTaskCompletionDays", "totalProjectCount" @@ -1363,7 +1364,7 @@ "subscription": { "enabled": true }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Query\n mutation: Mutation\n}\n\ntype Query {\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n\n # New query fields with different list patterns\n projectTags: [String] # nullable list of nullable strings\n archivedProjects: [Project]! # non-nullable list of nullable projects\n tasksByPriority(projectId: ID!): [[Task]] # nullable list of nullable lists\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]! # non-nullable list of non-nullable lists\n\n # query to simulate that the service goes down\n killService: Boolean!\n panic: Boolean!\n\n nodesById(id: ID!): [Node!]!\n}\n\ntype Mutation {\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String # ISO date\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\n# Interfaces\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\n# Updated Project type implementing interfaces\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n # Federated references:\n teamMembers: [Employee!]!\n relatedProducts: [Product!]! # from products subgraph\n # Project milestones or checkpoints\n milestoneIds: [String!] # Array of milestone identifiers\n\n # New fields for extended functionality\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float # Completion percentage\n\n # New fields with various list patterns for testing\n tags: [String] # nullable list of nullable tags\n alternativeProjects: [Project] # nullable list of nullable projects\n dependencies: [Project!] # nullable list of non-nullable projects\n resourceGroups: [[ProjectResource!]!]! # nested lists: non-nullable list of non-nullable lists\n tasksByPhase: [[Task!]]! # nested lists: non-nullable list of nullable lists\n milestoneGroups: [[Milestone]] # nested lists: nullable list of nullable lists\n priorityMatrix: [[[Task!]!]!] # triple nested: non-nullable list of non-nullable lists of non-nullable lists\n\n # Recursive field resolver for project hierarchy\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n\n # Computed fields with @connect__fieldResolver\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]! @connect__fieldResolver(context: \"id\")\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n\n # No-arg field resolvers (expensive computed fields without arguments)\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\n# New types - simplified with ID references only\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String # ISO date (when milestone work starts)\n endDate: String # ISO date (milestone due date)\n status: MilestoneStatus!\n completionPercentage: Float\n\n # New fields with different list patterns\n dependencies: [Milestone]! # non-nullable list of nullable milestones\n subtasks: [Task] # nullable list of nullable tasks\n reviewers: [Employee!] # nullable list of non-nullable employees\n\n # Computed fields with @connect__fieldResolver\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n}\n\ntype Task implements Node & Assignable @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String # ISO date\n completedAt: String # ISO date\n\n # New fields with different list patterns\n labels: [String] # nullable list of nullable labels\n subtasks: [Task!] # nullable list of non-nullable subtasks\n dependencies: [Task]! # non-nullable list of nullable tasks\n attachmentUrls: [String!]! # non-nullable list of non-nullable URLs\n reviewerIds: [Int] # nullable list of nullable reviewer IDs\n\n # Computed fields with @connect__fieldResolver\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String! # ISO date\n metadata: String # JSON metadata\n}\n\n# Enums\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\n# Unions\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\n# Federated types (unchanged)\ntype Employee @key(fields: \"id\") {\n id: Int!\n expertise: String! @external\n # New field resolved by this subgraph:\n projects: [Project!]\n # New fields for extended functionality\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n\n # New fields with different list patterns\n skills: [String] # nullable list of nullable skills\n certifications: [String!] # nullable list of non-nullable certifications\n projectHistory: [[Project!]]! # non-nullable list of nullable lists of non-nullable projects\n\n # Field requiring expertise from employees subgraph\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n\n # Computed fields with @connect__fieldResolver\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float @connect__fieldResolver(context: \"id\")\n\n # No-arg field resolver (expensive computed field without arguments)\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Product @key(fields: \"upc\") {\n upc: String!\n # Projects contributing to this product:\n projects: [Project!]\n\n # New field with nested lists\n featureMatrix: [[String]] # nullable list of nullable lists of nullable features\n}\n" + "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Query\n mutation: Mutation\n}\n\ntype Query {\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n\n # New query fields with different list patterns\n projectTags: [String] # nullable list of nullable strings\n archivedProjects: [Project]! # non-nullable list of nullable projects\n tasksByPriority(projectId: ID!): [[Task]] # nullable list of nullable lists\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]! # non-nullable list of non-nullable lists\n\n # query to simulate that the service goes down\n killService: Boolean!\n panic: Boolean!\n\n nodesById(id: ID!): [Node!]!\n}\n\ntype Mutation {\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String # ISO date\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\n# Interfaces\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\n# Updated Project type implementing interfaces\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n # Federated references:\n teamMembers: [Employee!]!\n relatedProducts: [Product!]! # from products subgraph\n # Project milestones or checkpoints\n milestoneIds: [String!] # Array of milestone identifiers\n\n # New fields for extended functionality\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float # Completion percentage\n\n # New fields with various list patterns for testing\n tags: [String] # nullable list of nullable tags\n alternativeProjects: [Project] # nullable list of nullable projects\n dependencies: [Project!] # nullable list of non-nullable projects\n resourceGroups: [[ProjectResource!]!]! # nested lists: non-nullable list of non-nullable lists\n tasksByPhase: [[Task!]]! # nested lists: non-nullable list of nullable lists\n milestoneGroups: [[Milestone]] # nested lists: nullable list of nullable lists\n priorityMatrix: [[[Task!]!]!] # triple nested: non-nullable list of non-nullable lists of non-nullable lists\n\n # Recursive field resolver for project hierarchy\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n\n # Computed fields with @connect__fieldResolver\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]! @connect__fieldResolver(context: \"id\")\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n\n # No-arg field resolvers (expensive computed fields without arguments)\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\n# New types - simplified with ID references only\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String # ISO date (when milestone work starts)\n endDate: String # ISO date (milestone due date)\n status: MilestoneStatus!\n completionPercentage: Float\n\n # New fields with different list patterns\n dependencies: [Milestone]! # non-nullable list of nullable milestones\n subtasks: [Task] # nullable list of nullable tasks\n reviewers: [Employee!] # nullable list of non-nullable employees\n\n # Computed fields with @connect__fieldResolver\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n}\n\ntype Task implements Node & Assignable @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String # ISO date\n completedAt: String # ISO date\n\n # New fields with different list patterns\n labels: [String] # nullable list of nullable labels\n subtasks: [Task!] # nullable list of non-nullable subtasks\n dependencies: [Task]! # non-nullable list of nullable tasks\n attachmentUrls: [String!]! # non-nullable list of non-nullable URLs\n reviewerIds: [Int] # nullable list of nullable reviewer IDs\n\n # Computed fields with @connect__fieldResolver\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String! # ISO date\n metadata: String # JSON metadata\n}\n\n# Enums\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\n# Unions\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\n# Federated types (unchanged)\ntype Employee @key(fields: \"id\") {\n id: Int!\n expertise: String! @external\n # New field resolved by this subgraph:\n projects: [Project!]\n # New fields for extended functionality\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n\n # New fields with different list patterns\n skills: [String] # nullable list of nullable skills\n certifications: [String!] # nullable list of non-nullable certifications\n projectHistory: [[Project!]]! # non-nullable list of nullable lists of non-nullable projects\n\n # Field requiring expertise from employees subgraph\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n filteredProjectSummary(tag: String!): String! @requires(fields: \"expertise\")\n\n # Computed fields with @connect__fieldResolver\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float @connect__fieldResolver(context: \"id\")\n\n # No-arg field resolver (expensive computed field without arguments)\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Product @key(fields: \"upc\") {\n upc: String!\n # Projects contributing to this product:\n projects: [Project!]\n\n # New field with nested lists\n featureMatrix: [[String]] # nullable list of nullable lists of nullable features\n}\n" }, "upstreamSchema": { "key": "07b9d39255850e84272bc4367127a2c5013d0ddd" }, "grpc": { @@ -1550,6 +1551,12 @@ "rpc": "RequireEmployeeTaggedProjectSummaryById", "request": "RequireEmployeeTaggedProjectSummaryByIdRequest", "response": "RequireEmployeeTaggedProjectSummaryByIdResponse" + }, + { + "fieldMapping": { "original": "filteredProjectSummary", "mapped": "filtered_project_summary", "argumentMappings": [{ "original": "tag", "mapped": "tag" }] }, + "rpc": "RequireEmployeeFilteredProjectSummaryById", + "request": "RequireEmployeeFilteredProjectSummaryByIdRequest", + "response": "RequireEmployeeFilteredProjectSummaryByIdResponse" } ] }, @@ -1826,6 +1833,7 @@ { "original": "certifications", "mapped": "certifications" }, { "original": "projectHistory", "mapped": "project_history" }, { "original": "taggedProjectSummary", "mapped": "tagged_project_summary" }, + { "original": "filteredProjectSummary", "mapped": "filtered_project_summary", "argumentMappings": [{ "original": "tag", "mapped": "tag" }] }, { "original": "currentWorkload", "mapped": "current_workload", @@ -2114,7 +2122,7 @@ } ] }, - "protoSchema": "syntax = \"proto3\";\npackage service;\n\noption go_package = \"github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects\";\n\nimport \"google/protobuf/wrappers.proto\";\n\n// Service definition for ProjectsService\nservice ProjectsService {\n // Lookup Employee entity by id\n rpc LookupEmployeeById(LookupEmployeeByIdRequest) returns (LookupEmployeeByIdResponse) {}\n // Lookup Milestone entity by id\n rpc LookupMilestoneById(LookupMilestoneByIdRequest) returns (LookupMilestoneByIdResponse) {}\n // Lookup Product entity by upc\n rpc LookupProductByUpc(LookupProductByUpcRequest) returns (LookupProductByUpcResponse) {}\n // Lookup Project entity by id\n rpc LookupProjectById(LookupProjectByIdRequest) returns (LookupProjectByIdResponse) {}\n // Lookup Task entity by id\n rpc LookupTaskById(LookupTaskByIdRequest) returns (LookupTaskByIdResponse) {}\n rpc MutationAddMilestone(MutationAddMilestoneRequest) returns (MutationAddMilestoneResponse) {}\n rpc MutationAddProject(MutationAddProjectRequest) returns (MutationAddProjectResponse) {}\n rpc MutationAddTask(MutationAddTaskRequest) returns (MutationAddTaskResponse) {}\n rpc MutationUpdateProjectStatus(MutationUpdateProjectStatusRequest) returns (MutationUpdateProjectStatusResponse) {}\n rpc QueryArchivedProjects(QueryArchivedProjectsRequest) returns (QueryArchivedProjectsResponse) {}\n rpc QueryKillService(QueryKillServiceRequest) returns (QueryKillServiceResponse) {}\n rpc QueryMilestones(QueryMilestonesRequest) returns (QueryMilestonesResponse) {}\n rpc QueryNodesById(QueryNodesByIdRequest) returns (QueryNodesByIdResponse) {}\n rpc QueryPanic(QueryPanicRequest) returns (QueryPanicResponse) {}\n rpc QueryProject(QueryProjectRequest) returns (QueryProjectResponse) {}\n rpc QueryProjectActivities(QueryProjectActivitiesRequest) returns (QueryProjectActivitiesResponse) {}\n rpc QueryProjectResources(QueryProjectResourcesRequest) returns (QueryProjectResourcesResponse) {}\n rpc QueryProjectStatuses(QueryProjectStatusesRequest) returns (QueryProjectStatusesResponse) {}\n rpc QueryProjectTags(QueryProjectTagsRequest) returns (QueryProjectTagsResponse) {}\n rpc QueryProjects(QueryProjectsRequest) returns (QueryProjectsResponse) {}\n rpc QueryProjectsByStatus(QueryProjectsByStatusRequest) returns (QueryProjectsByStatusResponse) {}\n rpc QueryResourceMatrix(QueryResourceMatrixRequest) returns (QueryResourceMatrixResponse) {}\n rpc QuerySearchProjects(QuerySearchProjectsRequest) returns (QuerySearchProjectsResponse) {}\n rpc QueryTasks(QueryTasksRequest) returns (QueryTasksResponse) {}\n rpc QueryTasksByPriority(QueryTasksByPriorityRequest) returns (QueryTasksByPriorityResponse) {}\n rpc RequireEmployeeTaggedProjectSummaryById(RequireEmployeeTaggedProjectSummaryByIdRequest) returns (RequireEmployeeTaggedProjectSummaryByIdResponse) {}\n rpc ResolveEmployeeAverageTaskCompletionDays(ResolveEmployeeAverageTaskCompletionDaysRequest) returns (ResolveEmployeeAverageTaskCompletionDaysResponse) {}\n rpc ResolveEmployeeCurrentWorkload(ResolveEmployeeCurrentWorkloadRequest) returns (ResolveEmployeeCurrentWorkloadResponse) {}\n rpc ResolveEmployeeTotalProjectCount(ResolveEmployeeTotalProjectCountRequest) returns (ResolveEmployeeTotalProjectCountResponse) {}\n rpc ResolveMilestoneDaysUntilDue(ResolveMilestoneDaysUntilDueRequest) returns (ResolveMilestoneDaysUntilDueResponse) {}\n rpc ResolveMilestoneIsAtRisk(ResolveMilestoneIsAtRiskRequest) returns (ResolveMilestoneIsAtRiskResponse) {}\n rpc ResolveProjectActiveMilestoneCount(ResolveProjectActiveMilestoneCountRequest) returns (ResolveProjectActiveMilestoneCountResponse) {}\n rpc ResolveProjectCompletionRate(ResolveProjectCompletionRateRequest) returns (ResolveProjectCompletionRateResponse) {}\n rpc ResolveProjectCriticalDeadline(ResolveProjectCriticalDeadlineRequest) returns (ResolveProjectCriticalDeadlineResponse) {}\n rpc ResolveProjectEstimatedDaysRemaining(ResolveProjectEstimatedDaysRemainingRequest) returns (ResolveProjectEstimatedDaysRemainingResponse) {}\n rpc ResolveProjectFilteredTasks(ResolveProjectFilteredTasksRequest) returns (ResolveProjectFilteredTasksResponse) {}\n rpc ResolveProjectSubProjects(ResolveProjectSubProjectsRequest) returns (ResolveProjectSubProjectsResponse) {}\n rpc ResolveProjectTaskCount(ResolveProjectTaskCountRequest) returns (ResolveProjectTaskCountResponse) {}\n rpc ResolveProjectTopPriorityItem(ResolveProjectTopPriorityItemRequest) returns (ResolveProjectTopPriorityItemResponse) {}\n rpc ResolveTaskIsBlocked(ResolveTaskIsBlockedRequest) returns (ResolveTaskIsBlockedResponse) {}\n rpc ResolveTaskTotalEffort(ResolveTaskTotalEffortRequest) returns (ResolveTaskTotalEffortResponse) {}\n}\n\n// Wrapper message for a list of Employee.\nmessage ListOfEmployee {\n message List {\n repeated Employee items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Int.\nmessage ListOfInt {\n message List {\n repeated int32 items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfListOfTask {\n message List {\n repeated ListOfListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfListOfMilestone {\n message List {\n repeated ListOfMilestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfListOfProject {\n message List {\n repeated ListOfProject items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfListOfProjectResource {\n message List {\n repeated ListOfProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfListOfString {\n message List {\n repeated ListOfString items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfTask {\n message List {\n repeated ListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfMilestone {\n message List {\n repeated Milestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfProject {\n message List {\n repeated Project items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfProjectResource {\n message List {\n repeated ProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfString {\n message List {\n repeated string items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfTask {\n message List {\n repeated Task items = 1;\n }\n List list = 1;\n}\n// Key message for Project entity lookup\nmessage LookupProjectByIdRequestKey {\n // Key field for Project entity lookup.\n string id = 1;\n}\n\n// Request message for Project entity lookup.\nmessage LookupProjectByIdRequest {\n /*\n * List of keys to look up Project entities.\n * Order matters - each key maps to one entity in LookupProjectByIdResponse.\n */\n repeated LookupProjectByIdRequestKey keys = 1;\n}\n\n// Response message for Project entity lookup.\nmessage LookupProjectByIdResponse {\n /*\n * List of Project entities in the same order as the keys in LookupProjectByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Project result = 1;\n}\n\n// Key message for Milestone entity lookup\nmessage LookupMilestoneByIdRequestKey {\n // Key field for Milestone entity lookup.\n string id = 1;\n}\n\n// Request message for Milestone entity lookup.\nmessage LookupMilestoneByIdRequest {\n /*\n * List of keys to look up Milestone entities.\n * Order matters - each key maps to one entity in LookupMilestoneByIdResponse.\n */\n repeated LookupMilestoneByIdRequestKey keys = 1;\n}\n\n// Response message for Milestone entity lookup.\nmessage LookupMilestoneByIdResponse {\n /*\n * List of Milestone entities in the same order as the keys in LookupMilestoneByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Milestone result = 1;\n}\n\n// Key message for Task entity lookup\nmessage LookupTaskByIdRequestKey {\n // Key field for Task entity lookup.\n string id = 1;\n}\n\n// Request message for Task entity lookup.\nmessage LookupTaskByIdRequest {\n /*\n * List of keys to look up Task entities.\n * Order matters - each key maps to one entity in LookupTaskByIdResponse.\n */\n repeated LookupTaskByIdRequestKey keys = 1;\n}\n\n// Response message for Task entity lookup.\nmessage LookupTaskByIdResponse {\n /*\n * List of Task entities in the same order as the keys in LookupTaskByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Task result = 1;\n}\n\n// Key message for Employee entity lookup\nmessage LookupEmployeeByIdRequestKey {\n // Key field for Employee entity lookup.\n string id = 1;\n}\n\n// Request message for Employee entity lookup.\nmessage LookupEmployeeByIdRequest {\n /*\n * List of keys to look up Employee entities.\n * Order matters - each key maps to one entity in LookupEmployeeByIdResponse.\n */\n repeated LookupEmployeeByIdRequestKey keys = 1;\n}\n\n// Response message for Employee entity lookup.\nmessage LookupEmployeeByIdResponse {\n /*\n * List of Employee entities in the same order as the keys in LookupEmployeeByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Employee result = 1;\n}\n\n// Key message for Product entity lookup\nmessage LookupProductByUpcRequestKey {\n // Key field for Product entity lookup.\n string upc = 1;\n}\n\n// Request message for Product entity lookup.\nmessage LookupProductByUpcRequest {\n /*\n * List of keys to look up Product entities.\n * Order matters - each key maps to one entity in LookupProductByUpcResponse.\n */\n repeated LookupProductByUpcRequestKey keys = 1;\n}\n\n// Response message for Product entity lookup.\nmessage LookupProductByUpcResponse {\n /*\n * List of Product entities in the same order as the keys in LookupProductByUpcRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Product result = 1;\n}\n\n// Request message for projects operation.\nmessage QueryProjectsRequest {\n}\n// Response message for projects operation.\nmessage QueryProjectsResponse {\n repeated Project projects = 1;\n}\n// Request message for project operation.\nmessage QueryProjectRequest {\n string id = 1;\n}\n// Response message for project operation.\nmessage QueryProjectResponse {\n Project project = 1;\n}\n// Request message for projectStatuses operation.\nmessage QueryProjectStatusesRequest {\n}\n// Response message for projectStatuses operation.\nmessage QueryProjectStatusesResponse {\n repeated ProjectStatus project_statuses = 1;\n}\n// Request message for projectsByStatus operation.\nmessage QueryProjectsByStatusRequest {\n ProjectStatus status = 1;\n}\n// Response message for projectsByStatus operation.\nmessage QueryProjectsByStatusResponse {\n repeated Project projects_by_status = 1;\n}\n// Request message for projectResources operation.\nmessage QueryProjectResourcesRequest {\n string project_id = 1;\n}\n// Response message for projectResources operation.\nmessage QueryProjectResourcesResponse {\n repeated ProjectResource project_resources = 1;\n}\n// Request message for searchProjects operation.\nmessage QuerySearchProjectsRequest {\n string query = 1;\n}\n// Response message for searchProjects operation.\nmessage QuerySearchProjectsResponse {\n repeated ProjectSearchResult search_projects = 1;\n}\n// Request message for milestones operation.\nmessage QueryMilestonesRequest {\n string project_id = 1;\n}\n// Response message for milestones operation.\nmessage QueryMilestonesResponse {\n repeated Milestone milestones = 1;\n}\n// Request message for tasks operation.\nmessage QueryTasksRequest {\n string project_id = 1;\n}\n// Response message for tasks operation.\nmessage QueryTasksResponse {\n repeated Task tasks = 1;\n}\n// Request message for projectActivities operation.\nmessage QueryProjectActivitiesRequest {\n string project_id = 1;\n}\n// Response message for projectActivities operation.\nmessage QueryProjectActivitiesResponse {\n repeated ProjectActivity project_activities = 1;\n}\n// Request message for projectTags operation.\nmessage QueryProjectTagsRequest {\n}\n// Response message for projectTags operation.\nmessage QueryProjectTagsResponse {\n ListOfString project_tags = 1;\n}\n// Request message for archivedProjects operation.\nmessage QueryArchivedProjectsRequest {\n}\n// Response message for archivedProjects operation.\nmessage QueryArchivedProjectsResponse {\n repeated Project archived_projects = 1;\n}\n// Request message for tasksByPriority operation.\nmessage QueryTasksByPriorityRequest {\n string project_id = 1;\n}\n// Response message for tasksByPriority operation.\nmessage QueryTasksByPriorityResponse {\n ListOfListOfTask tasks_by_priority = 1;\n}\n// Request message for resourceMatrix operation.\nmessage QueryResourceMatrixRequest {\n string project_id = 1;\n}\n// Response message for resourceMatrix operation.\nmessage QueryResourceMatrixResponse {\n ListOfListOfProjectResource resource_matrix = 1;\n}\n// Request message for killService operation.\nmessage QueryKillServiceRequest {\n}\n// Response message for killService operation.\nmessage QueryKillServiceResponse {\n bool kill_service = 1;\n}\n// Request message for panic operation.\nmessage QueryPanicRequest {\n}\n// Response message for panic operation.\nmessage QueryPanicResponse {\n bool panic = 1;\n}\n// Request message for nodesById operation.\nmessage QueryNodesByIdRequest {\n string id = 1;\n}\n// Response message for nodesById operation.\nmessage QueryNodesByIdResponse {\n repeated Node nodes_by_id = 1;\n}\n// Request message for addProject operation.\nmessage MutationAddProjectRequest {\n ProjectInput project = 1;\n}\n// Response message for addProject operation.\nmessage MutationAddProjectResponse {\n Project add_project = 1;\n}\n// Request message for addMilestone operation.\nmessage MutationAddMilestoneRequest {\n MilestoneInput milestone = 1;\n}\n// Response message for addMilestone operation.\nmessage MutationAddMilestoneResponse {\n Milestone add_milestone = 1;\n}\n// Request message for addTask operation.\nmessage MutationAddTaskRequest {\n TaskInput task = 1;\n}\n// Response message for addTask operation.\nmessage MutationAddTaskResponse {\n Task add_task = 1;\n}\n// Request message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusRequest {\n string project_id = 1;\n ProjectStatus status = 2;\n}\n// Response message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusResponse {\n ProjectUpdate update_project_status = 1;\n}\nmessage ResolveProjectSubProjectsArgs {\n google.protobuf.BoolValue include_archived = 1;\n}\n\nmessage ResolveProjectSubProjectsContext {\n string id = 1;\n string name = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectSubProjectsRequest {\n // context provides the resolver context for the field subProjects of type Project.\n repeated ResolveProjectSubProjectsContext context = 1;\n // field_args provides the arguments for the resolver field subProjects of type Project.\n ResolveProjectSubProjectsArgs field_args = 2;\n}\n\nmessage ResolveProjectSubProjectsResult {\n repeated Project sub_projects = 1;\n}\n\nmessage ResolveProjectSubProjectsResponse {\n repeated ResolveProjectSubProjectsResult result = 1;\n}\n\nmessage ResolveProjectFilteredTasksArgs {\n TaskStatus status = 1;\n TaskPriority priority = 2;\n google.protobuf.Int32Value limit = 3;\n}\n\nmessage ResolveProjectFilteredTasksContext {\n string id = 1;\n}\n\nmessage ResolveProjectFilteredTasksRequest {\n // context provides the resolver context for the field filteredTasks of type Project.\n repeated ResolveProjectFilteredTasksContext context = 1;\n // field_args provides the arguments for the resolver field filteredTasks of type Project.\n ResolveProjectFilteredTasksArgs field_args = 2;\n}\n\nmessage ResolveProjectFilteredTasksResult {\n repeated Task filtered_tasks = 1;\n}\n\nmessage ResolveProjectFilteredTasksResponse {\n repeated ResolveProjectFilteredTasksResult result = 1;\n}\n\nmessage ResolveProjectCompletionRateArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveProjectCompletionRateContext {\n string id = 1;\n google.protobuf.StringValue start_date = 2;\n google.protobuf.StringValue end_date = 3;\n ProjectStatus status = 4;\n}\n\nmessage ResolveProjectCompletionRateRequest {\n // context provides the resolver context for the field completionRate of type Project.\n repeated ResolveProjectCompletionRateContext context = 1;\n // field_args provides the arguments for the resolver field completionRate of type Project.\n ResolveProjectCompletionRateArgs field_args = 2;\n}\n\nmessage ResolveProjectCompletionRateResult {\n double completion_rate = 1;\n}\n\nmessage ResolveProjectCompletionRateResponse {\n repeated ResolveProjectCompletionRateResult result = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingRequest {\n // context provides the resolver context for the field estimatedDaysRemaining of type Project.\n repeated ResolveProjectEstimatedDaysRemainingContext context = 1;\n // field_args provides the arguments for the resolver field estimatedDaysRemaining of type Project.\n ResolveProjectEstimatedDaysRemainingArgs field_args = 2;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResult {\n google.protobuf.Int32Value estimated_days_remaining = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResponse {\n repeated ResolveProjectEstimatedDaysRemainingResult result = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineArgs {\n google.protobuf.Int32Value within_days = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineContext {\n string id = 1;\n ProjectStatus status = 2;\n repeated Milestone milestones = 3;\n}\n\nmessage ResolveProjectCriticalDeadlineRequest {\n // context provides the resolver context for the field criticalDeadline of type Project.\n repeated ResolveProjectCriticalDeadlineContext context = 1;\n // field_args provides the arguments for the resolver field criticalDeadline of type Project.\n ResolveProjectCriticalDeadlineArgs field_args = 2;\n}\n\nmessage ResolveProjectCriticalDeadlineResult {\n Timestamped critical_deadline = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineResponse {\n repeated ResolveProjectCriticalDeadlineResult result = 1;\n}\n\nmessage ResolveProjectTopPriorityItemArgs {\n google.protobuf.StringValue category = 1;\n}\n\nmessage ResolveProjectTopPriorityItemContext {\n string id = 1;\n ProjectStatus status = 2;\n}\n\nmessage ResolveProjectTopPriorityItemRequest {\n // context provides the resolver context for the field topPriorityItem of type Project.\n repeated ResolveProjectTopPriorityItemContext context = 1;\n // field_args provides the arguments for the resolver field topPriorityItem of type Project.\n ResolveProjectTopPriorityItemArgs field_args = 2;\n}\n\nmessage ResolveProjectTopPriorityItemResult {\n ProjectSearchResult top_priority_item = 1;\n}\n\nmessage ResolveProjectTopPriorityItemResponse {\n repeated ResolveProjectTopPriorityItemResult result = 1;\n}\n\nmessage ResolveProjectTaskCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectTaskCountRequest {\n // context provides the resolver context for the field taskCount of type Project.\n repeated ResolveProjectTaskCountContext context = 1;\n}\n\nmessage ResolveProjectTaskCountResult {\n int32 task_count = 1;\n}\n\nmessage ResolveProjectTaskCountResponse {\n repeated ResolveProjectTaskCountResult result = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountRequest {\n // context provides the resolver context for the field activeMilestoneCount of type Project.\n repeated ResolveProjectActiveMilestoneCountContext context = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResult {\n int32 active_milestone_count = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResponse {\n repeated ResolveProjectActiveMilestoneCountResult result = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskArgs {\n google.protobuf.DoubleValue threshold = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n MilestoneStatus status = 3;\n google.protobuf.DoubleValue completion_percentage = 4;\n}\n\nmessage ResolveMilestoneIsAtRiskRequest {\n // context provides the resolver context for the field isAtRisk of type Milestone.\n repeated ResolveMilestoneIsAtRiskContext context = 1;\n // field_args provides the arguments for the resolver field isAtRisk of type Milestone.\n ResolveMilestoneIsAtRiskArgs field_args = 2;\n}\n\nmessage ResolveMilestoneIsAtRiskResult {\n bool is_at_risk = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskResponse {\n repeated ResolveMilestoneIsAtRiskResult result = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueContext {\n google.protobuf.StringValue end_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueRequest {\n // context provides the resolver context for the field daysUntilDue of type Milestone.\n repeated ResolveMilestoneDaysUntilDueContext context = 1;\n // field_args provides the arguments for the resolver field daysUntilDue of type Milestone.\n ResolveMilestoneDaysUntilDueArgs field_args = 2;\n}\n\nmessage ResolveMilestoneDaysUntilDueResult {\n google.protobuf.Int32Value days_until_due = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueResponse {\n repeated ResolveMilestoneDaysUntilDueResult result = 1;\n}\n\nmessage ResolveTaskIsBlockedArgs {\n google.protobuf.BoolValue check_dependencies = 1;\n}\n\nmessage ResolveTaskIsBlockedContext {\n string id = 1;\n TaskStatus status = 2;\n}\n\nmessage ResolveTaskIsBlockedRequest {\n // context provides the resolver context for the field isBlocked of type Task.\n repeated ResolveTaskIsBlockedContext context = 1;\n // field_args provides the arguments for the resolver field isBlocked of type Task.\n ResolveTaskIsBlockedArgs field_args = 2;\n}\n\nmessage ResolveTaskIsBlockedResult {\n bool is_blocked = 1;\n}\n\nmessage ResolveTaskIsBlockedResponse {\n repeated ResolveTaskIsBlockedResult result = 1;\n}\n\nmessage ResolveTaskTotalEffortArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveTaskTotalEffortContext {\n string id = 1;\n google.protobuf.DoubleValue estimated_hours = 2;\n google.protobuf.DoubleValue actual_hours = 3;\n}\n\nmessage ResolveTaskTotalEffortRequest {\n // context provides the resolver context for the field totalEffort of type Task.\n repeated ResolveTaskTotalEffortContext context = 1;\n // field_args provides the arguments for the resolver field totalEffort of type Task.\n ResolveTaskTotalEffortArgs field_args = 2;\n}\n\nmessage ResolveTaskTotalEffortResult {\n google.protobuf.DoubleValue total_effort = 1;\n}\n\nmessage ResolveTaskTotalEffortResponse {\n repeated ResolveTaskTotalEffortResult result = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadArgs {\n google.protobuf.BoolValue include_completed = 1;\n google.protobuf.StringValue project_id = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadRequest {\n // context provides the resolver context for the field currentWorkload of type Employee.\n repeated ResolveEmployeeCurrentWorkloadContext context = 1;\n // field_args provides the arguments for the resolver field currentWorkload of type Employee.\n ResolveEmployeeCurrentWorkloadArgs field_args = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResult {\n int32 current_workload = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResponse {\n repeated ResolveEmployeeCurrentWorkloadResult result = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysArgs {\n google.protobuf.StringValue project_id = 1;\n TaskPriority priority = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysRequest {\n // context provides the resolver context for the field averageTaskCompletionDays of type Employee.\n repeated ResolveEmployeeAverageTaskCompletionDaysContext context = 1;\n // field_args provides the arguments for the resolver field averageTaskCompletionDays of type Employee.\n ResolveEmployeeAverageTaskCompletionDaysArgs field_args = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResult {\n google.protobuf.DoubleValue average_task_completion_days = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResponse {\n repeated ResolveEmployeeAverageTaskCompletionDaysResult result = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountRequest {\n // context provides the resolver context for the field totalProjectCount of type Employee.\n repeated ResolveEmployeeTotalProjectCountContext context = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResult {\n int32 total_project_count = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResponse {\n repeated ResolveEmployeeTotalProjectCountResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdRequest {\n // RequireEmployeeTaggedProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeTaggedProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResponse {\n // RequireEmployeeTaggedProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResult {\n string tagged_project_summary = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage Project {\n string id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue start_date = 4;\n google.protobuf.StringValue end_date = 5;\n ProjectStatus status = 6;\n repeated Employee team_members = 7;\n repeated Product related_products = 8;\n ListOfString milestone_ids = 9;\n repeated Milestone milestones = 10;\n repeated Task tasks = 11;\n google.protobuf.DoubleValue progress = 12;\n ListOfString tags = 13;\n ListOfProject alternative_projects = 14;\n ListOfProject dependencies = 15;\n ListOfListOfProjectResource resource_groups = 16;\n ListOfListOfTask tasks_by_phase = 17;\n ListOfListOfMilestone milestone_groups = 18;\n ListOfListOfListOfTask priority_matrix = 19;\n}\n\nmessage Milestone {\n string id = 1;\n string project_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n google.protobuf.StringValue start_date = 5;\n google.protobuf.StringValue end_date = 6;\n MilestoneStatus status = 7;\n google.protobuf.DoubleValue completion_percentage = 8;\n repeated Milestone dependencies = 9;\n ListOfTask subtasks = 10;\n ListOfEmployee reviewers = 11;\n}\n\nmessage Task {\n reserved 18 to 19;\n string id = 1;\n string project_id = 2;\n google.protobuf.StringValue milestone_id = 3;\n google.protobuf.Int32Value assignee_id = 4;\n string name = 5;\n google.protobuf.StringValue description = 6;\n TaskPriority priority = 7;\n TaskStatus status = 8;\n // Deprecation notice: No more estimations!\n google.protobuf.DoubleValue estimated_hours = 9 [deprecated = true];\n google.protobuf.DoubleValue actual_hours = 10;\n google.protobuf.StringValue created_at = 11;\n google.protobuf.StringValue completed_at = 12;\n ListOfString labels = 13;\n ListOfTask subtasks = 14;\n repeated Task dependencies = 15;\n repeated string attachment_urls = 16;\n ListOfInt reviewer_ids = 17;\n}\n\nmessage Employee {\n int32 id = 1;\n ListOfProject projects = 2;\n repeated Task assigned_tasks = 3;\n repeated Task completed_tasks = 4;\n ListOfString skills = 5;\n ListOfString certifications = 6;\n ListOfListOfProject project_history = 7;\n}\n\nmessage Product {\n string upc = 1;\n ListOfProject projects = 2;\n ListOfListOfString feature_matrix = 3;\n}\n\nenum ProjectStatus {\n PROJECT_STATUS_UNSPECIFIED = 0;\n PROJECT_STATUS_PLANNING = 1;\n PROJECT_STATUS_ACTIVE = 2;\n PROJECT_STATUS_COMPLETED = 3;\n PROJECT_STATUS_ON_HOLD = 4;\n}\n\nmessage ProjectResource {\n oneof value {\n Employee employee = 1;\n Product product = 2;\n Milestone milestone = 3;\n Task task = 4;\n }\n}\n\nmessage ProjectSearchResult {\n oneof value {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage ProjectActivity {\n oneof value {\n ProjectUpdate project_update = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage Node {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n ProjectUpdate project_update = 4;\n }\n}\n\nmessage ProjectInput {\n string name = 1;\n google.protobuf.StringValue description = 2;\n google.protobuf.StringValue start_date = 3;\n google.protobuf.StringValue end_date = 4;\n ProjectStatus status = 5;\n}\n\nmessage MilestoneInput {\n string project_id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue due_date = 4;\n MilestoneStatus status = 5;\n}\n\nmessage TaskInput {\n string project_id = 1;\n google.protobuf.Int32Value assignee_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n TaskPriority priority = 5;\n TaskStatus status = 6;\n google.protobuf.DoubleValue estimated_hours = 7;\n}\n\nmessage ProjectUpdate {\n string id = 1;\n string project_id = 2;\n int32 updated_by_id = 3;\n ProjectUpdateType update_type = 4;\n string description = 5;\n string timestamp = 6;\n google.protobuf.StringValue metadata = 7;\n}\n\nmessage Timestamped {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n }\n}\n\nmessage Assignable {\n oneof instance {\n Task task = 1;\n }\n}\n\nenum MilestoneStatus {\n MILESTONE_STATUS_UNSPECIFIED = 0;\n MILESTONE_STATUS_PENDING = 1;\n MILESTONE_STATUS_IN_PROGRESS = 2;\n MILESTONE_STATUS_COMPLETED = 3;\n MILESTONE_STATUS_DELAYED = 4;\n}\n\nenum TaskStatus {\n TASK_STATUS_UNSPECIFIED = 0;\n TASK_STATUS_TODO = 1;\n TASK_STATUS_IN_PROGRESS = 2;\n TASK_STATUS_REVIEW = 3;\n TASK_STATUS_COMPLETED = 4;\n TASK_STATUS_BLOCKED = 5;\n}\n\nenum TaskPriority {\n TASK_PRIORITY_UNSPECIFIED = 0;\n TASK_PRIORITY_LOW = 1;\n TASK_PRIORITY_MEDIUM = 2;\n TASK_PRIORITY_HIGH = 3;\n TASK_PRIORITY_URGENT = 4;\n}\n\nenum ProjectUpdateType {\n PROJECT_UPDATE_TYPE_UNSPECIFIED = 0;\n PROJECT_UPDATE_TYPE_STATUS_CHANGE = 1;\n PROJECT_UPDATE_TYPE_MILESTONE_ADDED = 2;\n PROJECT_UPDATE_TYPE_TASK_ASSIGNED = 3;\n PROJECT_UPDATE_TYPE_PROGRESS_UPDATE = 4;\n PROJECT_UPDATE_TYPE_TEAM_CHANGE = 5;\n}" + "protoSchema": "syntax = \"proto3\";\npackage service;\n\noption go_package = \"github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects\";\n\nimport \"google/protobuf/wrappers.proto\";\n\n// Service definition for ProjectsService\nservice ProjectsService {\n // Lookup Employee entity by id\n rpc LookupEmployeeById(LookupEmployeeByIdRequest) returns (LookupEmployeeByIdResponse) {}\n // Lookup Milestone entity by id\n rpc LookupMilestoneById(LookupMilestoneByIdRequest) returns (LookupMilestoneByIdResponse) {}\n // Lookup Product entity by upc\n rpc LookupProductByUpc(LookupProductByUpcRequest) returns (LookupProductByUpcResponse) {}\n // Lookup Project entity by id\n rpc LookupProjectById(LookupProjectByIdRequest) returns (LookupProjectByIdResponse) {}\n // Lookup Task entity by id\n rpc LookupTaskById(LookupTaskByIdRequest) returns (LookupTaskByIdResponse) {}\n rpc MutationAddMilestone(MutationAddMilestoneRequest) returns (MutationAddMilestoneResponse) {}\n rpc MutationAddProject(MutationAddProjectRequest) returns (MutationAddProjectResponse) {}\n rpc MutationAddTask(MutationAddTaskRequest) returns (MutationAddTaskResponse) {}\n rpc MutationUpdateProjectStatus(MutationUpdateProjectStatusRequest) returns (MutationUpdateProjectStatusResponse) {}\n rpc QueryArchivedProjects(QueryArchivedProjectsRequest) returns (QueryArchivedProjectsResponse) {}\n rpc QueryKillService(QueryKillServiceRequest) returns (QueryKillServiceResponse) {}\n rpc QueryMilestones(QueryMilestonesRequest) returns (QueryMilestonesResponse) {}\n rpc QueryNodesById(QueryNodesByIdRequest) returns (QueryNodesByIdResponse) {}\n rpc QueryPanic(QueryPanicRequest) returns (QueryPanicResponse) {}\n rpc QueryProject(QueryProjectRequest) returns (QueryProjectResponse) {}\n rpc QueryProjectActivities(QueryProjectActivitiesRequest) returns (QueryProjectActivitiesResponse) {}\n rpc QueryProjectResources(QueryProjectResourcesRequest) returns (QueryProjectResourcesResponse) {}\n rpc QueryProjectStatuses(QueryProjectStatusesRequest) returns (QueryProjectStatusesResponse) {}\n rpc QueryProjectTags(QueryProjectTagsRequest) returns (QueryProjectTagsResponse) {}\n rpc QueryProjects(QueryProjectsRequest) returns (QueryProjectsResponse) {}\n rpc QueryProjectsByStatus(QueryProjectsByStatusRequest) returns (QueryProjectsByStatusResponse) {}\n rpc QueryResourceMatrix(QueryResourceMatrixRequest) returns (QueryResourceMatrixResponse) {}\n rpc QuerySearchProjects(QuerySearchProjectsRequest) returns (QuerySearchProjectsResponse) {}\n rpc QueryTasks(QueryTasksRequest) returns (QueryTasksResponse) {}\n rpc QueryTasksByPriority(QueryTasksByPriorityRequest) returns (QueryTasksByPriorityResponse) {}\n rpc RequireEmployeeFilteredProjectSummaryById(RequireEmployeeFilteredProjectSummaryByIdRequest) returns (RequireEmployeeFilteredProjectSummaryByIdResponse) {}\n rpc RequireEmployeeTaggedProjectSummaryById(RequireEmployeeTaggedProjectSummaryByIdRequest) returns (RequireEmployeeTaggedProjectSummaryByIdResponse) {}\n rpc ResolveEmployeeAverageTaskCompletionDays(ResolveEmployeeAverageTaskCompletionDaysRequest) returns (ResolveEmployeeAverageTaskCompletionDaysResponse) {}\n rpc ResolveEmployeeCurrentWorkload(ResolveEmployeeCurrentWorkloadRequest) returns (ResolveEmployeeCurrentWorkloadResponse) {}\n rpc ResolveEmployeeTotalProjectCount(ResolveEmployeeTotalProjectCountRequest) returns (ResolveEmployeeTotalProjectCountResponse) {}\n rpc ResolveMilestoneDaysUntilDue(ResolveMilestoneDaysUntilDueRequest) returns (ResolveMilestoneDaysUntilDueResponse) {}\n rpc ResolveMilestoneIsAtRisk(ResolveMilestoneIsAtRiskRequest) returns (ResolveMilestoneIsAtRiskResponse) {}\n rpc ResolveProjectActiveMilestoneCount(ResolveProjectActiveMilestoneCountRequest) returns (ResolveProjectActiveMilestoneCountResponse) {}\n rpc ResolveProjectCompletionRate(ResolveProjectCompletionRateRequest) returns (ResolveProjectCompletionRateResponse) {}\n rpc ResolveProjectCriticalDeadline(ResolveProjectCriticalDeadlineRequest) returns (ResolveProjectCriticalDeadlineResponse) {}\n rpc ResolveProjectEstimatedDaysRemaining(ResolveProjectEstimatedDaysRemainingRequest) returns (ResolveProjectEstimatedDaysRemainingResponse) {}\n rpc ResolveProjectFilteredTasks(ResolveProjectFilteredTasksRequest) returns (ResolveProjectFilteredTasksResponse) {}\n rpc ResolveProjectSubProjects(ResolveProjectSubProjectsRequest) returns (ResolveProjectSubProjectsResponse) {}\n rpc ResolveProjectTaskCount(ResolveProjectTaskCountRequest) returns (ResolveProjectTaskCountResponse) {}\n rpc ResolveProjectTopPriorityItem(ResolveProjectTopPriorityItemRequest) returns (ResolveProjectTopPriorityItemResponse) {}\n rpc ResolveTaskIsBlocked(ResolveTaskIsBlockedRequest) returns (ResolveTaskIsBlockedResponse) {}\n rpc ResolveTaskTotalEffort(ResolveTaskTotalEffortRequest) returns (ResolveTaskTotalEffortResponse) {}\n}\n\n// Wrapper message for a list of Employee.\nmessage ListOfEmployee {\n message List {\n repeated Employee items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Int.\nmessage ListOfInt {\n message List {\n repeated int32 items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfListOfTask {\n message List {\n repeated ListOfListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfListOfMilestone {\n message List {\n repeated ListOfMilestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfListOfProject {\n message List {\n repeated ListOfProject items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfListOfProjectResource {\n message List {\n repeated ListOfProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfListOfString {\n message List {\n repeated ListOfString items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfTask {\n message List {\n repeated ListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfMilestone {\n message List {\n repeated Milestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfProject {\n message List {\n repeated Project items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfProjectResource {\n message List {\n repeated ProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfString {\n message List {\n repeated string items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfTask {\n message List {\n repeated Task items = 1;\n }\n List list = 1;\n}\n// Key message for Project entity lookup\nmessage LookupProjectByIdRequestKey {\n // Key field for Project entity lookup.\n string id = 1;\n}\n\n// Request message for Project entity lookup.\nmessage LookupProjectByIdRequest {\n /*\n * List of keys to look up Project entities.\n * Order matters - each key maps to one entity in LookupProjectByIdResponse.\n */\n repeated LookupProjectByIdRequestKey keys = 1;\n}\n\n// Response message for Project entity lookup.\nmessage LookupProjectByIdResponse {\n /*\n * List of Project entities in the same order as the keys in LookupProjectByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Project result = 1;\n}\n\n// Key message for Milestone entity lookup\nmessage LookupMilestoneByIdRequestKey {\n // Key field for Milestone entity lookup.\n string id = 1;\n}\n\n// Request message for Milestone entity lookup.\nmessage LookupMilestoneByIdRequest {\n /*\n * List of keys to look up Milestone entities.\n * Order matters - each key maps to one entity in LookupMilestoneByIdResponse.\n */\n repeated LookupMilestoneByIdRequestKey keys = 1;\n}\n\n// Response message for Milestone entity lookup.\nmessage LookupMilestoneByIdResponse {\n /*\n * List of Milestone entities in the same order as the keys in LookupMilestoneByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Milestone result = 1;\n}\n\n// Key message for Task entity lookup\nmessage LookupTaskByIdRequestKey {\n // Key field for Task entity lookup.\n string id = 1;\n}\n\n// Request message for Task entity lookup.\nmessage LookupTaskByIdRequest {\n /*\n * List of keys to look up Task entities.\n * Order matters - each key maps to one entity in LookupTaskByIdResponse.\n */\n repeated LookupTaskByIdRequestKey keys = 1;\n}\n\n// Response message for Task entity lookup.\nmessage LookupTaskByIdResponse {\n /*\n * List of Task entities in the same order as the keys in LookupTaskByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Task result = 1;\n}\n\n// Key message for Employee entity lookup\nmessage LookupEmployeeByIdRequestKey {\n // Key field for Employee entity lookup.\n string id = 1;\n}\n\n// Request message for Employee entity lookup.\nmessage LookupEmployeeByIdRequest {\n /*\n * List of keys to look up Employee entities.\n * Order matters - each key maps to one entity in LookupEmployeeByIdResponse.\n */\n repeated LookupEmployeeByIdRequestKey keys = 1;\n}\n\n// Response message for Employee entity lookup.\nmessage LookupEmployeeByIdResponse {\n /*\n * List of Employee entities in the same order as the keys in LookupEmployeeByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Employee result = 1;\n}\n\n// Key message for Product entity lookup\nmessage LookupProductByUpcRequestKey {\n // Key field for Product entity lookup.\n string upc = 1;\n}\n\n// Request message for Product entity lookup.\nmessage LookupProductByUpcRequest {\n /*\n * List of keys to look up Product entities.\n * Order matters - each key maps to one entity in LookupProductByUpcResponse.\n */\n repeated LookupProductByUpcRequestKey keys = 1;\n}\n\n// Response message for Product entity lookup.\nmessage LookupProductByUpcResponse {\n /*\n * List of Product entities in the same order as the keys in LookupProductByUpcRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Product result = 1;\n}\n\n// Request message for projects operation.\nmessage QueryProjectsRequest {\n}\n// Response message for projects operation.\nmessage QueryProjectsResponse {\n repeated Project projects = 1;\n}\n// Request message for project operation.\nmessage QueryProjectRequest {\n string id = 1;\n}\n// Response message for project operation.\nmessage QueryProjectResponse {\n Project project = 1;\n}\n// Request message for projectStatuses operation.\nmessage QueryProjectStatusesRequest {\n}\n// Response message for projectStatuses operation.\nmessage QueryProjectStatusesResponse {\n repeated ProjectStatus project_statuses = 1;\n}\n// Request message for projectsByStatus operation.\nmessage QueryProjectsByStatusRequest {\n ProjectStatus status = 1;\n}\n// Response message for projectsByStatus operation.\nmessage QueryProjectsByStatusResponse {\n repeated Project projects_by_status = 1;\n}\n// Request message for projectResources operation.\nmessage QueryProjectResourcesRequest {\n string project_id = 1;\n}\n// Response message for projectResources operation.\nmessage QueryProjectResourcesResponse {\n repeated ProjectResource project_resources = 1;\n}\n// Request message for searchProjects operation.\nmessage QuerySearchProjectsRequest {\n string query = 1;\n}\n// Response message for searchProjects operation.\nmessage QuerySearchProjectsResponse {\n repeated ProjectSearchResult search_projects = 1;\n}\n// Request message for milestones operation.\nmessage QueryMilestonesRequest {\n string project_id = 1;\n}\n// Response message for milestones operation.\nmessage QueryMilestonesResponse {\n repeated Milestone milestones = 1;\n}\n// Request message for tasks operation.\nmessage QueryTasksRequest {\n string project_id = 1;\n}\n// Response message for tasks operation.\nmessage QueryTasksResponse {\n repeated Task tasks = 1;\n}\n// Request message for projectActivities operation.\nmessage QueryProjectActivitiesRequest {\n string project_id = 1;\n}\n// Response message for projectActivities operation.\nmessage QueryProjectActivitiesResponse {\n repeated ProjectActivity project_activities = 1;\n}\n// Request message for projectTags operation.\nmessage QueryProjectTagsRequest {\n}\n// Response message for projectTags operation.\nmessage QueryProjectTagsResponse {\n ListOfString project_tags = 1;\n}\n// Request message for archivedProjects operation.\nmessage QueryArchivedProjectsRequest {\n}\n// Response message for archivedProjects operation.\nmessage QueryArchivedProjectsResponse {\n repeated Project archived_projects = 1;\n}\n// Request message for tasksByPriority operation.\nmessage QueryTasksByPriorityRequest {\n string project_id = 1;\n}\n// Response message for tasksByPriority operation.\nmessage QueryTasksByPriorityResponse {\n ListOfListOfTask tasks_by_priority = 1;\n}\n// Request message for resourceMatrix operation.\nmessage QueryResourceMatrixRequest {\n string project_id = 1;\n}\n// Response message for resourceMatrix operation.\nmessage QueryResourceMatrixResponse {\n ListOfListOfProjectResource resource_matrix = 1;\n}\n// Request message for killService operation.\nmessage QueryKillServiceRequest {\n}\n// Response message for killService operation.\nmessage QueryKillServiceResponse {\n bool kill_service = 1;\n}\n// Request message for panic operation.\nmessage QueryPanicRequest {\n}\n// Response message for panic operation.\nmessage QueryPanicResponse {\n bool panic = 1;\n}\n// Request message for nodesById operation.\nmessage QueryNodesByIdRequest {\n string id = 1;\n}\n// Response message for nodesById operation.\nmessage QueryNodesByIdResponse {\n repeated Node nodes_by_id = 1;\n}\n// Request message for addProject operation.\nmessage MutationAddProjectRequest {\n ProjectInput project = 1;\n}\n// Response message for addProject operation.\nmessage MutationAddProjectResponse {\n Project add_project = 1;\n}\n// Request message for addMilestone operation.\nmessage MutationAddMilestoneRequest {\n MilestoneInput milestone = 1;\n}\n// Response message for addMilestone operation.\nmessage MutationAddMilestoneResponse {\n Milestone add_milestone = 1;\n}\n// Request message for addTask operation.\nmessage MutationAddTaskRequest {\n TaskInput task = 1;\n}\n// Response message for addTask operation.\nmessage MutationAddTaskResponse {\n Task add_task = 1;\n}\n// Request message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusRequest {\n string project_id = 1;\n ProjectStatus status = 2;\n}\n// Response message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusResponse {\n ProjectUpdate update_project_status = 1;\n}\nmessage ResolveProjectSubProjectsArgs {\n google.protobuf.BoolValue include_archived = 1;\n}\n\nmessage ResolveProjectSubProjectsContext {\n string id = 1;\n string name = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectSubProjectsRequest {\n // context provides the resolver context for the field subProjects of type Project.\n repeated ResolveProjectSubProjectsContext context = 1;\n // field_args provides the arguments for the resolver field subProjects of type Project.\n ResolveProjectSubProjectsArgs field_args = 2;\n}\n\nmessage ResolveProjectSubProjectsResult {\n repeated Project sub_projects = 1;\n}\n\nmessage ResolveProjectSubProjectsResponse {\n repeated ResolveProjectSubProjectsResult result = 1;\n}\n\nmessage ResolveProjectFilteredTasksArgs {\n TaskStatus status = 1;\n TaskPriority priority = 2;\n google.protobuf.Int32Value limit = 3;\n}\n\nmessage ResolveProjectFilteredTasksContext {\n string id = 1;\n}\n\nmessage ResolveProjectFilteredTasksRequest {\n // context provides the resolver context for the field filteredTasks of type Project.\n repeated ResolveProjectFilteredTasksContext context = 1;\n // field_args provides the arguments for the resolver field filteredTasks of type Project.\n ResolveProjectFilteredTasksArgs field_args = 2;\n}\n\nmessage ResolveProjectFilteredTasksResult {\n repeated Task filtered_tasks = 1;\n}\n\nmessage ResolveProjectFilteredTasksResponse {\n repeated ResolveProjectFilteredTasksResult result = 1;\n}\n\nmessage ResolveProjectCompletionRateArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveProjectCompletionRateContext {\n string id = 1;\n google.protobuf.StringValue start_date = 2;\n google.protobuf.StringValue end_date = 3;\n ProjectStatus status = 4;\n}\n\nmessage ResolveProjectCompletionRateRequest {\n // context provides the resolver context for the field completionRate of type Project.\n repeated ResolveProjectCompletionRateContext context = 1;\n // field_args provides the arguments for the resolver field completionRate of type Project.\n ResolveProjectCompletionRateArgs field_args = 2;\n}\n\nmessage ResolveProjectCompletionRateResult {\n double completion_rate = 1;\n}\n\nmessage ResolveProjectCompletionRateResponse {\n repeated ResolveProjectCompletionRateResult result = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingRequest {\n // context provides the resolver context for the field estimatedDaysRemaining of type Project.\n repeated ResolveProjectEstimatedDaysRemainingContext context = 1;\n // field_args provides the arguments for the resolver field estimatedDaysRemaining of type Project.\n ResolveProjectEstimatedDaysRemainingArgs field_args = 2;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResult {\n google.protobuf.Int32Value estimated_days_remaining = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResponse {\n repeated ResolveProjectEstimatedDaysRemainingResult result = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineArgs {\n google.protobuf.Int32Value within_days = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineContext {\n string id = 1;\n ProjectStatus status = 2;\n repeated Milestone milestones = 3;\n}\n\nmessage ResolveProjectCriticalDeadlineRequest {\n // context provides the resolver context for the field criticalDeadline of type Project.\n repeated ResolveProjectCriticalDeadlineContext context = 1;\n // field_args provides the arguments for the resolver field criticalDeadline of type Project.\n ResolveProjectCriticalDeadlineArgs field_args = 2;\n}\n\nmessage ResolveProjectCriticalDeadlineResult {\n Timestamped critical_deadline = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineResponse {\n repeated ResolveProjectCriticalDeadlineResult result = 1;\n}\n\nmessage ResolveProjectTopPriorityItemArgs {\n google.protobuf.StringValue category = 1;\n}\n\nmessage ResolveProjectTopPriorityItemContext {\n string id = 1;\n ProjectStatus status = 2;\n}\n\nmessage ResolveProjectTopPriorityItemRequest {\n // context provides the resolver context for the field topPriorityItem of type Project.\n repeated ResolveProjectTopPriorityItemContext context = 1;\n // field_args provides the arguments for the resolver field topPriorityItem of type Project.\n ResolveProjectTopPriorityItemArgs field_args = 2;\n}\n\nmessage ResolveProjectTopPriorityItemResult {\n ProjectSearchResult top_priority_item = 1;\n}\n\nmessage ResolveProjectTopPriorityItemResponse {\n repeated ResolveProjectTopPriorityItemResult result = 1;\n}\n\nmessage ResolveProjectTaskCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectTaskCountRequest {\n // context provides the resolver context for the field taskCount of type Project.\n repeated ResolveProjectTaskCountContext context = 1;\n}\n\nmessage ResolveProjectTaskCountResult {\n int32 task_count = 1;\n}\n\nmessage ResolveProjectTaskCountResponse {\n repeated ResolveProjectTaskCountResult result = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountRequest {\n // context provides the resolver context for the field activeMilestoneCount of type Project.\n repeated ResolveProjectActiveMilestoneCountContext context = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResult {\n int32 active_milestone_count = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResponse {\n repeated ResolveProjectActiveMilestoneCountResult result = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskArgs {\n google.protobuf.DoubleValue threshold = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n MilestoneStatus status = 3;\n google.protobuf.DoubleValue completion_percentage = 4;\n}\n\nmessage ResolveMilestoneIsAtRiskRequest {\n // context provides the resolver context for the field isAtRisk of type Milestone.\n repeated ResolveMilestoneIsAtRiskContext context = 1;\n // field_args provides the arguments for the resolver field isAtRisk of type Milestone.\n ResolveMilestoneIsAtRiskArgs field_args = 2;\n}\n\nmessage ResolveMilestoneIsAtRiskResult {\n bool is_at_risk = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskResponse {\n repeated ResolveMilestoneIsAtRiskResult result = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueContext {\n google.protobuf.StringValue end_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueRequest {\n // context provides the resolver context for the field daysUntilDue of type Milestone.\n repeated ResolveMilestoneDaysUntilDueContext context = 1;\n // field_args provides the arguments for the resolver field daysUntilDue of type Milestone.\n ResolveMilestoneDaysUntilDueArgs field_args = 2;\n}\n\nmessage ResolveMilestoneDaysUntilDueResult {\n google.protobuf.Int32Value days_until_due = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueResponse {\n repeated ResolveMilestoneDaysUntilDueResult result = 1;\n}\n\nmessage ResolveTaskIsBlockedArgs {\n google.protobuf.BoolValue check_dependencies = 1;\n}\n\nmessage ResolveTaskIsBlockedContext {\n string id = 1;\n TaskStatus status = 2;\n}\n\nmessage ResolveTaskIsBlockedRequest {\n // context provides the resolver context for the field isBlocked of type Task.\n repeated ResolveTaskIsBlockedContext context = 1;\n // field_args provides the arguments for the resolver field isBlocked of type Task.\n ResolveTaskIsBlockedArgs field_args = 2;\n}\n\nmessage ResolveTaskIsBlockedResult {\n bool is_blocked = 1;\n}\n\nmessage ResolveTaskIsBlockedResponse {\n repeated ResolveTaskIsBlockedResult result = 1;\n}\n\nmessage ResolveTaskTotalEffortArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveTaskTotalEffortContext {\n string id = 1;\n google.protobuf.DoubleValue estimated_hours = 2;\n google.protobuf.DoubleValue actual_hours = 3;\n}\n\nmessage ResolveTaskTotalEffortRequest {\n // context provides the resolver context for the field totalEffort of type Task.\n repeated ResolveTaskTotalEffortContext context = 1;\n // field_args provides the arguments for the resolver field totalEffort of type Task.\n ResolveTaskTotalEffortArgs field_args = 2;\n}\n\nmessage ResolveTaskTotalEffortResult {\n google.protobuf.DoubleValue total_effort = 1;\n}\n\nmessage ResolveTaskTotalEffortResponse {\n repeated ResolveTaskTotalEffortResult result = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadArgs {\n google.protobuf.BoolValue include_completed = 1;\n google.protobuf.StringValue project_id = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadRequest {\n // context provides the resolver context for the field currentWorkload of type Employee.\n repeated ResolveEmployeeCurrentWorkloadContext context = 1;\n // field_args provides the arguments for the resolver field currentWorkload of type Employee.\n ResolveEmployeeCurrentWorkloadArgs field_args = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResult {\n int32 current_workload = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResponse {\n repeated ResolveEmployeeCurrentWorkloadResult result = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysArgs {\n google.protobuf.StringValue project_id = 1;\n TaskPriority priority = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysRequest {\n // context provides the resolver context for the field averageTaskCompletionDays of type Employee.\n repeated ResolveEmployeeAverageTaskCompletionDaysContext context = 1;\n // field_args provides the arguments for the resolver field averageTaskCompletionDays of type Employee.\n ResolveEmployeeAverageTaskCompletionDaysArgs field_args = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResult {\n google.protobuf.DoubleValue average_task_completion_days = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResponse {\n repeated ResolveEmployeeAverageTaskCompletionDaysResult result = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountRequest {\n // context provides the resolver context for the field totalProjectCount of type Employee.\n repeated ResolveEmployeeTotalProjectCountContext context = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResult {\n int32 total_project_count = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResponse {\n repeated ResolveEmployeeTotalProjectCountResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdRequest {\n // RequireEmployeeTaggedProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeTaggedProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResponse {\n // RequireEmployeeTaggedProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResult {\n string tagged_project_summary = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdRequest {\n // RequireEmployeeFilteredProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeFilteredProjectSummaryById.\n repeated RequireEmployeeFilteredProjectSummaryByIdContext context = 1;\n // field_args provides the arguments for the required fields resolver field filteredProjectSummary of type Employee.\n RequireEmployeeFilteredProjectSummaryByIdArgs field_args = 2;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeFilteredProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdResponse {\n // RequireEmployeeFilteredProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeFilteredProjectSummaryById.\n repeated RequireEmployeeFilteredProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdResult {\n string filtered_project_summary = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdArgs {\n string tag = 1;\n}\n\nmessage Project {\n string id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue start_date = 4;\n google.protobuf.StringValue end_date = 5;\n ProjectStatus status = 6;\n repeated Employee team_members = 7;\n repeated Product related_products = 8;\n ListOfString milestone_ids = 9;\n repeated Milestone milestones = 10;\n repeated Task tasks = 11;\n google.protobuf.DoubleValue progress = 12;\n ListOfString tags = 13;\n ListOfProject alternative_projects = 14;\n ListOfProject dependencies = 15;\n ListOfListOfProjectResource resource_groups = 16;\n ListOfListOfTask tasks_by_phase = 17;\n ListOfListOfMilestone milestone_groups = 18;\n ListOfListOfListOfTask priority_matrix = 19;\n}\n\nmessage Milestone {\n string id = 1;\n string project_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n google.protobuf.StringValue start_date = 5;\n google.protobuf.StringValue end_date = 6;\n MilestoneStatus status = 7;\n google.protobuf.DoubleValue completion_percentage = 8;\n repeated Milestone dependencies = 9;\n ListOfTask subtasks = 10;\n ListOfEmployee reviewers = 11;\n}\n\nmessage Task {\n reserved 18 to 19;\n string id = 1;\n string project_id = 2;\n google.protobuf.StringValue milestone_id = 3;\n google.protobuf.Int32Value assignee_id = 4;\n string name = 5;\n google.protobuf.StringValue description = 6;\n TaskPriority priority = 7;\n TaskStatus status = 8;\n // Deprecation notice: No more estimations!\n google.protobuf.DoubleValue estimated_hours = 9 [deprecated = true];\n google.protobuf.DoubleValue actual_hours = 10;\n google.protobuf.StringValue created_at = 11;\n google.protobuf.StringValue completed_at = 12;\n ListOfString labels = 13;\n ListOfTask subtasks = 14;\n repeated Task dependencies = 15;\n repeated string attachment_urls = 16;\n ListOfInt reviewer_ids = 17;\n}\n\nmessage Employee {\n int32 id = 1;\n ListOfProject projects = 2;\n repeated Task assigned_tasks = 3;\n repeated Task completed_tasks = 4;\n ListOfString skills = 5;\n ListOfString certifications = 6;\n ListOfListOfProject project_history = 7;\n}\n\nmessage Product {\n string upc = 1;\n ListOfProject projects = 2;\n ListOfListOfString feature_matrix = 3;\n}\n\nenum ProjectStatus {\n PROJECT_STATUS_UNSPECIFIED = 0;\n PROJECT_STATUS_PLANNING = 1;\n PROJECT_STATUS_ACTIVE = 2;\n PROJECT_STATUS_COMPLETED = 3;\n PROJECT_STATUS_ON_HOLD = 4;\n}\n\nmessage ProjectResource {\n oneof value {\n Employee employee = 1;\n Product product = 2;\n Milestone milestone = 3;\n Task task = 4;\n }\n}\n\nmessage ProjectSearchResult {\n oneof value {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage ProjectActivity {\n oneof value {\n ProjectUpdate project_update = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage Node {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n ProjectUpdate project_update = 4;\n }\n}\n\nmessage ProjectInput {\n string name = 1;\n google.protobuf.StringValue description = 2;\n google.protobuf.StringValue start_date = 3;\n google.protobuf.StringValue end_date = 4;\n ProjectStatus status = 5;\n}\n\nmessage MilestoneInput {\n string project_id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue due_date = 4;\n MilestoneStatus status = 5;\n}\n\nmessage TaskInput {\n string project_id = 1;\n google.protobuf.Int32Value assignee_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n TaskPriority priority = 5;\n TaskStatus status = 6;\n google.protobuf.DoubleValue estimated_hours = 7;\n}\n\nmessage ProjectUpdate {\n string id = 1;\n string project_id = 2;\n int32 updated_by_id = 3;\n ProjectUpdateType update_type = 4;\n string description = 5;\n string timestamp = 6;\n google.protobuf.StringValue metadata = 7;\n}\n\nmessage Timestamped {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n }\n}\n\nmessage Assignable {\n oneof instance {\n Task task = 1;\n }\n}\n\nenum MilestoneStatus {\n MILESTONE_STATUS_UNSPECIFIED = 0;\n MILESTONE_STATUS_PENDING = 1;\n MILESTONE_STATUS_IN_PROGRESS = 2;\n MILESTONE_STATUS_COMPLETED = 3;\n MILESTONE_STATUS_DELAYED = 4;\n}\n\nenum TaskStatus {\n TASK_STATUS_UNSPECIFIED = 0;\n TASK_STATUS_TODO = 1;\n TASK_STATUS_IN_PROGRESS = 2;\n TASK_STATUS_REVIEW = 3;\n TASK_STATUS_COMPLETED = 4;\n TASK_STATUS_BLOCKED = 5;\n}\n\nenum TaskPriority {\n TASK_PRIORITY_UNSPECIFIED = 0;\n TASK_PRIORITY_LOW = 1;\n TASK_PRIORITY_MEDIUM = 2;\n TASK_PRIORITY_HIGH = 3;\n TASK_PRIORITY_URGENT = 4;\n}\n\nenum ProjectUpdateType {\n PROJECT_UPDATE_TYPE_UNSPECIFIED = 0;\n PROJECT_UPDATE_TYPE_STATUS_CHANGE = 1;\n PROJECT_UPDATE_TYPE_MILESTONE_ADDED = 2;\n PROJECT_UPDATE_TYPE_TASK_ASSIGNED = 3;\n PROJECT_UPDATE_TYPE_PROGRESS_UPDATE = 4;\n PROJECT_UPDATE_TYPE_TEAM_CHANGE = 5;\n}" } }, "requestTimeoutSeconds": "10", @@ -2126,7 +2134,10 @@ { "typeName": "Employee", "selectionSet": "id" }, { "typeName": "Product", "selectionSet": "upc" } ], - "requires": [{ "typeName": "Employee", "fieldName": "taggedProjectSummary", "selectionSet": "expertise" }] + "requires": [ + { "typeName": "Employee", "fieldName": "taggedProjectSummary", "selectionSet": "expertise" }, + { "typeName": "Employee", "fieldName": "filteredProjectSummary", "selectionSet": "expertise" } + ] } ], "fieldConfigurations": [ @@ -2481,6 +2492,11 @@ "fieldName": "totalEffort", "argumentsConfiguration": [{ "name": "includeSubtasks", "sourceType": "FIELD_ARGUMENT" }] }, + { + "typeName": "Employee", + "fieldName": "filteredProjectSummary", + "argumentsConfiguration": [{ "name": "tag", "sourceType": "FIELD_ARGUMENT" }] + }, { "typeName": "Employee", "fieldName": "startDate", @@ -2582,7 +2598,7 @@ "authorizationConfiguration": { "requiresAuthentication": true } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n filteredProjectSummary(tag: String!): String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}", "stringStorage": { "2f1990c73dd597614783bb214acc8c748cc466ae": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n expertise: String!\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", "2265a44afac63dcf9da5f7ee5ff35c7a6dc8adff": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated(reason: \"No longer supported\")\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", @@ -2592,9 +2608,9 @@ "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", - "07b9d39255850e84272bc4367127a2c5013d0ddd": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Query\n mutation: Mutation\n}\n\ndirective @connect__fieldResolver(context: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ninterface Assignable {\n assigneeId: Int\n}\n\ntype Employee @key(fields: \"id\") {\n assignedTasks: [Task!]!\n averageTaskCompletionDays(priority: TaskPriority, projectId: ID): Float @connect__fieldResolver(context: \"id\")\n certifications: [String!]\n completedTasks: [Task!]!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n expertise: String! @external\n id: Int!\n projectHistory: [[Project!]]!\n projects: [Project!]\n skills: [String]\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n completionPercentage: Float\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n dependencies: [Milestone]!\n description: String\n endDate: String\n id: ID!\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n name: String!\n projectId: ID!\n reviewers: [Employee!]\n startDate: String\n status: MilestoneStatus!\n subtasks: [Task]\n}\n\ninput MilestoneInput {\n description: String\n dueDate: String\n name: String!\n projectId: ID!\n status: MilestoneStatus!\n}\n\nenum MilestoneStatus {\n COMPLETED\n DELAYED\n IN_PROGRESS\n PENDING\n}\n\ntype Mutation {\n addMilestone(milestone: MilestoneInput!): Milestone!\n addProject(project: ProjectInput!): Project!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype Product @key(fields: \"upc\") {\n featureMatrix: [[String]]\n projects: [Project!]\n upc: String!\n}\n\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n alternativeProjects: [Project]\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n dependencies: [Project!]\n description: String\n endDate: String\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n filteredTasks(limit: Int, priority: TaskPriority, status: TaskStatus): [Task!]! @connect__fieldResolver(context: \"id\")\n id: ID!\n milestoneGroups: [[Milestone]]\n milestoneIds: [String!]\n milestones: [Milestone!]!\n name: String!\n priorityMatrix: [[[Task!]!]!]\n progress: Float\n relatedProducts: [Product!]!\n resourceGroups: [[ProjectResource!]!]!\n startDate: String\n status: ProjectStatus!\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n tags: [String]\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n tasks: [Task!]!\n tasksByPhase: [[Task!]]!\n teamMembers: [Employee!]!\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n}\n\nunion ProjectActivity = Milestone | ProjectUpdate | Task\n\ninput ProjectInput {\n description: String\n endDate: String\n name: String!\n startDate: String\n status: ProjectStatus!\n}\n\nunion ProjectResource = Employee | Milestone | Product | Task\n\nunion ProjectSearchResult = Milestone | Project | Task\n\nenum ProjectStatus {\n ACTIVE\n COMPLETED\n ON_HOLD\n PLANNING\n}\n\ntype ProjectUpdate implements Node {\n description: String!\n id: ID!\n metadata: String\n projectId: ID!\n timestamp: String!\n updateType: ProjectUpdateType!\n updatedById: Int!\n}\n\nenum ProjectUpdateType {\n MILESTONE_ADDED\n PROGRESS_UPDATE\n STATUS_CHANGE\n TASK_ASSIGNED\n TEAM_CHANGE\n}\n\ntype Query {\n archivedProjects: [Project]!\n killService: Boolean!\n milestones(projectId: ID!): [Milestone!]!\n nodesById(id: ID!): [Node!]!\n panic: Boolean!\n project(id: ID!): Project\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n projectStatuses: [ProjectStatus!]!\n projectTags: [String]\n projects: [Project!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n tasks(projectId: ID!): [Task!]!\n tasksByPriority(projectId: ID!): [[Task]]\n}\n\ntype Task implements Assignable & Node @key(fields: \"id\") {\n actualHours: Float\n assigneeId: Int\n attachmentUrls: [String!]!\n completedAt: String\n createdAt: String\n dependencies: [Task]!\n description: String\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n id: ID!\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n labels: [String]\n milestoneId: ID\n name: String!\n priority: TaskPriority!\n projectId: ID!\n reviewerIds: [Int]\n status: TaskStatus!\n subtasks: [Task!]\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ninput TaskInput {\n assigneeId: Int\n description: String\n estimatedHours: Float\n name: String!\n priority: TaskPriority!\n projectId: ID!\n status: TaskStatus!\n}\n\nenum TaskPriority {\n HIGH\n LOW\n MEDIUM\n URGENT\n}\n\nenum TaskStatus {\n BLOCKED\n COMPLETED\n IN_PROGRESS\n REVIEW\n TODO\n}\n\ninterface Timestamped {\n endDate: String\n startDate: String\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet" + "07b9d39255850e84272bc4367127a2c5013d0ddd": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Query\n mutation: Mutation\n}\n\ndirective @connect__fieldResolver(context: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ninterface Assignable {\n assigneeId: Int\n}\n\ntype Employee @key(fields: \"id\") {\n assignedTasks: [Task!]!\n averageTaskCompletionDays(priority: TaskPriority, projectId: ID): Float @connect__fieldResolver(context: \"id\")\n certifications: [String!]\n completedTasks: [Task!]!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n expertise: String! @external\n id: Int!\n projectHistory: [[Project!]]!\n projects: [Project!]\n skills: [String]\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n filteredProjectSummary(tag: String!): String! @requires(fields: \"expertise\")\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n completionPercentage: Float\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n dependencies: [Milestone]!\n description: String\n endDate: String\n id: ID!\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n name: String!\n projectId: ID!\n reviewers: [Employee!]\n startDate: String\n status: MilestoneStatus!\n subtasks: [Task]\n}\n\ninput MilestoneInput {\n description: String\n dueDate: String\n name: String!\n projectId: ID!\n status: MilestoneStatus!\n}\n\nenum MilestoneStatus {\n COMPLETED\n DELAYED\n IN_PROGRESS\n PENDING\n}\n\ntype Mutation {\n addMilestone(milestone: MilestoneInput!): Milestone!\n addProject(project: ProjectInput!): Project!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype Product @key(fields: \"upc\") {\n featureMatrix: [[String]]\n projects: [Project!]\n upc: String!\n}\n\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n alternativeProjects: [Project]\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n dependencies: [Project!]\n description: String\n endDate: String\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n filteredTasks(limit: Int, priority: TaskPriority, status: TaskStatus): [Task!]! @connect__fieldResolver(context: \"id\")\n id: ID!\n milestoneGroups: [[Milestone]]\n milestoneIds: [String!]\n milestones: [Milestone!]!\n name: String!\n priorityMatrix: [[[Task!]!]!]\n progress: Float\n relatedProducts: [Product!]!\n resourceGroups: [[ProjectResource!]!]!\n startDate: String\n status: ProjectStatus!\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n tags: [String]\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n tasks: [Task!]!\n tasksByPhase: [[Task!]]!\n teamMembers: [Employee!]!\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n}\n\nunion ProjectActivity = Milestone | ProjectUpdate | Task\n\ninput ProjectInput {\n description: String\n endDate: String\n name: String!\n startDate: String\n status: ProjectStatus!\n}\n\nunion ProjectResource = Employee | Milestone | Product | Task\n\nunion ProjectSearchResult = Milestone | Project | Task\n\nenum ProjectStatus {\n ACTIVE\n COMPLETED\n ON_HOLD\n PLANNING\n}\n\ntype ProjectUpdate implements Node {\n description: String!\n id: ID!\n metadata: String\n projectId: ID!\n timestamp: String!\n updateType: ProjectUpdateType!\n updatedById: Int!\n}\n\nenum ProjectUpdateType {\n MILESTONE_ADDED\n PROGRESS_UPDATE\n STATUS_CHANGE\n TASK_ASSIGNED\n TEAM_CHANGE\n}\n\ntype Query {\n archivedProjects: [Project]!\n killService: Boolean!\n milestones(projectId: ID!): [Milestone!]!\n nodesById(id: ID!): [Node!]!\n panic: Boolean!\n project(id: ID!): Project\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n projectStatuses: [ProjectStatus!]!\n projectTags: [String]\n projects: [Project!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n tasks(projectId: ID!): [Task!]!\n tasksByPriority(projectId: ID!): [[Task]]\n}\n\ntype Task implements Assignable & Node @key(fields: \"id\") {\n actualHours: Float\n assigneeId: Int\n attachmentUrls: [String!]!\n completedAt: String\n createdAt: String\n dependencies: [Task]!\n description: String\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n id: ID!\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n labels: [String]\n milestoneId: ID\n name: String!\n priority: TaskPriority!\n projectId: ID!\n reviewerIds: [Int]\n status: TaskStatus!\n subtasks: [Task!]\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ninput TaskInput {\n assigneeId: Int\n description: String\n estimatedHours: Float\n name: String!\n priority: TaskPriority!\n projectId: ID!\n status: TaskStatus!\n}\n\nenum TaskPriority {\n HIGH\n LOW\n MEDIUM\n URGENT\n}\n\nenum TaskStatus {\n BLOCKED\n COMPLETED\n IN_PROGRESS\n REVIEW\n TODO\n}\n\ninterface Timestamped {\n endDate: String\n startDate: String\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet" }, - "graphqlClientSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}" + "graphqlClientSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n filteredProjectSummary(tag: String!): String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}" }, "version": "00000000-0000-0000-0000-000000000000", "subgraphs": [ From 68fd4f64f60798b09531eef88aa864fadf345ed5 Mon Sep 17 00:00:00 2001 From: Dominik Korittki <23359034+dkorittki@users.noreply.github.com> Date: Thu, 2 Apr 2026 10:06:00 +0200 Subject: [PATCH 3/5] chore: cleanup router go.sum --- router/go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/router/go.sum b/router/go.sum index 177b47e0da..9b0e20443c 100644 --- a/router/go.sum +++ b/router/go.sum @@ -329,8 +329,6 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267 h1:qMkYR0oq0Cw61aDZs9VsCCVwNVSxRxT13ytz6WqCwJg= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271 h1:CpymCs8SRZgjW7gA0whW1RysGh3auAQ3vqGb76K1Tz0= github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= From 45bc63a6db3c0d23ab79c661281eb31885736f26 Mon Sep 17 00:00:00 2001 From: Dominik Korittki <23359034+dkorittki@users.noreply.github.com> Date: Thu, 2 Apr 2026 15:58:15 +0200 Subject: [PATCH 4/5] chore: add tests to verify grpc router plugins --- router-tests/protocol/router_plugin_test.go | 10 ++ .../testenv/testdata/configWithPlugins.json | 95 ++++++------------- 2 files changed, 41 insertions(+), 64 deletions(-) diff --git a/router-tests/protocol/router_plugin_test.go b/router-tests/protocol/router_plugin_test.go index 0a0aa8ffd3..7eb2ea96e1 100644 --- a/router-tests/protocol/router_plugin_test.go +++ b/router-tests/protocol/router_plugin_test.go @@ -510,6 +510,16 @@ func TestRouterPluginRequests(t *testing.T) { query: `{ employee(id: 999) { id taggedProjectSummary } }`, expected: `{"data":{"employee":null}}`, }, + { + name: "query employee @requires field with argument resolved with expertise", + query: `{ employee(id: 1) { id filteredProjectSummary(tag: "cloud") } }`, + expected: `{"data":{"employee":{"id":1,"filteredProjectSummary":"expertise: Backend Architecture, filtered tags (tag=cloud): [cloud]"}}}`, + }, + { + name: "query employee @requires field with argument — no matching tags", + query: `{ employee(id: 1) { id filteredProjectSummary(tag: "nonexistent") } }`, + expected: `{"data":{"employee":{"id":1,"filteredProjectSummary":"expertise: Backend Architecture, no tags matched (tag=nonexistent)"}}}`, + }, // Pattern 1: Flat abstract — interface { name: "query employee @requires flat interface (technical)", diff --git a/router-tests/testenv/testdata/configWithPlugins.json b/router-tests/testenv/testdata/configWithPlugins.json index b6e0c4095b..9d9f89c28e 100644 --- a/router-tests/testenv/testdata/configWithPlugins.json +++ b/router-tests/testenv/testdata/configWithPlugins.json @@ -104,23 +104,7 @@ { "typeName": "Employee", "fieldName": "derivedMood", "selectionSet": "currentMood" }, { "typeName": "Consultancy", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" }, { "typeName": "Cosmo", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" } - ], - "costConfiguration": { - "fieldWeights": [ - { "typeName": "Query", "fieldName": "employee", "weight": 5, "argumentWeights": { "id": 2 } } - ], - "listSizes": [ - { "typeName": "Query", "fieldName": "employees", "assumedSize": 50, "requireOneSlicingArgument": true }, - { - "typeName": "Employee", - "fieldName": "role", - "assumedSize": 3, - "sizedFields": ["departments"], - "requireOneSlicingArgument": true - } - ], - "typeWeights": { "Department": 1, "Cosmo": 5 } - } + ] }, { "kind": "GRAPHQL", @@ -261,25 +245,7 @@ { "typeName": "Employee", "selectionSet": "id" }, { "typeName": "Consultancy", "selectionSet": "upc" }, { "typeName": "Cosmo", "selectionSet": "upc" } - ], - "costConfiguration": { - "listSizes": [ - { "typeName": "Query", "fieldName": "productTypes", "assumedSize": 50, "requireOneSlicingArgument": true }, - { - "typeName": "Query", - "fieldName": "sharedThings", - "slicingArguments": ["numOfA"], - "requireOneSlicingArgument": true - }, - { - "typeName": "Query", - "fieldName": "slicedThings", - "slicingArguments": ["first", "last"], - "requireOneSlicingArgument": true - } - ], - "typeWeights": { "FactContent": 10, "Cosmo": 8 } - } + ] }, { "kind": "GRAPHQL", @@ -1381,6 +1347,7 @@ "certifications", "projectHistory", "taggedProjectSummary", + "filteredProjectSummary", "workItemInfo", "reviewReport", "workSetupSummary", @@ -1426,9 +1393,9 @@ "subscription": { "enabled": true }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Query\n mutation: Mutation\n}\n\ntype Query {\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n\n # New query fields with different list patterns\n projectTags: [String] # nullable list of nullable strings\n archivedProjects: [Project]! # non-nullable list of nullable projects\n tasksByPriority(projectId: ID!): [[Task]] # nullable list of nullable lists\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]! # non-nullable list of non-nullable lists\n\n # query to simulate that the service goes down\n killService: Boolean!\n panic: Boolean!\n\n nodesById(id: ID!): [Node!]!\n}\n\ntype Mutation {\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String # ISO date\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\n# Interfaces\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\n# Updated Project type implementing interfaces\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n # Federated references:\n teamMembers: [Employee!]!\n relatedProducts: [Product!]! # from products subgraph\n # Project milestones or checkpoints\n milestoneIds: [String!] # Array of milestone identifiers\n\n # New fields for extended functionality\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float # Completion percentage\n\n # New fields with various list patterns for testing\n tags: [String] # nullable list of nullable tags\n alternativeProjects: [Project] # nullable list of nullable projects\n dependencies: [Project!] # nullable list of non-nullable projects\n resourceGroups: [[ProjectResource!]!]! # nested lists: non-nullable list of non-nullable lists\n tasksByPhase: [[Task!]]! # nested lists: non-nullable list of nullable lists\n milestoneGroups: [[Milestone]] # nested lists: nullable list of nullable lists\n priorityMatrix: [[[Task!]!]!] # triple nested: non-nullable list of non-nullable lists of non-nullable lists\n\n # Recursive field resolver for project hierarchy\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n\n # Computed fields with @connect__fieldResolver\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]! @connect__fieldResolver(context: \"id\")\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n\n # No-arg field resolvers (expensive computed fields without arguments)\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\n# New types - simplified with ID references only\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String # ISO date (when milestone work starts)\n endDate: String # ISO date (milestone due date)\n status: MilestoneStatus!\n completionPercentage: Float\n\n # New fields with different list patterns\n dependencies: [Milestone]! # non-nullable list of nullable milestones\n subtasks: [Task] # nullable list of nullable tasks\n reviewers: [Employee!] # nullable list of non-nullable employees\n\n # Computed fields with @connect__fieldResolver\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n}\n\ntype Task implements Node & Assignable @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String # ISO date\n completedAt: String # ISO date\n\n # New fields with different list patterns\n labels: [String] # nullable list of nullable labels\n subtasks: [Task!] # nullable list of non-nullable subtasks\n dependencies: [Task]! # non-nullable list of nullable tasks\n attachmentUrls: [String!]! # non-nullable list of non-nullable URLs\n reviewerIds: [Int] # nullable list of nullable reviewer IDs\n\n # Computed fields with @connect__fieldResolver\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String! # ISO date\n metadata: String # JSON metadata\n}\n\n# Enums\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\n# Unions\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\n# Abstract types for @requires composite type testing\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem @shareable {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem @shareable {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ntype WorkItemHandler @shareable {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs @shareable {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs @shareable {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics @shareable {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval @shareable {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection @shareable {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup @shareable {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\n# Federated types\ntype Employee @key(fields: \"id\") {\n id: Int!\n expertise: String! @external\n # New field resolved by this subgraph:\n projects: [Project!]\n # New fields for extended functionality\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n\n # New fields with different list patterns\n skills: [String] # nullable list of nullable skills\n certifications: [String!] # nullable list of non-nullable certifications\n projectHistory: [[Project!]]! # non-nullable list of nullable lists of non-nullable projects\n\n # Field requiring expertise from employees subgraph\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n\n # External abstract type fields for @requires testing\n primaryWorkItem: EmployeeWorkItem @external\n lastWorkReview: WorkReviewResult @external\n workSetup: WorkSetup @external\n\n # @requires fields using abstract types\n # Pattern 1: Flat abstract — interface\n workItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } }\")\n # Pattern 2: Flat abstract — union\n reviewReport: String! @requires(fields: \"lastWorkReview { ... on WorkApproval { __typename comment approvedAt } ... on WorkRejection { __typename reason rejectionCode } }\")\n # Pattern 3: Concrete wrapping abstract\n workSetupSummary: String! @requires(fields: \"workSetup { priority primaryItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } } }\")\n # Pattern 4: Concrete message inside fragment\n workItemHandlerInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { name } } ... on ManagementWorkItem { handler { name } } }\")\n # Pattern 5: Deep concrete nesting inside fragment (specs → metrics)\n workItemSpecsInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { specs { name metrics { score efficiency } } } ... on ManagementWorkItem { specs { name metrics { score efficiency } } } }\")\n # Pattern 6: Nested abstract through concrete intermediary (handler → assignedItem)\n deepWorkItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { assignedItem { __typename ... on ManagementWorkItem { name teamSize } ... on TechnicalWorkItem { name codeCount } } } } ... on ManagementWorkItem { handler { name } } }\")\n\n # Computed fields with @connect__fieldResolver\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float @connect__fieldResolver(context: \"id\")\n\n # No-arg field resolver (expensive computed field without arguments)\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Product @key(fields: \"upc\") {\n upc: String!\n # Projects contributing to this product:\n projects: [Project!]\n\n # New field with nested lists\n featureMatrix: [[String]] # nullable list of nullable lists of nullable features\n}\n" + "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Query\n mutation: Mutation\n}\n\ntype Query {\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n\n # New query fields with different list patterns\n projectTags: [String] # nullable list of nullable strings\n archivedProjects: [Project]! # non-nullable list of nullable projects\n tasksByPriority(projectId: ID!): [[Task]] # nullable list of nullable lists\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]! # non-nullable list of non-nullable lists\n\n # query to simulate that the service goes down\n killService: Boolean!\n panic: Boolean!\n\n nodesById(id: ID!): [Node!]!\n}\n\ntype Mutation {\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String # ISO date\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\n# Interfaces\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\n# Updated Project type implementing interfaces\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n name: String!\n description: String\n startDate: String # ISO date\n endDate: String # ISO date\n status: ProjectStatus!\n # Federated references:\n teamMembers: [Employee!]!\n relatedProducts: [Product!]! # from products subgraph\n # Project milestones or checkpoints\n milestoneIds: [String!] # Array of milestone identifiers\n\n # New fields for extended functionality\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float # Completion percentage\n\n # New fields with various list patterns for testing\n tags: [String] # nullable list of nullable tags\n alternativeProjects: [Project] # nullable list of nullable projects\n dependencies: [Project!] # nullable list of non-nullable projects\n resourceGroups: [[ProjectResource!]!]! # nested lists: non-nullable list of non-nullable lists\n tasksByPhase: [[Task!]]! # nested lists: non-nullable list of nullable lists\n milestoneGroups: [[Milestone]] # nested lists: nullable list of nullable lists\n priorityMatrix: [[[Task!]!]!] # triple nested: non-nullable list of non-nullable lists of non-nullable lists\n\n # Recursive field resolver for project hierarchy\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n\n # Computed fields with @connect__fieldResolver\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]! @connect__fieldResolver(context: \"id\")\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n\n # No-arg field resolvers (expensive computed fields without arguments)\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\n# New types - simplified with ID references only\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String # ISO date (when milestone work starts)\n endDate: String # ISO date (milestone due date)\n status: MilestoneStatus!\n completionPercentage: Float\n\n # New fields with different list patterns\n dependencies: [Milestone]! # non-nullable list of nullable milestones\n subtasks: [Task] # nullable list of nullable tasks\n reviewers: [Employee!] # nullable list of non-nullable employees\n\n # Computed fields with @connect__fieldResolver\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n}\n\ntype Task implements Node & Assignable @key(fields: \"id\") {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String # ISO date\n completedAt: String # ISO date\n\n # New fields with different list patterns\n labels: [String] # nullable list of nullable labels\n subtasks: [Task!] # nullable list of non-nullable subtasks\n dependencies: [Task]! # non-nullable list of nullable tasks\n attachmentUrls: [String!]! # non-nullable list of non-nullable URLs\n reviewerIds: [Int] # nullable list of nullable reviewer IDs\n\n # Computed fields with @connect__fieldResolver\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String! # ISO date\n metadata: String # JSON metadata\n}\n\n# Enums\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\n# Unions\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\n# Abstract types for @requires composite type testing\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem @shareable {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem @shareable {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ntype WorkItemHandler @shareable {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs @shareable {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs @shareable {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics @shareable {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval @shareable {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection @shareable {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup @shareable {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\n# Federated types\ntype Employee @key(fields: \"id\") {\n id: Int!\n expertise: String! @external\n # New field resolved by this subgraph:\n projects: [Project!]\n # New fields for extended functionality\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n\n # New fields with different list patterns\n skills: [String] # nullable list of nullable skills\n certifications: [String!] # nullable list of non-nullable certifications\n projectHistory: [[Project!]]! # non-nullable list of nullable lists of non-nullable projects\n\n # Field requiring expertise from employees subgraph\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n filteredProjectSummary(tag: String!): String! @requires(fields: \"expertise\")\n\n # External abstract type fields for @requires testing\n primaryWorkItem: EmployeeWorkItem @external\n lastWorkReview: WorkReviewResult @external\n workSetup: WorkSetup @external\n\n # @requires fields using abstract types\n # Pattern 1: Flat abstract — interface\n workItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } }\")\n # Pattern 2: Flat abstract — union\n reviewReport: String! @requires(fields: \"lastWorkReview { ... on WorkApproval { __typename comment approvedAt } ... on WorkRejection { __typename reason rejectionCode } }\")\n # Pattern 3: Concrete wrapping abstract\n workSetupSummary: String! @requires(fields: \"workSetup { priority primaryItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } } }\")\n # Pattern 4: Concrete message inside fragment\n workItemHandlerInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { name } } ... on ManagementWorkItem { handler { name } } }\")\n # Pattern 5: Deep concrete nesting inside fragment (specs → metrics)\n workItemSpecsInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { specs { name metrics { score efficiency } } } ... on ManagementWorkItem { specs { name metrics { score efficiency } } } }\")\n # Pattern 6: Nested abstract through concrete intermediary (handler → assignedItem)\n deepWorkItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { assignedItem { __typename ... on ManagementWorkItem { name teamSize } ... on TechnicalWorkItem { name codeCount } } } } ... on ManagementWorkItem { handler { name } } }\")\n\n # Computed fields with @connect__fieldResolver\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float @connect__fieldResolver(context: \"id\")\n\n # No-arg field resolver (expensive computed field without arguments)\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n}\n\ntype Product @key(fields: \"upc\") {\n upc: String!\n # Projects contributing to this product:\n projects: [Project!]\n\n # New field with nested lists\n featureMatrix: [[String]] # nullable list of nullable lists of nullable features\n}\n" }, - "upstreamSchema": { "key": "61d6d16f8d41b334b260585cc3227a9a820a03ae" }, + "upstreamSchema": { "key": "b5d54b6a542b4b5c0d3d1cb366a6d40ee5ecc6c3" }, "grpc": { "mapping": { "version": 1, @@ -1614,6 +1581,16 @@ "request": "RequireEmployeeTaggedProjectSummaryByIdRequest", "response": "RequireEmployeeTaggedProjectSummaryByIdResponse" }, + { + "fieldMapping": { + "original": "filteredProjectSummary", + "mapped": "filtered_project_summary", + "argumentMappings": [{ "original": "tag", "mapped": "tag" }] + }, + "rpc": "RequireEmployeeFilteredProjectSummaryById", + "request": "RequireEmployeeFilteredProjectSummaryByIdRequest", + "response": "RequireEmployeeFilteredProjectSummaryByIdResponse" + }, { "fieldMapping": { "original": "workItemInfo", "mapped": "work_item_info" }, "rpc": "RequireEmployeeWorkItemInfoById", @@ -1996,6 +1973,11 @@ { "original": "certifications", "mapped": "certifications" }, { "original": "projectHistory", "mapped": "project_history" }, { "original": "taggedProjectSummary", "mapped": "tagged_project_summary" }, + { + "original": "filteredProjectSummary", + "mapped": "filtered_project_summary", + "argumentMappings": [{ "original": "tag", "mapped": "tag" }] + }, { "original": "primaryWorkItem", "mapped": "primary_work_item" }, { "original": "lastWorkReview", "mapped": "last_work_review" }, { "original": "workSetup", "mapped": "work_setup" }, @@ -2293,7 +2275,7 @@ } ] }, - "protoSchema": "syntax = \"proto3\";\npackage service;\n\noption go_package = \"github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects\";\n\nimport \"google/protobuf/wrappers.proto\";\n\n// Service definition for ProjectsService\nservice ProjectsService {\n // Lookup Employee entity by id\n rpc LookupEmployeeById(LookupEmployeeByIdRequest) returns (LookupEmployeeByIdResponse) {}\n // Lookup Milestone entity by id\n rpc LookupMilestoneById(LookupMilestoneByIdRequest) returns (LookupMilestoneByIdResponse) {}\n // Lookup Product entity by upc\n rpc LookupProductByUpc(LookupProductByUpcRequest) returns (LookupProductByUpcResponse) {}\n // Lookup Project entity by id\n rpc LookupProjectById(LookupProjectByIdRequest) returns (LookupProjectByIdResponse) {}\n // Lookup Task entity by id\n rpc LookupTaskById(LookupTaskByIdRequest) returns (LookupTaskByIdResponse) {}\n rpc MutationAddMilestone(MutationAddMilestoneRequest) returns (MutationAddMilestoneResponse) {}\n rpc MutationAddProject(MutationAddProjectRequest) returns (MutationAddProjectResponse) {}\n rpc MutationAddTask(MutationAddTaskRequest) returns (MutationAddTaskResponse) {}\n rpc MutationUpdateProjectStatus(MutationUpdateProjectStatusRequest) returns (MutationUpdateProjectStatusResponse) {}\n rpc QueryArchivedProjects(QueryArchivedProjectsRequest) returns (QueryArchivedProjectsResponse) {}\n rpc QueryKillService(QueryKillServiceRequest) returns (QueryKillServiceResponse) {}\n rpc QueryMilestones(QueryMilestonesRequest) returns (QueryMilestonesResponse) {}\n rpc QueryNodesById(QueryNodesByIdRequest) returns (QueryNodesByIdResponse) {}\n rpc QueryPanic(QueryPanicRequest) returns (QueryPanicResponse) {}\n rpc QueryProject(QueryProjectRequest) returns (QueryProjectResponse) {}\n rpc QueryProjectActivities(QueryProjectActivitiesRequest) returns (QueryProjectActivitiesResponse) {}\n rpc QueryProjectResources(QueryProjectResourcesRequest) returns (QueryProjectResourcesResponse) {}\n rpc QueryProjectStatuses(QueryProjectStatusesRequest) returns (QueryProjectStatusesResponse) {}\n rpc QueryProjectTags(QueryProjectTagsRequest) returns (QueryProjectTagsResponse) {}\n rpc QueryProjects(QueryProjectsRequest) returns (QueryProjectsResponse) {}\n rpc QueryProjectsByStatus(QueryProjectsByStatusRequest) returns (QueryProjectsByStatusResponse) {}\n rpc QueryResourceMatrix(QueryResourceMatrixRequest) returns (QueryResourceMatrixResponse) {}\n rpc QuerySearchProjects(QuerySearchProjectsRequest) returns (QuerySearchProjectsResponse) {}\n rpc QueryTasks(QueryTasksRequest) returns (QueryTasksResponse) {}\n rpc QueryTasksByPriority(QueryTasksByPriorityRequest) returns (QueryTasksByPriorityResponse) {}\n rpc RequireEmployeeDeepWorkItemInfoById(RequireEmployeeDeepWorkItemInfoByIdRequest) returns (RequireEmployeeDeepWorkItemInfoByIdResponse) {}\n rpc RequireEmployeeReviewReportById(RequireEmployeeReviewReportByIdRequest) returns (RequireEmployeeReviewReportByIdResponse) {}\n rpc RequireEmployeeTaggedProjectSummaryById(RequireEmployeeTaggedProjectSummaryByIdRequest) returns (RequireEmployeeTaggedProjectSummaryByIdResponse) {}\n rpc RequireEmployeeWorkItemHandlerInfoById(RequireEmployeeWorkItemHandlerInfoByIdRequest) returns (RequireEmployeeWorkItemHandlerInfoByIdResponse) {}\n rpc RequireEmployeeWorkItemInfoById(RequireEmployeeWorkItemInfoByIdRequest) returns (RequireEmployeeWorkItemInfoByIdResponse) {}\n rpc RequireEmployeeWorkItemSpecsInfoById(RequireEmployeeWorkItemSpecsInfoByIdRequest) returns (RequireEmployeeWorkItemSpecsInfoByIdResponse) {}\n rpc RequireEmployeeWorkSetupSummaryById(RequireEmployeeWorkSetupSummaryByIdRequest) returns (RequireEmployeeWorkSetupSummaryByIdResponse) {}\n rpc ResolveEmployeeAverageTaskCompletionDays(ResolveEmployeeAverageTaskCompletionDaysRequest) returns (ResolveEmployeeAverageTaskCompletionDaysResponse) {}\n rpc ResolveEmployeeCurrentWorkload(ResolveEmployeeCurrentWorkloadRequest) returns (ResolveEmployeeCurrentWorkloadResponse) {}\n rpc ResolveEmployeeTotalProjectCount(ResolveEmployeeTotalProjectCountRequest) returns (ResolveEmployeeTotalProjectCountResponse) {}\n rpc ResolveMilestoneDaysUntilDue(ResolveMilestoneDaysUntilDueRequest) returns (ResolveMilestoneDaysUntilDueResponse) {}\n rpc ResolveMilestoneIsAtRisk(ResolveMilestoneIsAtRiskRequest) returns (ResolveMilestoneIsAtRiskResponse) {}\n rpc ResolveProjectActiveMilestoneCount(ResolveProjectActiveMilestoneCountRequest) returns (ResolveProjectActiveMilestoneCountResponse) {}\n rpc ResolveProjectCompletionRate(ResolveProjectCompletionRateRequest) returns (ResolveProjectCompletionRateResponse) {}\n rpc ResolveProjectCriticalDeadline(ResolveProjectCriticalDeadlineRequest) returns (ResolveProjectCriticalDeadlineResponse) {}\n rpc ResolveProjectEstimatedDaysRemaining(ResolveProjectEstimatedDaysRemainingRequest) returns (ResolveProjectEstimatedDaysRemainingResponse) {}\n rpc ResolveProjectFilteredTasks(ResolveProjectFilteredTasksRequest) returns (ResolveProjectFilteredTasksResponse) {}\n rpc ResolveProjectSubProjects(ResolveProjectSubProjectsRequest) returns (ResolveProjectSubProjectsResponse) {}\n rpc ResolveProjectTaskCount(ResolveProjectTaskCountRequest) returns (ResolveProjectTaskCountResponse) {}\n rpc ResolveProjectTopPriorityItem(ResolveProjectTopPriorityItemRequest) returns (ResolveProjectTopPriorityItemResponse) {}\n rpc ResolveTaskIsBlocked(ResolveTaskIsBlockedRequest) returns (ResolveTaskIsBlockedResponse) {}\n rpc ResolveTaskTotalEffort(ResolveTaskTotalEffortRequest) returns (ResolveTaskTotalEffortResponse) {}\n}\n\n// Wrapper message for a list of Employee.\nmessage ListOfEmployee {\n message List {\n repeated Employee items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Int.\nmessage ListOfInt {\n message List {\n repeated int32 items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfListOfTask {\n message List {\n repeated ListOfListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfListOfMilestone {\n message List {\n repeated ListOfMilestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfListOfProject {\n message List {\n repeated ListOfProject items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfListOfProjectResource {\n message List {\n repeated ListOfProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfListOfString {\n message List {\n repeated ListOfString items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfTask {\n message List {\n repeated ListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfMilestone {\n message List {\n repeated Milestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfProject {\n message List {\n repeated Project items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfProjectResource {\n message List {\n repeated ProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfString {\n message List {\n repeated string items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfTask {\n message List {\n repeated Task items = 1;\n }\n List list = 1;\n}\n// Key message for Project entity lookup\nmessage LookupProjectByIdRequestKey {\n // Key field for Project entity lookup.\n string id = 1;\n}\n\n// Request message for Project entity lookup.\nmessage LookupProjectByIdRequest {\n /*\n * List of keys to look up Project entities.\n * Order matters - each key maps to one entity in LookupProjectByIdResponse.\n */\n repeated LookupProjectByIdRequestKey keys = 1;\n}\n\n// Response message for Project entity lookup.\nmessage LookupProjectByIdResponse {\n /*\n * List of Project entities in the same order as the keys in LookupProjectByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Project result = 1;\n}\n\n// Key message for Milestone entity lookup\nmessage LookupMilestoneByIdRequestKey {\n // Key field for Milestone entity lookup.\n string id = 1;\n}\n\n// Request message for Milestone entity lookup.\nmessage LookupMilestoneByIdRequest {\n /*\n * List of keys to look up Milestone entities.\n * Order matters - each key maps to one entity in LookupMilestoneByIdResponse.\n */\n repeated LookupMilestoneByIdRequestKey keys = 1;\n}\n\n// Response message for Milestone entity lookup.\nmessage LookupMilestoneByIdResponse {\n /*\n * List of Milestone entities in the same order as the keys in LookupMilestoneByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Milestone result = 1;\n}\n\n// Key message for Task entity lookup\nmessage LookupTaskByIdRequestKey {\n // Key field for Task entity lookup.\n string id = 1;\n}\n\n// Request message for Task entity lookup.\nmessage LookupTaskByIdRequest {\n /*\n * List of keys to look up Task entities.\n * Order matters - each key maps to one entity in LookupTaskByIdResponse.\n */\n repeated LookupTaskByIdRequestKey keys = 1;\n}\n\n// Response message for Task entity lookup.\nmessage LookupTaskByIdResponse {\n /*\n * List of Task entities in the same order as the keys in LookupTaskByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Task result = 1;\n}\n\n// Key message for Employee entity lookup\nmessage LookupEmployeeByIdRequestKey {\n // Key field for Employee entity lookup.\n string id = 1;\n}\n\n// Request message for Employee entity lookup.\nmessage LookupEmployeeByIdRequest {\n /*\n * List of keys to look up Employee entities.\n * Order matters - each key maps to one entity in LookupEmployeeByIdResponse.\n */\n repeated LookupEmployeeByIdRequestKey keys = 1;\n}\n\n// Response message for Employee entity lookup.\nmessage LookupEmployeeByIdResponse {\n /*\n * List of Employee entities in the same order as the keys in LookupEmployeeByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Employee result = 1;\n}\n\n// Key message for Product entity lookup\nmessage LookupProductByUpcRequestKey {\n // Key field for Product entity lookup.\n string upc = 1;\n}\n\n// Request message for Product entity lookup.\nmessage LookupProductByUpcRequest {\n /*\n * List of keys to look up Product entities.\n * Order matters - each key maps to one entity in LookupProductByUpcResponse.\n */\n repeated LookupProductByUpcRequestKey keys = 1;\n}\n\n// Response message for Product entity lookup.\nmessage LookupProductByUpcResponse {\n /*\n * List of Product entities in the same order as the keys in LookupProductByUpcRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Product result = 1;\n}\n\n// Request message for projects operation.\nmessage QueryProjectsRequest {\n}\n// Response message for projects operation.\nmessage QueryProjectsResponse {\n repeated Project projects = 1;\n}\n// Request message for project operation.\nmessage QueryProjectRequest {\n string id = 1;\n}\n// Response message for project operation.\nmessage QueryProjectResponse {\n Project project = 1;\n}\n// Request message for projectStatuses operation.\nmessage QueryProjectStatusesRequest {\n}\n// Response message for projectStatuses operation.\nmessage QueryProjectStatusesResponse {\n repeated ProjectStatus project_statuses = 1;\n}\n// Request message for projectsByStatus operation.\nmessage QueryProjectsByStatusRequest {\n ProjectStatus status = 1;\n}\n// Response message for projectsByStatus operation.\nmessage QueryProjectsByStatusResponse {\n repeated Project projects_by_status = 1;\n}\n// Request message for projectResources operation.\nmessage QueryProjectResourcesRequest {\n string project_id = 1;\n}\n// Response message for projectResources operation.\nmessage QueryProjectResourcesResponse {\n repeated ProjectResource project_resources = 1;\n}\n// Request message for searchProjects operation.\nmessage QuerySearchProjectsRequest {\n string query = 1;\n}\n// Response message for searchProjects operation.\nmessage QuerySearchProjectsResponse {\n repeated ProjectSearchResult search_projects = 1;\n}\n// Request message for milestones operation.\nmessage QueryMilestonesRequest {\n string project_id = 1;\n}\n// Response message for milestones operation.\nmessage QueryMilestonesResponse {\n repeated Milestone milestones = 1;\n}\n// Request message for tasks operation.\nmessage QueryTasksRequest {\n string project_id = 1;\n}\n// Response message for tasks operation.\nmessage QueryTasksResponse {\n repeated Task tasks = 1;\n}\n// Request message for projectActivities operation.\nmessage QueryProjectActivitiesRequest {\n string project_id = 1;\n}\n// Response message for projectActivities operation.\nmessage QueryProjectActivitiesResponse {\n repeated ProjectActivity project_activities = 1;\n}\n// Request message for projectTags operation.\nmessage QueryProjectTagsRequest {\n}\n// Response message for projectTags operation.\nmessage QueryProjectTagsResponse {\n ListOfString project_tags = 1;\n}\n// Request message for archivedProjects operation.\nmessage QueryArchivedProjectsRequest {\n}\n// Response message for archivedProjects operation.\nmessage QueryArchivedProjectsResponse {\n repeated Project archived_projects = 1;\n}\n// Request message for tasksByPriority operation.\nmessage QueryTasksByPriorityRequest {\n string project_id = 1;\n}\n// Response message for tasksByPriority operation.\nmessage QueryTasksByPriorityResponse {\n ListOfListOfTask tasks_by_priority = 1;\n}\n// Request message for resourceMatrix operation.\nmessage QueryResourceMatrixRequest {\n string project_id = 1;\n}\n// Response message for resourceMatrix operation.\nmessage QueryResourceMatrixResponse {\n ListOfListOfProjectResource resource_matrix = 1;\n}\n// Request message for killService operation.\nmessage QueryKillServiceRequest {\n}\n// Response message for killService operation.\nmessage QueryKillServiceResponse {\n bool kill_service = 1;\n}\n// Request message for panic operation.\nmessage QueryPanicRequest {\n}\n// Response message for panic operation.\nmessage QueryPanicResponse {\n bool panic = 1;\n}\n// Request message for nodesById operation.\nmessage QueryNodesByIdRequest {\n string id = 1;\n}\n// Response message for nodesById operation.\nmessage QueryNodesByIdResponse {\n repeated Node nodes_by_id = 1;\n}\n// Request message for addProject operation.\nmessage MutationAddProjectRequest {\n ProjectInput project = 1;\n}\n// Response message for addProject operation.\nmessage MutationAddProjectResponse {\n Project add_project = 1;\n}\n// Request message for addMilestone operation.\nmessage MutationAddMilestoneRequest {\n MilestoneInput milestone = 1;\n}\n// Response message for addMilestone operation.\nmessage MutationAddMilestoneResponse {\n Milestone add_milestone = 1;\n}\n// Request message for addTask operation.\nmessage MutationAddTaskRequest {\n TaskInput task = 1;\n}\n// Response message for addTask operation.\nmessage MutationAddTaskResponse {\n Task add_task = 1;\n}\n// Request message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusRequest {\n string project_id = 1;\n ProjectStatus status = 2;\n}\n// Response message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusResponse {\n ProjectUpdate update_project_status = 1;\n}\nmessage ResolveProjectSubProjectsArgs {\n google.protobuf.BoolValue include_archived = 1;\n}\n\nmessage ResolveProjectSubProjectsContext {\n string id = 1;\n string name = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectSubProjectsRequest {\n // context provides the resolver context for the field subProjects of type Project.\n repeated ResolveProjectSubProjectsContext context = 1;\n // field_args provides the arguments for the resolver field subProjects of type Project.\n ResolveProjectSubProjectsArgs field_args = 2;\n}\n\nmessage ResolveProjectSubProjectsResult {\n repeated Project sub_projects = 1;\n}\n\nmessage ResolveProjectSubProjectsResponse {\n repeated ResolveProjectSubProjectsResult result = 1;\n}\n\nmessage ResolveProjectFilteredTasksArgs {\n TaskStatus status = 1;\n TaskPriority priority = 2;\n google.protobuf.Int32Value limit = 3;\n}\n\nmessage ResolveProjectFilteredTasksContext {\n string id = 1;\n}\n\nmessage ResolveProjectFilteredTasksRequest {\n // context provides the resolver context for the field filteredTasks of type Project.\n repeated ResolveProjectFilteredTasksContext context = 1;\n // field_args provides the arguments for the resolver field filteredTasks of type Project.\n ResolveProjectFilteredTasksArgs field_args = 2;\n}\n\nmessage ResolveProjectFilteredTasksResult {\n repeated Task filtered_tasks = 1;\n}\n\nmessage ResolveProjectFilteredTasksResponse {\n repeated ResolveProjectFilteredTasksResult result = 1;\n}\n\nmessage ResolveProjectCompletionRateArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveProjectCompletionRateContext {\n string id = 1;\n google.protobuf.StringValue start_date = 2;\n google.protobuf.StringValue end_date = 3;\n ProjectStatus status = 4;\n}\n\nmessage ResolveProjectCompletionRateRequest {\n // context provides the resolver context for the field completionRate of type Project.\n repeated ResolveProjectCompletionRateContext context = 1;\n // field_args provides the arguments for the resolver field completionRate of type Project.\n ResolveProjectCompletionRateArgs field_args = 2;\n}\n\nmessage ResolveProjectCompletionRateResult {\n double completion_rate = 1;\n}\n\nmessage ResolveProjectCompletionRateResponse {\n repeated ResolveProjectCompletionRateResult result = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingRequest {\n // context provides the resolver context for the field estimatedDaysRemaining of type Project.\n repeated ResolveProjectEstimatedDaysRemainingContext context = 1;\n // field_args provides the arguments for the resolver field estimatedDaysRemaining of type Project.\n ResolveProjectEstimatedDaysRemainingArgs field_args = 2;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResult {\n google.protobuf.Int32Value estimated_days_remaining = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResponse {\n repeated ResolveProjectEstimatedDaysRemainingResult result = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineArgs {\n google.protobuf.Int32Value within_days = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineContext {\n string id = 1;\n ProjectStatus status = 2;\n repeated Milestone milestones = 3;\n}\n\nmessage ResolveProjectCriticalDeadlineRequest {\n // context provides the resolver context for the field criticalDeadline of type Project.\n repeated ResolveProjectCriticalDeadlineContext context = 1;\n // field_args provides the arguments for the resolver field criticalDeadline of type Project.\n ResolveProjectCriticalDeadlineArgs field_args = 2;\n}\n\nmessage ResolveProjectCriticalDeadlineResult {\n Timestamped critical_deadline = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineResponse {\n repeated ResolveProjectCriticalDeadlineResult result = 1;\n}\n\nmessage ResolveProjectTopPriorityItemArgs {\n google.protobuf.StringValue category = 1;\n}\n\nmessage ResolveProjectTopPriorityItemContext {\n string id = 1;\n ProjectStatus status = 2;\n}\n\nmessage ResolveProjectTopPriorityItemRequest {\n // context provides the resolver context for the field topPriorityItem of type Project.\n repeated ResolveProjectTopPriorityItemContext context = 1;\n // field_args provides the arguments for the resolver field topPriorityItem of type Project.\n ResolveProjectTopPriorityItemArgs field_args = 2;\n}\n\nmessage ResolveProjectTopPriorityItemResult {\n ProjectSearchResult top_priority_item = 1;\n}\n\nmessage ResolveProjectTopPriorityItemResponse {\n repeated ResolveProjectTopPriorityItemResult result = 1;\n}\n\nmessage ResolveProjectTaskCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectTaskCountRequest {\n // context provides the resolver context for the field taskCount of type Project.\n repeated ResolveProjectTaskCountContext context = 1;\n}\n\nmessage ResolveProjectTaskCountResult {\n int32 task_count = 1;\n}\n\nmessage ResolveProjectTaskCountResponse {\n repeated ResolveProjectTaskCountResult result = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountRequest {\n // context provides the resolver context for the field activeMilestoneCount of type Project.\n repeated ResolveProjectActiveMilestoneCountContext context = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResult {\n int32 active_milestone_count = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResponse {\n repeated ResolveProjectActiveMilestoneCountResult result = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskArgs {\n google.protobuf.DoubleValue threshold = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n MilestoneStatus status = 3;\n google.protobuf.DoubleValue completion_percentage = 4;\n}\n\nmessage ResolveMilestoneIsAtRiskRequest {\n // context provides the resolver context for the field isAtRisk of type Milestone.\n repeated ResolveMilestoneIsAtRiskContext context = 1;\n // field_args provides the arguments for the resolver field isAtRisk of type Milestone.\n ResolveMilestoneIsAtRiskArgs field_args = 2;\n}\n\nmessage ResolveMilestoneIsAtRiskResult {\n bool is_at_risk = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskResponse {\n repeated ResolveMilestoneIsAtRiskResult result = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueContext {\n google.protobuf.StringValue end_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueRequest {\n // context provides the resolver context for the field daysUntilDue of type Milestone.\n repeated ResolveMilestoneDaysUntilDueContext context = 1;\n // field_args provides the arguments for the resolver field daysUntilDue of type Milestone.\n ResolveMilestoneDaysUntilDueArgs field_args = 2;\n}\n\nmessage ResolveMilestoneDaysUntilDueResult {\n google.protobuf.Int32Value days_until_due = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueResponse {\n repeated ResolveMilestoneDaysUntilDueResult result = 1;\n}\n\nmessage ResolveTaskIsBlockedArgs {\n google.protobuf.BoolValue check_dependencies = 1;\n}\n\nmessage ResolveTaskIsBlockedContext {\n string id = 1;\n TaskStatus status = 2;\n}\n\nmessage ResolveTaskIsBlockedRequest {\n // context provides the resolver context for the field isBlocked of type Task.\n repeated ResolveTaskIsBlockedContext context = 1;\n // field_args provides the arguments for the resolver field isBlocked of type Task.\n ResolveTaskIsBlockedArgs field_args = 2;\n}\n\nmessage ResolveTaskIsBlockedResult {\n bool is_blocked = 1;\n}\n\nmessage ResolveTaskIsBlockedResponse {\n repeated ResolveTaskIsBlockedResult result = 1;\n}\n\nmessage ResolveTaskTotalEffortArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveTaskTotalEffortContext {\n string id = 1;\n google.protobuf.DoubleValue estimated_hours = 2;\n google.protobuf.DoubleValue actual_hours = 3;\n}\n\nmessage ResolveTaskTotalEffortRequest {\n // context provides the resolver context for the field totalEffort of type Task.\n repeated ResolveTaskTotalEffortContext context = 1;\n // field_args provides the arguments for the resolver field totalEffort of type Task.\n ResolveTaskTotalEffortArgs field_args = 2;\n}\n\nmessage ResolveTaskTotalEffortResult {\n google.protobuf.DoubleValue total_effort = 1;\n}\n\nmessage ResolveTaskTotalEffortResponse {\n repeated ResolveTaskTotalEffortResult result = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadArgs {\n google.protobuf.BoolValue include_completed = 1;\n google.protobuf.StringValue project_id = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadRequest {\n // context provides the resolver context for the field currentWorkload of type Employee.\n repeated ResolveEmployeeCurrentWorkloadContext context = 1;\n // field_args provides the arguments for the resolver field currentWorkload of type Employee.\n ResolveEmployeeCurrentWorkloadArgs field_args = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResult {\n int32 current_workload = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResponse {\n repeated ResolveEmployeeCurrentWorkloadResult result = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysArgs {\n google.protobuf.StringValue project_id = 1;\n TaskPriority priority = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysRequest {\n // context provides the resolver context for the field averageTaskCompletionDays of type Employee.\n repeated ResolveEmployeeAverageTaskCompletionDaysContext context = 1;\n // field_args provides the arguments for the resolver field averageTaskCompletionDays of type Employee.\n ResolveEmployeeAverageTaskCompletionDaysArgs field_args = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResult {\n google.protobuf.DoubleValue average_task_completion_days = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResponse {\n repeated ResolveEmployeeAverageTaskCompletionDaysResult result = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountRequest {\n // context provides the resolver context for the field totalProjectCount of type Employee.\n repeated ResolveEmployeeTotalProjectCountContext context = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResult {\n int32 total_project_count = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResponse {\n repeated ResolveEmployeeTotalProjectCountResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdRequest {\n // RequireEmployeeTaggedProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeTaggedProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResponse {\n // RequireEmployeeTaggedProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResult {\n string tagged_project_summary = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdRequest {\n // RequireEmployeeWorkItemInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemInfoById.\n repeated RequireEmployeeWorkItemInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdResponse {\n // RequireEmployeeWorkItemInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemInfoById.\n repeated RequireEmployeeWorkItemInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdResult {\n string work_item_info = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdFields {\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdRequest {\n // RequireEmployeeReviewReportByIdContext provides the context for the required fields method RequireEmployeeReviewReportById.\n repeated RequireEmployeeReviewReportByIdContext context = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeReviewReportByIdFields fields = 2;\n}\n\nmessage RequireEmployeeReviewReportByIdResponse {\n // RequireEmployeeReviewReportByIdResult provides the result for the required fields method RequireEmployeeReviewReportById.\n repeated RequireEmployeeReviewReportByIdResult result = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdResult {\n string review_report = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdFields {\n message WorkApproval {\n string comment = 1;\n string approved_at = 2;\n }\n\n message WorkRejection {\n string reason = 1;\n string rejection_code = 2;\n }\n\n message WorkReviewResult {\n oneof value {\n WorkApproval work_approval = 1;\n WorkRejection work_rejection = 2;\n }\n }\n WorkReviewResult last_work_review = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdRequest {\n // RequireEmployeeWorkSetupSummaryByIdContext provides the context for the required fields method RequireEmployeeWorkSetupSummaryById.\n repeated RequireEmployeeWorkSetupSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkSetupSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdResponse {\n // RequireEmployeeWorkSetupSummaryByIdResult provides the result for the required fields method RequireEmployeeWorkSetupSummaryById.\n repeated RequireEmployeeWorkSetupSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdResult {\n string work_setup_summary = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdFields {\n message WorkSetup {\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n string priority = 1;\n EmployeeWorkItem primary_item = 2;\n }\n\n WorkSetup work_setup = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdRequest {\n // RequireEmployeeWorkItemHandlerInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemHandlerInfoById.\n repeated RequireEmployeeWorkItemHandlerInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemHandlerInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdResponse {\n // RequireEmployeeWorkItemHandlerInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemHandlerInfoById.\n repeated RequireEmployeeWorkItemHandlerInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdResult {\n string work_item_handler_info = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdFields {\n message TechnicalWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message ManagementWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdRequest {\n // RequireEmployeeWorkItemSpecsInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemSpecsInfoById.\n repeated RequireEmployeeWorkItemSpecsInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemSpecsInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdResponse {\n // RequireEmployeeWorkItemSpecsInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemSpecsInfoById.\n repeated RequireEmployeeWorkItemSpecsInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdResult {\n string work_item_specs_info = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdFields {\n message TechnicalWorkItem {\n message TechnicalSpecs {\n message WorkMetrics {\n double score = 1;\n double efficiency = 2;\n }\n\n string name = 1;\n WorkMetrics metrics = 2;\n }\n\n TechnicalSpecs specs = 1;\n }\n\n message ManagementWorkItem {\n message ManagementSpecs {\n message WorkMetrics {\n double score = 1;\n double efficiency = 2;\n }\n\n string name = 1;\n WorkMetrics metrics = 2;\n }\n\n ManagementSpecs specs = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdRequest {\n // RequireEmployeeDeepWorkItemInfoByIdContext provides the context for the required fields method RequireEmployeeDeepWorkItemInfoById.\n repeated RequireEmployeeDeepWorkItemInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeDeepWorkItemInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdResponse {\n // RequireEmployeeDeepWorkItemInfoByIdResult provides the result for the required fields method RequireEmployeeDeepWorkItemInfoById.\n repeated RequireEmployeeDeepWorkItemInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdResult {\n string deep_work_item_info = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdFields {\n message TechnicalWorkItem {\n message WorkItemHandler {\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem assigned_item = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message ManagementWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage Project {\n string id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue start_date = 4;\n google.protobuf.StringValue end_date = 5;\n ProjectStatus status = 6;\n repeated Employee team_members = 7;\n repeated Product related_products = 8;\n ListOfString milestone_ids = 9;\n repeated Milestone milestones = 10;\n repeated Task tasks = 11;\n google.protobuf.DoubleValue progress = 12;\n ListOfString tags = 13;\n ListOfProject alternative_projects = 14;\n ListOfProject dependencies = 15;\n ListOfListOfProjectResource resource_groups = 16;\n ListOfListOfTask tasks_by_phase = 17;\n ListOfListOfMilestone milestone_groups = 18;\n ListOfListOfListOfTask priority_matrix = 19;\n}\n\nmessage Milestone {\n string id = 1;\n string project_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n google.protobuf.StringValue start_date = 5;\n google.protobuf.StringValue end_date = 6;\n MilestoneStatus status = 7;\n google.protobuf.DoubleValue completion_percentage = 8;\n repeated Milestone dependencies = 9;\n ListOfTask subtasks = 10;\n ListOfEmployee reviewers = 11;\n}\n\nmessage Task {\n reserved 18 to 19;\n string id = 1;\n string project_id = 2;\n google.protobuf.StringValue milestone_id = 3;\n google.protobuf.Int32Value assignee_id = 4;\n string name = 5;\n google.protobuf.StringValue description = 6;\n TaskPriority priority = 7;\n TaskStatus status = 8;\n // Deprecation notice: No more estimations!\n google.protobuf.DoubleValue estimated_hours = 9 [deprecated = true];\n google.protobuf.DoubleValue actual_hours = 10;\n google.protobuf.StringValue created_at = 11;\n google.protobuf.StringValue completed_at = 12;\n ListOfString labels = 13;\n ListOfTask subtasks = 14;\n repeated Task dependencies = 15;\n repeated string attachment_urls = 16;\n ListOfInt reviewer_ids = 17;\n}\n\nmessage Employee {\n int32 id = 1;\n ListOfProject projects = 2;\n repeated Task assigned_tasks = 3;\n repeated Task completed_tasks = 4;\n ListOfString skills = 5;\n ListOfString certifications = 6;\n ListOfListOfProject project_history = 7;\n}\n\nmessage Product {\n string upc = 1;\n ListOfProject projects = 2;\n ListOfListOfString feature_matrix = 3;\n}\n\nenum ProjectStatus {\n PROJECT_STATUS_UNSPECIFIED = 0;\n PROJECT_STATUS_PLANNING = 1;\n PROJECT_STATUS_ACTIVE = 2;\n PROJECT_STATUS_COMPLETED = 3;\n PROJECT_STATUS_ON_HOLD = 4;\n}\n\nmessage ProjectResource {\n oneof value {\n Employee employee = 1;\n Product product = 2;\n Milestone milestone = 3;\n Task task = 4;\n }\n}\n\nmessage ProjectSearchResult {\n oneof value {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage ProjectActivity {\n oneof value {\n ProjectUpdate project_update = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage Node {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n ProjectUpdate project_update = 4;\n }\n}\n\nmessage ProjectInput {\n string name = 1;\n google.protobuf.StringValue description = 2;\n google.protobuf.StringValue start_date = 3;\n google.protobuf.StringValue end_date = 4;\n ProjectStatus status = 5;\n}\n\nmessage MilestoneInput {\n string project_id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue due_date = 4;\n MilestoneStatus status = 5;\n}\n\nmessage TaskInput {\n string project_id = 1;\n google.protobuf.Int32Value assignee_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n TaskPriority priority = 5;\n TaskStatus status = 6;\n google.protobuf.DoubleValue estimated_hours = 7;\n}\n\nmessage ProjectUpdate {\n string id = 1;\n string project_id = 2;\n int32 updated_by_id = 3;\n ProjectUpdateType update_type = 4;\n string description = 5;\n string timestamp = 6;\n google.protobuf.StringValue metadata = 7;\n}\n\nmessage Timestamped {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n }\n}\n\nmessage Assignable {\n oneof instance {\n Task task = 1;\n }\n}\n\nenum MilestoneStatus {\n MILESTONE_STATUS_UNSPECIFIED = 0;\n MILESTONE_STATUS_PENDING = 1;\n MILESTONE_STATUS_IN_PROGRESS = 2;\n MILESTONE_STATUS_COMPLETED = 3;\n MILESTONE_STATUS_DELAYED = 4;\n}\n\nenum TaskStatus {\n TASK_STATUS_UNSPECIFIED = 0;\n TASK_STATUS_TODO = 1;\n TASK_STATUS_IN_PROGRESS = 2;\n TASK_STATUS_REVIEW = 3;\n TASK_STATUS_COMPLETED = 4;\n TASK_STATUS_BLOCKED = 5;\n}\n\nenum TaskPriority {\n TASK_PRIORITY_UNSPECIFIED = 0;\n TASK_PRIORITY_LOW = 1;\n TASK_PRIORITY_MEDIUM = 2;\n TASK_PRIORITY_HIGH = 3;\n TASK_PRIORITY_URGENT = 4;\n}\n\nenum ProjectUpdateType {\n PROJECT_UPDATE_TYPE_UNSPECIFIED = 0;\n PROJECT_UPDATE_TYPE_STATUS_CHANGE = 1;\n PROJECT_UPDATE_TYPE_MILESTONE_ADDED = 2;\n PROJECT_UPDATE_TYPE_TASK_ASSIGNED = 3;\n PROJECT_UPDATE_TYPE_PROGRESS_UPDATE = 4;\n PROJECT_UPDATE_TYPE_TEAM_CHANGE = 5;\n}\n\nmessage EmployeeWorkItem {\n oneof instance {\n TechnicalWorkItem technical_work_item = 1;\n ManagementWorkItem management_work_item = 2;\n }\n}\n\nmessage TechnicalWorkItem {\n string name = 1;\n int32 priority = 2;\n int32 code_count = 3;\n WorkItemHandler handler = 4;\n TechnicalSpecs specs = 5;\n}\n\nmessage ManagementWorkItem {\n string name = 1;\n int32 priority = 2;\n string team_size = 3;\n WorkItemHandler handler = 4;\n ManagementSpecs specs = 5;\n}\n\nmessage WorkItemHandler {\n string name = 1;\n EmployeeWorkItem assigned_item = 2;\n}\n\nmessage TechnicalSpecs {\n string name = 1;\n double complexity = 2;\n WorkMetrics metrics = 3;\n}\n\nmessage ManagementSpecs {\n string name = 1;\n double scope = 2;\n WorkMetrics metrics = 3;\n}\n\nmessage WorkMetrics {\n double score = 1;\n double efficiency = 2;\n}\n\nmessage WorkReviewResult {\n oneof value {\n WorkApproval work_approval = 1;\n WorkRejection work_rejection = 2;\n }\n}\n\nmessage WorkApproval {\n string comment = 1;\n string approved_at = 2;\n}\n\nmessage WorkRejection {\n string reason = 1;\n string rejection_code = 2;\n}\n\nmessage WorkSetup {\n string priority = 1;\n EmployeeWorkItem primary_item = 2;\n}", + "protoSchema": "syntax = \"proto3\";\npackage service;\n\noption go_package = \"github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects\";\n\nimport \"google/protobuf/wrappers.proto\";\n\n// Service definition for ProjectsService\nservice ProjectsService {\n // Lookup Employee entity by id\n rpc LookupEmployeeById(LookupEmployeeByIdRequest) returns (LookupEmployeeByIdResponse) {}\n // Lookup Milestone entity by id\n rpc LookupMilestoneById(LookupMilestoneByIdRequest) returns (LookupMilestoneByIdResponse) {}\n // Lookup Product entity by upc\n rpc LookupProductByUpc(LookupProductByUpcRequest) returns (LookupProductByUpcResponse) {}\n // Lookup Project entity by id\n rpc LookupProjectById(LookupProjectByIdRequest) returns (LookupProjectByIdResponse) {}\n // Lookup Task entity by id\n rpc LookupTaskById(LookupTaskByIdRequest) returns (LookupTaskByIdResponse) {}\n rpc MutationAddMilestone(MutationAddMilestoneRequest) returns (MutationAddMilestoneResponse) {}\n rpc MutationAddProject(MutationAddProjectRequest) returns (MutationAddProjectResponse) {}\n rpc MutationAddTask(MutationAddTaskRequest) returns (MutationAddTaskResponse) {}\n rpc MutationUpdateProjectStatus(MutationUpdateProjectStatusRequest) returns (MutationUpdateProjectStatusResponse) {}\n rpc QueryArchivedProjects(QueryArchivedProjectsRequest) returns (QueryArchivedProjectsResponse) {}\n rpc QueryKillService(QueryKillServiceRequest) returns (QueryKillServiceResponse) {}\n rpc QueryMilestones(QueryMilestonesRequest) returns (QueryMilestonesResponse) {}\n rpc QueryNodesById(QueryNodesByIdRequest) returns (QueryNodesByIdResponse) {}\n rpc QueryPanic(QueryPanicRequest) returns (QueryPanicResponse) {}\n rpc QueryProject(QueryProjectRequest) returns (QueryProjectResponse) {}\n rpc QueryProjectActivities(QueryProjectActivitiesRequest) returns (QueryProjectActivitiesResponse) {}\n rpc QueryProjectResources(QueryProjectResourcesRequest) returns (QueryProjectResourcesResponse) {}\n rpc QueryProjectStatuses(QueryProjectStatusesRequest) returns (QueryProjectStatusesResponse) {}\n rpc QueryProjectTags(QueryProjectTagsRequest) returns (QueryProjectTagsResponse) {}\n rpc QueryProjects(QueryProjectsRequest) returns (QueryProjectsResponse) {}\n rpc QueryProjectsByStatus(QueryProjectsByStatusRequest) returns (QueryProjectsByStatusResponse) {}\n rpc QueryResourceMatrix(QueryResourceMatrixRequest) returns (QueryResourceMatrixResponse) {}\n rpc QuerySearchProjects(QuerySearchProjectsRequest) returns (QuerySearchProjectsResponse) {}\n rpc QueryTasks(QueryTasksRequest) returns (QueryTasksResponse) {}\n rpc QueryTasksByPriority(QueryTasksByPriorityRequest) returns (QueryTasksByPriorityResponse) {}\n rpc RequireEmployeeDeepWorkItemInfoById(RequireEmployeeDeepWorkItemInfoByIdRequest) returns (RequireEmployeeDeepWorkItemInfoByIdResponse) {}\n rpc RequireEmployeeFilteredProjectSummaryById(RequireEmployeeFilteredProjectSummaryByIdRequest) returns (RequireEmployeeFilteredProjectSummaryByIdResponse) {}\n rpc RequireEmployeeReviewReportById(RequireEmployeeReviewReportByIdRequest) returns (RequireEmployeeReviewReportByIdResponse) {}\n rpc RequireEmployeeTaggedProjectSummaryById(RequireEmployeeTaggedProjectSummaryByIdRequest) returns (RequireEmployeeTaggedProjectSummaryByIdResponse) {}\n rpc RequireEmployeeWorkItemHandlerInfoById(RequireEmployeeWorkItemHandlerInfoByIdRequest) returns (RequireEmployeeWorkItemHandlerInfoByIdResponse) {}\n rpc RequireEmployeeWorkItemInfoById(RequireEmployeeWorkItemInfoByIdRequest) returns (RequireEmployeeWorkItemInfoByIdResponse) {}\n rpc RequireEmployeeWorkItemSpecsInfoById(RequireEmployeeWorkItemSpecsInfoByIdRequest) returns (RequireEmployeeWorkItemSpecsInfoByIdResponse) {}\n rpc RequireEmployeeWorkSetupSummaryById(RequireEmployeeWorkSetupSummaryByIdRequest) returns (RequireEmployeeWorkSetupSummaryByIdResponse) {}\n rpc ResolveEmployeeAverageTaskCompletionDays(ResolveEmployeeAverageTaskCompletionDaysRequest) returns (ResolveEmployeeAverageTaskCompletionDaysResponse) {}\n rpc ResolveEmployeeCurrentWorkload(ResolveEmployeeCurrentWorkloadRequest) returns (ResolveEmployeeCurrentWorkloadResponse) {}\n rpc ResolveEmployeeTotalProjectCount(ResolveEmployeeTotalProjectCountRequest) returns (ResolveEmployeeTotalProjectCountResponse) {}\n rpc ResolveMilestoneDaysUntilDue(ResolveMilestoneDaysUntilDueRequest) returns (ResolveMilestoneDaysUntilDueResponse) {}\n rpc ResolveMilestoneIsAtRisk(ResolveMilestoneIsAtRiskRequest) returns (ResolveMilestoneIsAtRiskResponse) {}\n rpc ResolveProjectActiveMilestoneCount(ResolveProjectActiveMilestoneCountRequest) returns (ResolveProjectActiveMilestoneCountResponse) {}\n rpc ResolveProjectCompletionRate(ResolveProjectCompletionRateRequest) returns (ResolveProjectCompletionRateResponse) {}\n rpc ResolveProjectCriticalDeadline(ResolveProjectCriticalDeadlineRequest) returns (ResolveProjectCriticalDeadlineResponse) {}\n rpc ResolveProjectEstimatedDaysRemaining(ResolveProjectEstimatedDaysRemainingRequest) returns (ResolveProjectEstimatedDaysRemainingResponse) {}\n rpc ResolveProjectFilteredTasks(ResolveProjectFilteredTasksRequest) returns (ResolveProjectFilteredTasksResponse) {}\n rpc ResolveProjectSubProjects(ResolveProjectSubProjectsRequest) returns (ResolveProjectSubProjectsResponse) {}\n rpc ResolveProjectTaskCount(ResolveProjectTaskCountRequest) returns (ResolveProjectTaskCountResponse) {}\n rpc ResolveProjectTopPriorityItem(ResolveProjectTopPriorityItemRequest) returns (ResolveProjectTopPriorityItemResponse) {}\n rpc ResolveTaskIsBlocked(ResolveTaskIsBlockedRequest) returns (ResolveTaskIsBlockedResponse) {}\n rpc ResolveTaskTotalEffort(ResolveTaskTotalEffortRequest) returns (ResolveTaskTotalEffortResponse) {}\n}\n\n// Wrapper message for a list of Employee.\nmessage ListOfEmployee {\n message List {\n repeated Employee items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Int.\nmessage ListOfInt {\n message List {\n repeated int32 items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfListOfTask {\n message List {\n repeated ListOfListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfListOfMilestone {\n message List {\n repeated ListOfMilestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfListOfProject {\n message List {\n repeated ListOfProject items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfListOfProjectResource {\n message List {\n repeated ListOfProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfListOfString {\n message List {\n repeated ListOfString items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfListOfTask {\n message List {\n repeated ListOfTask items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Milestone.\nmessage ListOfMilestone {\n message List {\n repeated Milestone items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Project.\nmessage ListOfProject {\n message List {\n repeated Project items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of ProjectResource.\nmessage ListOfProjectResource {\n message List {\n repeated ProjectResource items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of String.\nmessage ListOfString {\n message List {\n repeated string items = 1;\n }\n List list = 1;\n}\n// Wrapper message for a list of Task.\nmessage ListOfTask {\n message List {\n repeated Task items = 1;\n }\n List list = 1;\n}\n// Key message for Project entity lookup\nmessage LookupProjectByIdRequestKey {\n // Key field for Project entity lookup.\n string id = 1;\n}\n\n// Request message for Project entity lookup.\nmessage LookupProjectByIdRequest {\n /*\n * List of keys to look up Project entities.\n * Order matters - each key maps to one entity in LookupProjectByIdResponse.\n */\n repeated LookupProjectByIdRequestKey keys = 1;\n}\n\n// Response message for Project entity lookup.\nmessage LookupProjectByIdResponse {\n /*\n * List of Project entities in the same order as the keys in LookupProjectByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Project result = 1;\n}\n\n// Key message for Milestone entity lookup\nmessage LookupMilestoneByIdRequestKey {\n // Key field for Milestone entity lookup.\n string id = 1;\n}\n\n// Request message for Milestone entity lookup.\nmessage LookupMilestoneByIdRequest {\n /*\n * List of keys to look up Milestone entities.\n * Order matters - each key maps to one entity in LookupMilestoneByIdResponse.\n */\n repeated LookupMilestoneByIdRequestKey keys = 1;\n}\n\n// Response message for Milestone entity lookup.\nmessage LookupMilestoneByIdResponse {\n /*\n * List of Milestone entities in the same order as the keys in LookupMilestoneByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Milestone result = 1;\n}\n\n// Key message for Task entity lookup\nmessage LookupTaskByIdRequestKey {\n // Key field for Task entity lookup.\n string id = 1;\n}\n\n// Request message for Task entity lookup.\nmessage LookupTaskByIdRequest {\n /*\n * List of keys to look up Task entities.\n * Order matters - each key maps to one entity in LookupTaskByIdResponse.\n */\n repeated LookupTaskByIdRequestKey keys = 1;\n}\n\n// Response message for Task entity lookup.\nmessage LookupTaskByIdResponse {\n /*\n * List of Task entities in the same order as the keys in LookupTaskByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Task result = 1;\n}\n\n// Key message for Employee entity lookup\nmessage LookupEmployeeByIdRequestKey {\n // Key field for Employee entity lookup.\n string id = 1;\n}\n\n// Request message for Employee entity lookup.\nmessage LookupEmployeeByIdRequest {\n /*\n * List of keys to look up Employee entities.\n * Order matters - each key maps to one entity in LookupEmployeeByIdResponse.\n */\n repeated LookupEmployeeByIdRequestKey keys = 1;\n}\n\n// Response message for Employee entity lookup.\nmessage LookupEmployeeByIdResponse {\n /*\n * List of Employee entities in the same order as the keys in LookupEmployeeByIdRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Employee result = 1;\n}\n\n// Key message for Product entity lookup\nmessage LookupProductByUpcRequestKey {\n // Key field for Product entity lookup.\n string upc = 1;\n}\n\n// Request message for Product entity lookup.\nmessage LookupProductByUpcRequest {\n /*\n * List of keys to look up Product entities.\n * Order matters - each key maps to one entity in LookupProductByUpcResponse.\n */\n repeated LookupProductByUpcRequestKey keys = 1;\n}\n\n// Response message for Product entity lookup.\nmessage LookupProductByUpcResponse {\n /*\n * List of Product entities in the same order as the keys in LookupProductByUpcRequest.\n * Always return the same number of entities as keys. Use null for entities that cannot be found.\n * \n * Example:\n * LookupUserByIdRequest:\n * keys:\n * - id: 1\n * - id: 2\n * LookupUserByIdResponse:\n * result:\n * - id: 1 # User with id 1 found\n * - null # User with id 2 not found\n */\n repeated Product result = 1;\n}\n\n// Request message for projects operation.\nmessage QueryProjectsRequest {\n}\n// Response message for projects operation.\nmessage QueryProjectsResponse {\n repeated Project projects = 1;\n}\n// Request message for project operation.\nmessage QueryProjectRequest {\n string id = 1;\n}\n// Response message for project operation.\nmessage QueryProjectResponse {\n Project project = 1;\n}\n// Request message for projectStatuses operation.\nmessage QueryProjectStatusesRequest {\n}\n// Response message for projectStatuses operation.\nmessage QueryProjectStatusesResponse {\n repeated ProjectStatus project_statuses = 1;\n}\n// Request message for projectsByStatus operation.\nmessage QueryProjectsByStatusRequest {\n ProjectStatus status = 1;\n}\n// Response message for projectsByStatus operation.\nmessage QueryProjectsByStatusResponse {\n repeated Project projects_by_status = 1;\n}\n// Request message for projectResources operation.\nmessage QueryProjectResourcesRequest {\n string project_id = 1;\n}\n// Response message for projectResources operation.\nmessage QueryProjectResourcesResponse {\n repeated ProjectResource project_resources = 1;\n}\n// Request message for searchProjects operation.\nmessage QuerySearchProjectsRequest {\n string query = 1;\n}\n// Response message for searchProjects operation.\nmessage QuerySearchProjectsResponse {\n repeated ProjectSearchResult search_projects = 1;\n}\n// Request message for milestones operation.\nmessage QueryMilestonesRequest {\n string project_id = 1;\n}\n// Response message for milestones operation.\nmessage QueryMilestonesResponse {\n repeated Milestone milestones = 1;\n}\n// Request message for tasks operation.\nmessage QueryTasksRequest {\n string project_id = 1;\n}\n// Response message for tasks operation.\nmessage QueryTasksResponse {\n repeated Task tasks = 1;\n}\n// Request message for projectActivities operation.\nmessage QueryProjectActivitiesRequest {\n string project_id = 1;\n}\n// Response message for projectActivities operation.\nmessage QueryProjectActivitiesResponse {\n repeated ProjectActivity project_activities = 1;\n}\n// Request message for projectTags operation.\nmessage QueryProjectTagsRequest {\n}\n// Response message for projectTags operation.\nmessage QueryProjectTagsResponse {\n ListOfString project_tags = 1;\n}\n// Request message for archivedProjects operation.\nmessage QueryArchivedProjectsRequest {\n}\n// Response message for archivedProjects operation.\nmessage QueryArchivedProjectsResponse {\n repeated Project archived_projects = 1;\n}\n// Request message for tasksByPriority operation.\nmessage QueryTasksByPriorityRequest {\n string project_id = 1;\n}\n// Response message for tasksByPriority operation.\nmessage QueryTasksByPriorityResponse {\n ListOfListOfTask tasks_by_priority = 1;\n}\n// Request message for resourceMatrix operation.\nmessage QueryResourceMatrixRequest {\n string project_id = 1;\n}\n// Response message for resourceMatrix operation.\nmessage QueryResourceMatrixResponse {\n ListOfListOfProjectResource resource_matrix = 1;\n}\n// Request message for killService operation.\nmessage QueryKillServiceRequest {\n}\n// Response message for killService operation.\nmessage QueryKillServiceResponse {\n bool kill_service = 1;\n}\n// Request message for panic operation.\nmessage QueryPanicRequest {\n}\n// Response message for panic operation.\nmessage QueryPanicResponse {\n bool panic = 1;\n}\n// Request message for nodesById operation.\nmessage QueryNodesByIdRequest {\n string id = 1;\n}\n// Response message for nodesById operation.\nmessage QueryNodesByIdResponse {\n repeated Node nodes_by_id = 1;\n}\n// Request message for addProject operation.\nmessage MutationAddProjectRequest {\n ProjectInput project = 1;\n}\n// Response message for addProject operation.\nmessage MutationAddProjectResponse {\n Project add_project = 1;\n}\n// Request message for addMilestone operation.\nmessage MutationAddMilestoneRequest {\n MilestoneInput milestone = 1;\n}\n// Response message for addMilestone operation.\nmessage MutationAddMilestoneResponse {\n Milestone add_milestone = 1;\n}\n// Request message for addTask operation.\nmessage MutationAddTaskRequest {\n TaskInput task = 1;\n}\n// Response message for addTask operation.\nmessage MutationAddTaskResponse {\n Task add_task = 1;\n}\n// Request message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusRequest {\n string project_id = 1;\n ProjectStatus status = 2;\n}\n// Response message for updateProjectStatus operation.\nmessage MutationUpdateProjectStatusResponse {\n ProjectUpdate update_project_status = 1;\n}\nmessage ResolveProjectSubProjectsArgs {\n google.protobuf.BoolValue include_archived = 1;\n}\n\nmessage ResolveProjectSubProjectsContext {\n string id = 1;\n string name = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectSubProjectsRequest {\n // context provides the resolver context for the field subProjects of type Project.\n repeated ResolveProjectSubProjectsContext context = 1;\n // field_args provides the arguments for the resolver field subProjects of type Project.\n ResolveProjectSubProjectsArgs field_args = 2;\n}\n\nmessage ResolveProjectSubProjectsResult {\n repeated Project sub_projects = 1;\n}\n\nmessage ResolveProjectSubProjectsResponse {\n repeated ResolveProjectSubProjectsResult result = 1;\n}\n\nmessage ResolveProjectFilteredTasksArgs {\n TaskStatus status = 1;\n TaskPriority priority = 2;\n google.protobuf.Int32Value limit = 3;\n}\n\nmessage ResolveProjectFilteredTasksContext {\n string id = 1;\n}\n\nmessage ResolveProjectFilteredTasksRequest {\n // context provides the resolver context for the field filteredTasks of type Project.\n repeated ResolveProjectFilteredTasksContext context = 1;\n // field_args provides the arguments for the resolver field filteredTasks of type Project.\n ResolveProjectFilteredTasksArgs field_args = 2;\n}\n\nmessage ResolveProjectFilteredTasksResult {\n repeated Task filtered_tasks = 1;\n}\n\nmessage ResolveProjectFilteredTasksResponse {\n repeated ResolveProjectFilteredTasksResult result = 1;\n}\n\nmessage ResolveProjectCompletionRateArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveProjectCompletionRateContext {\n string id = 1;\n google.protobuf.StringValue start_date = 2;\n google.protobuf.StringValue end_date = 3;\n ProjectStatus status = 4;\n}\n\nmessage ResolveProjectCompletionRateRequest {\n // context provides the resolver context for the field completionRate of type Project.\n repeated ResolveProjectCompletionRateContext context = 1;\n // field_args provides the arguments for the resolver field completionRate of type Project.\n ResolveProjectCompletionRateArgs field_args = 2;\n}\n\nmessage ResolveProjectCompletionRateResult {\n double completion_rate = 1;\n}\n\nmessage ResolveProjectCompletionRateResponse {\n repeated ResolveProjectCompletionRateResult result = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n ProjectStatus status = 3;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingRequest {\n // context provides the resolver context for the field estimatedDaysRemaining of type Project.\n repeated ResolveProjectEstimatedDaysRemainingContext context = 1;\n // field_args provides the arguments for the resolver field estimatedDaysRemaining of type Project.\n ResolveProjectEstimatedDaysRemainingArgs field_args = 2;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResult {\n google.protobuf.Int32Value estimated_days_remaining = 1;\n}\n\nmessage ResolveProjectEstimatedDaysRemainingResponse {\n repeated ResolveProjectEstimatedDaysRemainingResult result = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineArgs {\n google.protobuf.Int32Value within_days = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineContext {\n string id = 1;\n ProjectStatus status = 2;\n repeated Milestone milestones = 3;\n}\n\nmessage ResolveProjectCriticalDeadlineRequest {\n // context provides the resolver context for the field criticalDeadline of type Project.\n repeated ResolveProjectCriticalDeadlineContext context = 1;\n // field_args provides the arguments for the resolver field criticalDeadline of type Project.\n ResolveProjectCriticalDeadlineArgs field_args = 2;\n}\n\nmessage ResolveProjectCriticalDeadlineResult {\n Timestamped critical_deadline = 1;\n}\n\nmessage ResolveProjectCriticalDeadlineResponse {\n repeated ResolveProjectCriticalDeadlineResult result = 1;\n}\n\nmessage ResolveProjectTopPriorityItemArgs {\n google.protobuf.StringValue category = 1;\n}\n\nmessage ResolveProjectTopPriorityItemContext {\n string id = 1;\n ProjectStatus status = 2;\n}\n\nmessage ResolveProjectTopPriorityItemRequest {\n // context provides the resolver context for the field topPriorityItem of type Project.\n repeated ResolveProjectTopPriorityItemContext context = 1;\n // field_args provides the arguments for the resolver field topPriorityItem of type Project.\n ResolveProjectTopPriorityItemArgs field_args = 2;\n}\n\nmessage ResolveProjectTopPriorityItemResult {\n ProjectSearchResult top_priority_item = 1;\n}\n\nmessage ResolveProjectTopPriorityItemResponse {\n repeated ResolveProjectTopPriorityItemResult result = 1;\n}\n\nmessage ResolveProjectTaskCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectTaskCountRequest {\n // context provides the resolver context for the field taskCount of type Project.\n repeated ResolveProjectTaskCountContext context = 1;\n}\n\nmessage ResolveProjectTaskCountResult {\n int32 task_count = 1;\n}\n\nmessage ResolveProjectTaskCountResponse {\n repeated ResolveProjectTaskCountResult result = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountContext {\n string id = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountRequest {\n // context provides the resolver context for the field activeMilestoneCount of type Project.\n repeated ResolveProjectActiveMilestoneCountContext context = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResult {\n int32 active_milestone_count = 1;\n}\n\nmessage ResolveProjectActiveMilestoneCountResponse {\n repeated ResolveProjectActiveMilestoneCountResult result = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskArgs {\n google.protobuf.DoubleValue threshold = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskContext {\n string id = 1;\n google.protobuf.StringValue end_date = 2;\n MilestoneStatus status = 3;\n google.protobuf.DoubleValue completion_percentage = 4;\n}\n\nmessage ResolveMilestoneIsAtRiskRequest {\n // context provides the resolver context for the field isAtRisk of type Milestone.\n repeated ResolveMilestoneIsAtRiskContext context = 1;\n // field_args provides the arguments for the resolver field isAtRisk of type Milestone.\n ResolveMilestoneIsAtRiskArgs field_args = 2;\n}\n\nmessage ResolveMilestoneIsAtRiskResult {\n bool is_at_risk = 1;\n}\n\nmessage ResolveMilestoneIsAtRiskResponse {\n repeated ResolveMilestoneIsAtRiskResult result = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueArgs {\n google.protobuf.StringValue from_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueContext {\n google.protobuf.StringValue end_date = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueRequest {\n // context provides the resolver context for the field daysUntilDue of type Milestone.\n repeated ResolveMilestoneDaysUntilDueContext context = 1;\n // field_args provides the arguments for the resolver field daysUntilDue of type Milestone.\n ResolveMilestoneDaysUntilDueArgs field_args = 2;\n}\n\nmessage ResolveMilestoneDaysUntilDueResult {\n google.protobuf.Int32Value days_until_due = 1;\n}\n\nmessage ResolveMilestoneDaysUntilDueResponse {\n repeated ResolveMilestoneDaysUntilDueResult result = 1;\n}\n\nmessage ResolveTaskIsBlockedArgs {\n google.protobuf.BoolValue check_dependencies = 1;\n}\n\nmessage ResolveTaskIsBlockedContext {\n string id = 1;\n TaskStatus status = 2;\n}\n\nmessage ResolveTaskIsBlockedRequest {\n // context provides the resolver context for the field isBlocked of type Task.\n repeated ResolveTaskIsBlockedContext context = 1;\n // field_args provides the arguments for the resolver field isBlocked of type Task.\n ResolveTaskIsBlockedArgs field_args = 2;\n}\n\nmessage ResolveTaskIsBlockedResult {\n bool is_blocked = 1;\n}\n\nmessage ResolveTaskIsBlockedResponse {\n repeated ResolveTaskIsBlockedResult result = 1;\n}\n\nmessage ResolveTaskTotalEffortArgs {\n google.protobuf.BoolValue include_subtasks = 1;\n}\n\nmessage ResolveTaskTotalEffortContext {\n string id = 1;\n google.protobuf.DoubleValue estimated_hours = 2;\n google.protobuf.DoubleValue actual_hours = 3;\n}\n\nmessage ResolveTaskTotalEffortRequest {\n // context provides the resolver context for the field totalEffort of type Task.\n repeated ResolveTaskTotalEffortContext context = 1;\n // field_args provides the arguments for the resolver field totalEffort of type Task.\n ResolveTaskTotalEffortArgs field_args = 2;\n}\n\nmessage ResolveTaskTotalEffortResult {\n google.protobuf.DoubleValue total_effort = 1;\n}\n\nmessage ResolveTaskTotalEffortResponse {\n repeated ResolveTaskTotalEffortResult result = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadArgs {\n google.protobuf.BoolValue include_completed = 1;\n google.protobuf.StringValue project_id = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadRequest {\n // context provides the resolver context for the field currentWorkload of type Employee.\n repeated ResolveEmployeeCurrentWorkloadContext context = 1;\n // field_args provides the arguments for the resolver field currentWorkload of type Employee.\n ResolveEmployeeCurrentWorkloadArgs field_args = 2;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResult {\n int32 current_workload = 1;\n}\n\nmessage ResolveEmployeeCurrentWorkloadResponse {\n repeated ResolveEmployeeCurrentWorkloadResult result = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysArgs {\n google.protobuf.StringValue project_id = 1;\n TaskPriority priority = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysRequest {\n // context provides the resolver context for the field averageTaskCompletionDays of type Employee.\n repeated ResolveEmployeeAverageTaskCompletionDaysContext context = 1;\n // field_args provides the arguments for the resolver field averageTaskCompletionDays of type Employee.\n ResolveEmployeeAverageTaskCompletionDaysArgs field_args = 2;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResult {\n google.protobuf.DoubleValue average_task_completion_days = 1;\n}\n\nmessage ResolveEmployeeAverageTaskCompletionDaysResponse {\n repeated ResolveEmployeeAverageTaskCompletionDaysResult result = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountContext {\n int32 id = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountRequest {\n // context provides the resolver context for the field totalProjectCount of type Employee.\n repeated ResolveEmployeeTotalProjectCountContext context = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResult {\n int32 total_project_count = 1;\n}\n\nmessage ResolveEmployeeTotalProjectCountResponse {\n repeated ResolveEmployeeTotalProjectCountResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdRequest {\n // RequireEmployeeTaggedProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeTaggedProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResponse {\n // RequireEmployeeTaggedProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeTaggedProjectSummaryById.\n repeated RequireEmployeeTaggedProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdResult {\n string tagged_project_summary = 1;\n}\n\nmessage RequireEmployeeTaggedProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdRequest {\n // RequireEmployeeFilteredProjectSummaryByIdContext provides the context for the required fields method RequireEmployeeFilteredProjectSummaryById.\n repeated RequireEmployeeFilteredProjectSummaryByIdContext context = 1;\n // RequireEmployeeFilteredProjectSummaryByIdArgs provides the field arguments for the required field with method RequireEmployeeFilteredProjectSummaryById.\n RequireEmployeeFilteredProjectSummaryByIdArgs field_args = 2;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeFilteredProjectSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdArgs {\n string tag = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdResponse {\n // RequireEmployeeFilteredProjectSummaryByIdResult provides the result for the required fields method RequireEmployeeFilteredProjectSummaryById.\n repeated RequireEmployeeFilteredProjectSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdResult {\n string filtered_project_summary = 1;\n}\n\nmessage RequireEmployeeFilteredProjectSummaryByIdFields {\n string expertise = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdRequest {\n // RequireEmployeeWorkItemInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemInfoById.\n repeated RequireEmployeeWorkItemInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdResponse {\n // RequireEmployeeWorkItemInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemInfoById.\n repeated RequireEmployeeWorkItemInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdResult {\n string work_item_info = 1;\n}\n\nmessage RequireEmployeeWorkItemInfoByIdFields {\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdRequest {\n // RequireEmployeeReviewReportByIdContext provides the context for the required fields method RequireEmployeeReviewReportById.\n repeated RequireEmployeeReviewReportByIdContext context = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeReviewReportByIdFields fields = 2;\n}\n\nmessage RequireEmployeeReviewReportByIdResponse {\n // RequireEmployeeReviewReportByIdResult provides the result for the required fields method RequireEmployeeReviewReportById.\n repeated RequireEmployeeReviewReportByIdResult result = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdResult {\n string review_report = 1;\n}\n\nmessage RequireEmployeeReviewReportByIdFields {\n message WorkApproval {\n string comment = 1;\n string approved_at = 2;\n }\n\n message WorkRejection {\n string reason = 1;\n string rejection_code = 2;\n }\n\n message WorkReviewResult {\n oneof value {\n WorkApproval work_approval = 1;\n WorkRejection work_rejection = 2;\n }\n }\n WorkReviewResult last_work_review = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdRequest {\n // RequireEmployeeWorkSetupSummaryByIdContext provides the context for the required fields method RequireEmployeeWorkSetupSummaryById.\n repeated RequireEmployeeWorkSetupSummaryByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkSetupSummaryByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdResponse {\n // RequireEmployeeWorkSetupSummaryByIdResult provides the result for the required fields method RequireEmployeeWorkSetupSummaryById.\n repeated RequireEmployeeWorkSetupSummaryByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdResult {\n string work_setup_summary = 1;\n}\n\nmessage RequireEmployeeWorkSetupSummaryByIdFields {\n message WorkSetup {\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n string priority = 1;\n EmployeeWorkItem primary_item = 2;\n }\n\n WorkSetup work_setup = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdRequest {\n // RequireEmployeeWorkItemHandlerInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemHandlerInfoById.\n repeated RequireEmployeeWorkItemHandlerInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemHandlerInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdResponse {\n // RequireEmployeeWorkItemHandlerInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemHandlerInfoById.\n repeated RequireEmployeeWorkItemHandlerInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdResult {\n string work_item_handler_info = 1;\n}\n\nmessage RequireEmployeeWorkItemHandlerInfoByIdFields {\n message TechnicalWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message ManagementWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdRequest {\n // RequireEmployeeWorkItemSpecsInfoByIdContext provides the context for the required fields method RequireEmployeeWorkItemSpecsInfoById.\n repeated RequireEmployeeWorkItemSpecsInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeWorkItemSpecsInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdResponse {\n // RequireEmployeeWorkItemSpecsInfoByIdResult provides the result for the required fields method RequireEmployeeWorkItemSpecsInfoById.\n repeated RequireEmployeeWorkItemSpecsInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdResult {\n string work_item_specs_info = 1;\n}\n\nmessage RequireEmployeeWorkItemSpecsInfoByIdFields {\n message TechnicalWorkItem {\n message TechnicalSpecs {\n message WorkMetrics {\n double score = 1;\n double efficiency = 2;\n }\n\n string name = 1;\n WorkMetrics metrics = 2;\n }\n\n TechnicalSpecs specs = 1;\n }\n\n message ManagementWorkItem {\n message ManagementSpecs {\n message WorkMetrics {\n double score = 1;\n double efficiency = 2;\n }\n\n string name = 1;\n WorkMetrics metrics = 2;\n }\n\n ManagementSpecs specs = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdRequest {\n // RequireEmployeeDeepWorkItemInfoByIdContext provides the context for the required fields method RequireEmployeeDeepWorkItemInfoById.\n repeated RequireEmployeeDeepWorkItemInfoByIdContext context = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdContext {\n LookupEmployeeByIdRequestKey key = 1;\n RequireEmployeeDeepWorkItemInfoByIdFields fields = 2;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdResponse {\n // RequireEmployeeDeepWorkItemInfoByIdResult provides the result for the required fields method RequireEmployeeDeepWorkItemInfoById.\n repeated RequireEmployeeDeepWorkItemInfoByIdResult result = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdResult {\n string deep_work_item_info = 1;\n}\n\nmessage RequireEmployeeDeepWorkItemInfoByIdFields {\n message TechnicalWorkItem {\n message WorkItemHandler {\n message ManagementWorkItem {\n string name = 1;\n string team_size = 2;\n }\n\n message TechnicalWorkItem {\n string name = 1;\n int32 code_count = 2;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem assigned_item = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message ManagementWorkItem {\n message WorkItemHandler {\n string name = 1;\n }\n\n WorkItemHandler handler = 1;\n }\n\n message EmployeeWorkItem {\n oneof instance {\n ManagementWorkItem management_work_item = 1;\n TechnicalWorkItem technical_work_item = 2;\n }\n }\n EmployeeWorkItem primary_work_item = 1;\n}\n\nmessage Project {\n string id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue start_date = 4;\n google.protobuf.StringValue end_date = 5;\n ProjectStatus status = 6;\n repeated Employee team_members = 7;\n repeated Product related_products = 8;\n ListOfString milestone_ids = 9;\n repeated Milestone milestones = 10;\n repeated Task tasks = 11;\n google.protobuf.DoubleValue progress = 12;\n ListOfString tags = 13;\n ListOfProject alternative_projects = 14;\n ListOfProject dependencies = 15;\n ListOfListOfProjectResource resource_groups = 16;\n ListOfListOfTask tasks_by_phase = 17;\n ListOfListOfMilestone milestone_groups = 18;\n ListOfListOfListOfTask priority_matrix = 19;\n}\n\nmessage Milestone {\n string id = 1;\n string project_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n google.protobuf.StringValue start_date = 5;\n google.protobuf.StringValue end_date = 6;\n MilestoneStatus status = 7;\n google.protobuf.DoubleValue completion_percentage = 8;\n repeated Milestone dependencies = 9;\n ListOfTask subtasks = 10;\n ListOfEmployee reviewers = 11;\n}\n\nmessage Task {\n reserved 18 to 19;\n string id = 1;\n string project_id = 2;\n google.protobuf.StringValue milestone_id = 3;\n google.protobuf.Int32Value assignee_id = 4;\n string name = 5;\n google.protobuf.StringValue description = 6;\n TaskPriority priority = 7;\n TaskStatus status = 8;\n // Deprecation notice: No more estimations!\n google.protobuf.DoubleValue estimated_hours = 9 [deprecated = true];\n google.protobuf.DoubleValue actual_hours = 10;\n google.protobuf.StringValue created_at = 11;\n google.protobuf.StringValue completed_at = 12;\n ListOfString labels = 13;\n ListOfTask subtasks = 14;\n repeated Task dependencies = 15;\n repeated string attachment_urls = 16;\n ListOfInt reviewer_ids = 17;\n}\n\nmessage Employee {\n int32 id = 1;\n ListOfProject projects = 2;\n repeated Task assigned_tasks = 3;\n repeated Task completed_tasks = 4;\n ListOfString skills = 5;\n ListOfString certifications = 6;\n ListOfListOfProject project_history = 7;\n}\n\nmessage Product {\n string upc = 1;\n ListOfProject projects = 2;\n ListOfListOfString feature_matrix = 3;\n}\n\nenum ProjectStatus {\n PROJECT_STATUS_UNSPECIFIED = 0;\n PROJECT_STATUS_PLANNING = 1;\n PROJECT_STATUS_ACTIVE = 2;\n PROJECT_STATUS_COMPLETED = 3;\n PROJECT_STATUS_ON_HOLD = 4;\n}\n\nmessage ProjectResource {\n oneof value {\n Employee employee = 1;\n Product product = 2;\n Milestone milestone = 3;\n Task task = 4;\n }\n}\n\nmessage ProjectSearchResult {\n oneof value {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage ProjectActivity {\n oneof value {\n ProjectUpdate project_update = 1;\n Milestone milestone = 2;\n Task task = 3;\n }\n}\n\nmessage Node {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n Task task = 3;\n ProjectUpdate project_update = 4;\n }\n}\n\nmessage ProjectInput {\n string name = 1;\n google.protobuf.StringValue description = 2;\n google.protobuf.StringValue start_date = 3;\n google.protobuf.StringValue end_date = 4;\n ProjectStatus status = 5;\n}\n\nmessage MilestoneInput {\n string project_id = 1;\n string name = 2;\n google.protobuf.StringValue description = 3;\n google.protobuf.StringValue due_date = 4;\n MilestoneStatus status = 5;\n}\n\nmessage TaskInput {\n string project_id = 1;\n google.protobuf.Int32Value assignee_id = 2;\n string name = 3;\n google.protobuf.StringValue description = 4;\n TaskPriority priority = 5;\n TaskStatus status = 6;\n google.protobuf.DoubleValue estimated_hours = 7;\n}\n\nmessage ProjectUpdate {\n string id = 1;\n string project_id = 2;\n int32 updated_by_id = 3;\n ProjectUpdateType update_type = 4;\n string description = 5;\n string timestamp = 6;\n google.protobuf.StringValue metadata = 7;\n}\n\nmessage Timestamped {\n oneof instance {\n Project project = 1;\n Milestone milestone = 2;\n }\n}\n\nmessage Assignable {\n oneof instance {\n Task task = 1;\n }\n}\n\nenum MilestoneStatus {\n MILESTONE_STATUS_UNSPECIFIED = 0;\n MILESTONE_STATUS_PENDING = 1;\n MILESTONE_STATUS_IN_PROGRESS = 2;\n MILESTONE_STATUS_COMPLETED = 3;\n MILESTONE_STATUS_DELAYED = 4;\n}\n\nenum TaskStatus {\n TASK_STATUS_UNSPECIFIED = 0;\n TASK_STATUS_TODO = 1;\n TASK_STATUS_IN_PROGRESS = 2;\n TASK_STATUS_REVIEW = 3;\n TASK_STATUS_COMPLETED = 4;\n TASK_STATUS_BLOCKED = 5;\n}\n\nenum TaskPriority {\n TASK_PRIORITY_UNSPECIFIED = 0;\n TASK_PRIORITY_LOW = 1;\n TASK_PRIORITY_MEDIUM = 2;\n TASK_PRIORITY_HIGH = 3;\n TASK_PRIORITY_URGENT = 4;\n}\n\nenum ProjectUpdateType {\n PROJECT_UPDATE_TYPE_UNSPECIFIED = 0;\n PROJECT_UPDATE_TYPE_STATUS_CHANGE = 1;\n PROJECT_UPDATE_TYPE_MILESTONE_ADDED = 2;\n PROJECT_UPDATE_TYPE_TASK_ASSIGNED = 3;\n PROJECT_UPDATE_TYPE_PROGRESS_UPDATE = 4;\n PROJECT_UPDATE_TYPE_TEAM_CHANGE = 5;\n}\n\nmessage EmployeeWorkItem {\n oneof instance {\n TechnicalWorkItem technical_work_item = 1;\n ManagementWorkItem management_work_item = 2;\n }\n}\n\nmessage TechnicalWorkItem {\n string name = 1;\n int32 priority = 2;\n int32 code_count = 3;\n WorkItemHandler handler = 4;\n TechnicalSpecs specs = 5;\n}\n\nmessage ManagementWorkItem {\n string name = 1;\n int32 priority = 2;\n string team_size = 3;\n WorkItemHandler handler = 4;\n ManagementSpecs specs = 5;\n}\n\nmessage WorkItemHandler {\n string name = 1;\n EmployeeWorkItem assigned_item = 2;\n}\n\nmessage TechnicalSpecs {\n string name = 1;\n double complexity = 2;\n WorkMetrics metrics = 3;\n}\n\nmessage ManagementSpecs {\n string name = 1;\n double scope = 2;\n WorkMetrics metrics = 3;\n}\n\nmessage WorkMetrics {\n double score = 1;\n double efficiency = 2;\n}\n\nmessage WorkReviewResult {\n oneof value {\n WorkApproval work_approval = 1;\n WorkRejection work_rejection = 2;\n }\n}\n\nmessage WorkApproval {\n string comment = 1;\n string approved_at = 2;\n}\n\nmessage WorkRejection {\n string reason = 1;\n string rejection_code = 2;\n}\n\nmessage WorkSetup {\n string priority = 1;\n EmployeeWorkItem primary_item = 2;\n}", "plugin": { "name": "projects", "version": "0.0.1" } } }, @@ -2308,6 +2290,7 @@ ], "requires": [ { "typeName": "Employee", "fieldName": "taggedProjectSummary", "selectionSet": "expertise" }, + { "typeName": "Employee", "fieldName": "filteredProjectSummary", "selectionSet": "expertise" }, { "typeName": "Employee", "fieldName": "workItemInfo", @@ -2821,6 +2804,11 @@ "fieldName": "initialPayload", "argumentsConfiguration": [{ "name": "repeat", "sourceType": "FIELD_ARGUMENT" }] }, + { + "typeName": "Employee", + "fieldName": "filteredProjectSummary", + "argumentsConfiguration": [{ "name": "tag", "sourceType": "FIELD_ARGUMENT" }] + }, { "typeName": "Employee", "fieldName": "currentWorkload", @@ -3002,7 +2990,7 @@ "authorizationConfiguration": { "requiresAuthentication": true } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n slicedThings(first: Int, last: Int): [Thing]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n courses: [Course!]!\n course(id: ID!): Course\n lessons(courseId: ID!): [Lesson!]!\n killCoursesService: Boolean!\n throwErrorCourses: Boolean!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n addCourse(title: String!, instructorId: Int!): Course!\n addLesson(courseId: ID!, title: String!, order: Int!): Lesson!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype WorkItemHandler {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Course {\n id: ID!\n title: String!\n description: String\n instructor: Employee!\n lessons: [Lesson!]!\n}\n\ntype Lesson {\n id: ID!\n courseId: ID!\n title: String!\n description: String\n order: Int!\n course: Course!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n primaryWorkItem: EmployeeWorkItem\n lastWorkReview: WorkReviewResult\n workSetup: WorkSetup\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n workItemInfo: String!\n reviewReport: String!\n workSetupSummary: String!\n workItemHandlerInfo: String!\n workItemSpecsInfo: String!\n deepWorkItemInfo: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n taughtCourses: [Course!]!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n slicedThings(first: Int, last: Int): [Thing]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n courses: [Course!]!\n course(id: ID!): Course\n lessons(courseId: ID!): [Lesson!]!\n killCoursesService: Boolean!\n throwErrorCourses: Boolean!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n addCourse(title: String!, instructorId: Int!): Course!\n addLesson(courseId: ID!, title: String!, order: Int!): Lesson!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype WorkItemHandler {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Course {\n id: ID!\n title: String!\n description: String\n instructor: Employee!\n lessons: [Lesson!]!\n}\n\ntype Lesson {\n id: ID!\n courseId: ID!\n title: String!\n description: String\n order: Int!\n course: Course!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n primaryWorkItem: EmployeeWorkItem\n lastWorkReview: WorkReviewResult\n workSetup: WorkSetup\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n filteredProjectSummary(tag: String!): String!\n workItemInfo: String!\n reviewReport: String!\n workSetupSummary: String!\n workItemHandlerInfo: String!\n workItemSpecsInfo: String!\n deepWorkItemInfo: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n taughtCourses: [Course!]!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}", "stringStorage": { "a4774c0e460b0a10fb65053851889fcc900f9416": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @cost(weight: Int!) on ARGUMENT_DEFINITION | ENUM | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | OBJECT | SCALAR\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @listSize(assumedSize: Int, requireOneSlicingArgument: Boolean = true, sizedFields: [String!], slicingArguments: [String!]) on FIELD_DEFINITION\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") @cost(weight: 5) {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department @cost(weight: 1) {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n expertise: String!\n id: Int!\n isAvailable: Boolean @external\n lastWorkReview: WorkReviewResult\n notes: String @shareable\n primaryWorkItem: EmployeeWorkItem\n role: RoleType! @listSize(assumedSize: 3, sizedFields: [\"departments\"])\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n workSetup: WorkSetup\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype ManagementSpecs {\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n scope: Float! @shareable\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: ManagementSpecs! @shareable\n teamSize: String! @shareable\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int! @cost(weight: 2)): Employee @cost(weight: 5) @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee] @listSize(assumedSize: 50)\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype TechnicalSpecs {\n complexity: Float! @shareable\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n codeCount: Int! @shareable\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: TechnicalSpecs! @shareable\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\ntype WorkApproval {\n approvedAt: String! @shareable\n comment: String! @shareable\n}\n\ntype WorkItemHandler {\n assignedItem: EmployeeWorkItem! @shareable\n name: String! @shareable\n}\n\ntype WorkMetrics {\n efficiency: Float! @shareable\n score: Float! @shareable\n}\n\ntype WorkRejection {\n reason: String! @shareable\n rejectionCode: String! @shareable\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkSetup {\n primaryItem: EmployeeWorkItem! @shareable\n priority: String! @shareable\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", "2265a44afac63dcf9da5f7ee5ff35c7a6dc8adff": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated(reason: \"No longer supported\")\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", @@ -3012,10 +3000,10 @@ "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", - "61d6d16f8d41b334b260585cc3227a9a820a03ae": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Query\n mutation: Mutation\n}\n\ndirective @connect__fieldResolver(context: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ninterface Assignable {\n assigneeId: Int\n}\n\ntype Employee @key(fields: \"id\") {\n assignedTasks: [Task!]!\n averageTaskCompletionDays(priority: TaskPriority, projectId: ID): Float @connect__fieldResolver(context: \"id\")\n certifications: [String!]\n completedTasks: [Task!]!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n deepWorkItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { assignedItem { __typename ... on ManagementWorkItem { name teamSize } ... on TechnicalWorkItem { name codeCount } } } } ... on ManagementWorkItem { handler { name } } }\")\n expertise: String! @external\n id: Int!\n lastWorkReview: WorkReviewResult @external\n primaryWorkItem: EmployeeWorkItem @external\n projectHistory: [[Project!]]!\n projects: [Project!]\n reviewReport: String! @requires(fields: \"lastWorkReview { ... on WorkApproval { __typename comment approvedAt } ... on WorkRejection { __typename reason rejectionCode } }\")\n skills: [String]\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n workItemHandlerInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { name } } ... on ManagementWorkItem { handler { name } } }\")\n workItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } }\")\n workItemSpecsInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { specs { name metrics { score efficiency } } } ... on ManagementWorkItem { specs { name metrics { score efficiency } } } }\")\n workSetup: WorkSetup @external\n workSetupSummary: String! @requires(fields: \"workSetup { priority primaryItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } } }\")\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype ManagementSpecs {\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n scope: Float! @shareable\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: ManagementSpecs! @shareable\n teamSize: String! @shareable\n}\n\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n completionPercentage: Float\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n dependencies: [Milestone]!\n description: String\n endDate: String\n id: ID!\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n name: String!\n projectId: ID!\n reviewers: [Employee!]\n startDate: String\n status: MilestoneStatus!\n subtasks: [Task]\n}\n\ninput MilestoneInput {\n description: String\n dueDate: String\n name: String!\n projectId: ID!\n status: MilestoneStatus!\n}\n\nenum MilestoneStatus {\n COMPLETED\n DELAYED\n IN_PROGRESS\n PENDING\n}\n\ntype Mutation {\n addMilestone(milestone: MilestoneInput!): Milestone!\n addProject(project: ProjectInput!): Project!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype Product @key(fields: \"upc\") {\n featureMatrix: [[String]]\n projects: [Project!]\n upc: String!\n}\n\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n alternativeProjects: [Project]\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n dependencies: [Project!]\n description: String\n endDate: String\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n filteredTasks(limit: Int, priority: TaskPriority, status: TaskStatus): [Task!]! @connect__fieldResolver(context: \"id\")\n id: ID!\n milestoneGroups: [[Milestone]]\n milestoneIds: [String!]\n milestones: [Milestone!]!\n name: String!\n priorityMatrix: [[[Task!]!]!]\n progress: Float\n relatedProducts: [Product!]!\n resourceGroups: [[ProjectResource!]!]!\n startDate: String\n status: ProjectStatus!\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n tags: [String]\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n tasks: [Task!]!\n tasksByPhase: [[Task!]]!\n teamMembers: [Employee!]!\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n}\n\nunion ProjectActivity = Milestone | ProjectUpdate | Task\n\ninput ProjectInput {\n description: String\n endDate: String\n name: String!\n startDate: String\n status: ProjectStatus!\n}\n\nunion ProjectResource = Employee | Milestone | Product | Task\n\nunion ProjectSearchResult = Milestone | Project | Task\n\nenum ProjectStatus {\n ACTIVE\n COMPLETED\n ON_HOLD\n PLANNING\n}\n\ntype ProjectUpdate implements Node {\n description: String!\n id: ID!\n metadata: String\n projectId: ID!\n timestamp: String!\n updateType: ProjectUpdateType!\n updatedById: Int!\n}\n\nenum ProjectUpdateType {\n MILESTONE_ADDED\n PROGRESS_UPDATE\n STATUS_CHANGE\n TASK_ASSIGNED\n TEAM_CHANGE\n}\n\ntype Query {\n archivedProjects: [Project]!\n killService: Boolean!\n milestones(projectId: ID!): [Milestone!]!\n nodesById(id: ID!): [Node!]!\n panic: Boolean!\n project(id: ID!): Project\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n projectStatuses: [ProjectStatus!]!\n projectTags: [String]\n projects: [Project!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n tasks(projectId: ID!): [Task!]!\n tasksByPriority(projectId: ID!): [[Task]]\n}\n\ntype Task implements Assignable & Node @key(fields: \"id\") {\n actualHours: Float\n assigneeId: Int\n attachmentUrls: [String!]!\n completedAt: String\n createdAt: String\n dependencies: [Task]!\n description: String\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n id: ID!\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n labels: [String]\n milestoneId: ID\n name: String!\n priority: TaskPriority!\n projectId: ID!\n reviewerIds: [Int]\n status: TaskStatus!\n subtasks: [Task!]\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ninput TaskInput {\n assigneeId: Int\n description: String\n estimatedHours: Float\n name: String!\n priority: TaskPriority!\n projectId: ID!\n status: TaskStatus!\n}\n\nenum TaskPriority {\n HIGH\n LOW\n MEDIUM\n URGENT\n}\n\nenum TaskStatus {\n BLOCKED\n COMPLETED\n IN_PROGRESS\n REVIEW\n TODO\n}\n\ntype TechnicalSpecs {\n complexity: Float! @shareable\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n codeCount: Int! @shareable\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: TechnicalSpecs! @shareable\n}\n\ninterface Timestamped {\n endDate: String\n startDate: String\n}\n\ntype WorkApproval {\n approvedAt: String! @shareable\n comment: String! @shareable\n}\n\ntype WorkItemHandler {\n assignedItem: EmployeeWorkItem! @shareable\n name: String! @shareable\n}\n\ntype WorkMetrics {\n efficiency: Float! @shareable\n score: Float! @shareable\n}\n\ntype WorkRejection {\n reason: String! @shareable\n rejectionCode: String! @shareable\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkSetup {\n primaryItem: EmployeeWorkItem! @shareable\n priority: String! @shareable\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "b5d54b6a542b4b5c0d3d1cb366a6d40ee5ecc6c3": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Query\n mutation: Mutation\n}\n\ndirective @connect__fieldResolver(context: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ninterface Assignable {\n assigneeId: Int\n}\n\ntype Employee @key(fields: \"id\") {\n assignedTasks: [Task!]!\n averageTaskCompletionDays(priority: TaskPriority, projectId: ID): Float @connect__fieldResolver(context: \"id\")\n certifications: [String!]\n completedTasks: [Task!]!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int! @connect__fieldResolver(context: \"id\")\n deepWorkItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { assignedItem { __typename ... on ManagementWorkItem { name teamSize } ... on TechnicalWorkItem { name codeCount } } } } ... on ManagementWorkItem { handler { name } } }\")\n expertise: String! @external\n filteredProjectSummary(tag: String!): String! @requires(fields: \"expertise\")\n id: Int!\n lastWorkReview: WorkReviewResult @external\n primaryWorkItem: EmployeeWorkItem @external\n projectHistory: [[Project!]]!\n projects: [Project!]\n reviewReport: String! @requires(fields: \"lastWorkReview { ... on WorkApproval { __typename comment approvedAt } ... on WorkRejection { __typename reason rejectionCode } }\")\n skills: [String]\n taggedProjectSummary: String! @requires(fields: \"expertise\")\n totalProjectCount: Int! @connect__fieldResolver(context: \"id\")\n workItemHandlerInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { handler { name } } ... on ManagementWorkItem { handler { name } } }\")\n workItemInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } }\")\n workItemSpecsInfo: String! @requires(fields: \"primaryWorkItem { __typename ... on TechnicalWorkItem { specs { name metrics { score efficiency } } } ... on ManagementWorkItem { specs { name metrics { score efficiency } } } }\")\n workSetup: WorkSetup @external\n workSetupSummary: String! @requires(fields: \"workSetup { priority primaryItem { __typename ... on TechnicalWorkItem { name codeCount } ... on ManagementWorkItem { name teamSize } } }\")\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype ManagementSpecs {\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n scope: Float! @shareable\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: ManagementSpecs! @shareable\n teamSize: String! @shareable\n}\n\ntype Milestone implements Node & Timestamped @key(fields: \"id\") {\n completionPercentage: Float\n daysUntilDue(fromDate: String): Int @connect__fieldResolver(context: \"endDate\")\n dependencies: [Milestone]!\n description: String\n endDate: String\n id: ID!\n isAtRisk(threshold: Float): Boolean! @connect__fieldResolver(context: \"id endDate status completionPercentage\")\n name: String!\n projectId: ID!\n reviewers: [Employee!]\n startDate: String\n status: MilestoneStatus!\n subtasks: [Task]\n}\n\ninput MilestoneInput {\n description: String\n dueDate: String\n name: String!\n projectId: ID!\n status: MilestoneStatus!\n}\n\nenum MilestoneStatus {\n COMPLETED\n DELAYED\n IN_PROGRESS\n PENDING\n}\n\ntype Mutation {\n addMilestone(milestone: MilestoneInput!): Milestone!\n addProject(project: ProjectInput!): Project!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n}\n\ninterface Node {\n id: ID!\n}\n\ntype Product @key(fields: \"upc\") {\n featureMatrix: [[String]]\n projects: [Project!]\n upc: String!\n}\n\ntype Project implements Node & Timestamped @key(fields: \"id\") {\n activeMilestoneCount: Int! @connect__fieldResolver(context: \"id\")\n alternativeProjects: [Project]\n completionRate(includeSubtasks: Boolean): Float! @connect__fieldResolver(context: \"id startDate endDate status\")\n criticalDeadline(withinDays: Int): Timestamped @connect__fieldResolver(context: \"id status milestones\")\n dependencies: [Project!]\n description: String\n endDate: String\n estimatedDaysRemaining(fromDate: String): Int @connect__fieldResolver(context: \"id endDate status\")\n filteredTasks(limit: Int, priority: TaskPriority, status: TaskStatus): [Task!]! @connect__fieldResolver(context: \"id\")\n id: ID!\n milestoneGroups: [[Milestone]]\n milestoneIds: [String!]\n milestones: [Milestone!]!\n name: String!\n priorityMatrix: [[[Task!]!]!]\n progress: Float\n relatedProducts: [Product!]!\n resourceGroups: [[ProjectResource!]!]!\n startDate: String\n status: ProjectStatus!\n subProjects(includeArchived: Boolean): [Project!]! @connect__fieldResolver(context: \"id name status\")\n tags: [String]\n taskCount: Int! @connect__fieldResolver(context: \"id\")\n tasks: [Task!]!\n tasksByPhase: [[Task!]]!\n teamMembers: [Employee!]!\n topPriorityItem(category: String): ProjectSearchResult @connect__fieldResolver(context: \"id status\")\n}\n\nunion ProjectActivity = Milestone | ProjectUpdate | Task\n\ninput ProjectInput {\n description: String\n endDate: String\n name: String!\n startDate: String\n status: ProjectStatus!\n}\n\nunion ProjectResource = Employee | Milestone | Product | Task\n\nunion ProjectSearchResult = Milestone | Project | Task\n\nenum ProjectStatus {\n ACTIVE\n COMPLETED\n ON_HOLD\n PLANNING\n}\n\ntype ProjectUpdate implements Node {\n description: String!\n id: ID!\n metadata: String\n projectId: ID!\n timestamp: String!\n updateType: ProjectUpdateType!\n updatedById: Int!\n}\n\nenum ProjectUpdateType {\n MILESTONE_ADDED\n PROGRESS_UPDATE\n STATUS_CHANGE\n TASK_ASSIGNED\n TEAM_CHANGE\n}\n\ntype Query {\n archivedProjects: [Project]!\n killService: Boolean!\n milestones(projectId: ID!): [Milestone!]!\n nodesById(id: ID!): [Node!]!\n panic: Boolean!\n project(id: ID!): Project\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n projectStatuses: [ProjectStatus!]!\n projectTags: [String]\n projects: [Project!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n tasks(projectId: ID!): [Task!]!\n tasksByPriority(projectId: ID!): [[Task]]\n}\n\ntype Task implements Assignable & Node @key(fields: \"id\") {\n actualHours: Float\n assigneeId: Int\n attachmentUrls: [String!]!\n completedAt: String\n createdAt: String\n dependencies: [Task]!\n description: String\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n id: ID!\n isBlocked(checkDependencies: Boolean): Boolean! @connect__fieldResolver(context: \"id status\")\n labels: [String]\n milestoneId: ID\n name: String!\n priority: TaskPriority!\n projectId: ID!\n reviewerIds: [Int]\n status: TaskStatus!\n subtasks: [Task!]\n totalEffort(includeSubtasks: Boolean): Float @connect__fieldResolver(context: \"id estimatedHours actualHours\")\n}\n\ninput TaskInput {\n assigneeId: Int\n description: String\n estimatedHours: Float\n name: String!\n priority: TaskPriority!\n projectId: ID!\n status: TaskStatus!\n}\n\nenum TaskPriority {\n HIGH\n LOW\n MEDIUM\n URGENT\n}\n\nenum TaskStatus {\n BLOCKED\n COMPLETED\n IN_PROGRESS\n REVIEW\n TODO\n}\n\ntype TechnicalSpecs {\n complexity: Float! @shareable\n metrics: WorkMetrics! @shareable\n name: String! @shareable\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n codeCount: Int! @shareable\n handler: WorkItemHandler! @shareable\n name: String! @shareable\n priority: Int! @shareable\n specs: TechnicalSpecs! @shareable\n}\n\ninterface Timestamped {\n endDate: String\n startDate: String\n}\n\ntype WorkApproval {\n approvedAt: String! @shareable\n comment: String! @shareable\n}\n\ntype WorkItemHandler {\n assignedItem: EmployeeWorkItem! @shareable\n name: String! @shareable\n}\n\ntype WorkMetrics {\n efficiency: Float! @shareable\n score: Float! @shareable\n}\n\ntype WorkRejection {\n reason: String! @shareable\n rejectionCode: String! @shareable\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkSetup {\n primaryItem: EmployeeWorkItem! @shareable\n priority: String! @shareable\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", "ee6b1bfdd2b01ef540c2a53258a8f8e6f0d3e3dd": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@key\", \"@shareable\"]) {\n query: Query\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Course {\n description: String\n id: ID!\n instructor: Employee!\n lessons: [Lesson!]!\n title: String!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n taughtCourses: [Course!]!\n}\n\ntype Lesson {\n course: Course!\n courseId: ID!\n description: String\n id: ID!\n order: Int!\n title: String!\n}\n\ntype Mutation {\n addCourse(instructorId: Int!, title: String!): Course!\n addLesson(courseId: ID!, order: Int!, title: String!): Lesson!\n}\n\ntype Query {\n course(id: ID!): Course\n courses: [Course!]!\n killCoursesService: Boolean!\n lessons(courseId: ID!): [Lesson!]!\n throwErrorCourses: Boolean!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet" }, - "graphqlClientSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n slicedThings(first: Int, last: Int): [Thing]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n courses: [Course!]!\n course(id: ID!): Course\n lessons(courseId: ID!): [Lesson!]!\n killCoursesService: Boolean!\n throwErrorCourses: Boolean!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n addCourse(title: String!, instructorId: Int!): Course!\n addLesson(courseId: ID!, title: String!, order: Int!): Lesson!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype WorkItemHandler {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Course {\n id: ID!\n title: String!\n description: String\n instructor: Employee!\n lessons: [Lesson!]!\n}\n\ntype Lesson {\n id: ID!\n courseId: ID!\n title: String!\n description: String\n order: Int!\n course: Course!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n primaryWorkItem: EmployeeWorkItem\n lastWorkReview: WorkReviewResult\n workSetup: WorkSetup\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n workItemInfo: String!\n reviewReport: String!\n workSetupSummary: String!\n workItemHandlerInfo: String!\n workItemSpecsInfo: String!\n deepWorkItemInfo: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n taughtCourses: [Course!]!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}" + "graphqlClientSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n slicedThings(first: Int, last: Int): [Thing]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n projects: [Project!]!\n project(id: ID!): Project\n projectStatuses: [ProjectStatus!]!\n projectsByStatus(status: ProjectStatus!): [Project!]!\n projectResources(projectId: ID!): [ProjectResource!]!\n searchProjects(query: String!): [ProjectSearchResult!]!\n milestones(projectId: ID!): [Milestone!]!\n tasks(projectId: ID!): [Task!]!\n projectActivities(projectId: ID!): [ProjectActivity!]!\n projectTags: [String]\n archivedProjects: [Project]!\n tasksByPriority(projectId: ID!): [[Task]]\n resourceMatrix(projectId: ID!): [[ProjectResource!]!]!\n killService: Boolean!\n panic: Boolean!\n nodesById(id: ID!): [Node!]!\n courses: [Course!]!\n course(id: ID!): Course\n lessons(courseId: ID!): [Lesson!]!\n killCoursesService: Boolean!\n throwErrorCourses: Boolean!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n addProject(project: ProjectInput!): Project!\n addMilestone(milestone: MilestoneInput!): Milestone!\n addTask(task: TaskInput!): Task!\n updateProjectStatus(projectId: ID!, status: ProjectStatus!): ProjectUpdate!\n addCourse(title: String!, instructorId: Int!): Course!\n addLesson(courseId: ID!, title: String!, order: Int!): Lesson!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninterface EmployeeWorkItem {\n name: String!\n priority: Int!\n}\n\ntype WorkItemHandler {\n name: String!\n assignedItem: EmployeeWorkItem!\n}\n\ntype TechnicalSpecs {\n name: String!\n complexity: Float!\n metrics: WorkMetrics!\n}\n\ntype ManagementSpecs {\n name: String!\n scope: Float!\n metrics: WorkMetrics!\n}\n\ntype WorkMetrics {\n score: Float!\n efficiency: Float!\n}\n\nunion WorkReviewResult = WorkApproval | WorkRejection\n\ntype WorkApproval {\n comment: String!\n approvedAt: String!\n}\n\ntype WorkRejection {\n reason: String!\n rejectionCode: String!\n}\n\ntype WorkSetup {\n priority: String!\n primaryItem: EmployeeWorkItem!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput ProjectInput {\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n}\n\ninput MilestoneInput {\n projectId: ID!\n name: String!\n description: String\n dueDate: String\n status: MilestoneStatus!\n}\n\ninput TaskInput {\n projectId: ID!\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float\n}\n\ninterface Node {\n id: ID!\n}\n\ninterface Timestamped {\n startDate: String\n endDate: String\n}\n\ninterface Assignable {\n assigneeId: Int\n}\n\nenum ProjectStatus {\n PLANNING\n ACTIVE\n COMPLETED\n ON_HOLD\n}\n\nenum MilestoneStatus {\n PENDING\n IN_PROGRESS\n COMPLETED\n DELAYED\n}\n\nenum TaskStatus {\n TODO\n IN_PROGRESS\n REVIEW\n COMPLETED\n BLOCKED\n}\n\nenum TaskPriority {\n LOW\n MEDIUM\n HIGH\n URGENT\n}\n\nenum ProjectUpdateType {\n STATUS_CHANGE\n MILESTONE_ADDED\n TASK_ASSIGNED\n PROGRESS_UPDATE\n TEAM_CHANGE\n}\n\nunion ProjectResource = Employee | Product | Milestone | Task\n\nunion ProjectSearchResult = Project | Milestone | Task\n\nunion ProjectActivity = ProjectUpdate | Milestone | Task\n\ntype Product {\n upc: String!\n projects: [Project!]\n featureMatrix: [[String]]\n}\n\ntype Course {\n id: ID!\n title: String!\n description: String\n instructor: Employee!\n lessons: [Lesson!]!\n}\n\ntype Lesson {\n id: ID!\n courseId: ID!\n title: String!\n description: String\n order: Int!\n course: Course!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n expertise: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n primaryWorkItem: EmployeeWorkItem\n lastWorkReview: WorkReviewResult\n workSetup: WorkSetup\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n projects: [Project!]\n assignedTasks: [Task!]!\n completedTasks: [Task!]!\n skills: [String]\n certifications: [String!]\n projectHistory: [[Project!]]!\n taggedProjectSummary: String!\n filteredProjectSummary(tag: String!): String!\n workItemInfo: String!\n reviewReport: String!\n workSetupSummary: String!\n workItemHandlerInfo: String!\n workItemSpecsInfo: String!\n deepWorkItemInfo: String!\n currentWorkload(includeCompleted: Boolean, projectId: ID): Int!\n averageTaskCompletionDays(projectId: ID, priority: TaskPriority): Float\n totalProjectCount: Int!\n taughtCourses: [Course!]!\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype TechnicalWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n codeCount: Int!\n handler: WorkItemHandler!\n specs: TechnicalSpecs!\n}\n\ntype ManagementWorkItem implements EmployeeWorkItem {\n name: String!\n priority: Int!\n teamSize: String!\n handler: WorkItemHandler!\n specs: ManagementSpecs!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype Project implements Node & Timestamped {\n id: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: ProjectStatus!\n teamMembers: [Employee!]!\n relatedProducts: [Product!]!\n milestoneIds: [String!]\n milestones: [Milestone!]!\n tasks: [Task!]!\n progress: Float\n tags: [String]\n alternativeProjects: [Project]\n dependencies: [Project!]\n resourceGroups: [[ProjectResource!]!]!\n tasksByPhase: [[Task!]]!\n milestoneGroups: [[Milestone]]\n priorityMatrix: [[[Task!]!]!]\n subProjects(includeArchived: Boolean): [Project!]!\n filteredTasks(status: TaskStatus, priority: TaskPriority, limit: Int): [Task!]!\n completionRate(includeSubtasks: Boolean): Float!\n estimatedDaysRemaining(fromDate: String): Int\n criticalDeadline(withinDays: Int): Timestamped\n topPriorityItem(category: String): ProjectSearchResult\n taskCount: Int!\n activeMilestoneCount: Int!\n}\n\ntype Milestone implements Node & Timestamped {\n id: ID!\n projectId: ID!\n name: String!\n description: String\n startDate: String\n endDate: String\n status: MilestoneStatus!\n completionPercentage: Float\n dependencies: [Milestone]!\n subtasks: [Task]\n reviewers: [Employee!]\n isAtRisk(threshold: Float): Boolean!\n daysUntilDue(fromDate: String): Int\n}\n\ntype Task implements Node & Assignable {\n id: ID!\n projectId: ID!\n milestoneId: ID\n assigneeId: Int\n name: String!\n description: String\n priority: TaskPriority!\n status: TaskStatus!\n estimatedHours: Float @deprecated(reason: \"No more estimations!\")\n actualHours: Float\n createdAt: String\n completedAt: String\n labels: [String]\n subtasks: [Task!]\n dependencies: [Task]!\n attachmentUrls: [String!]!\n reviewerIds: [Int]\n isBlocked(checkDependencies: Boolean): Boolean!\n totalEffort(includeSubtasks: Boolean): Float\n}\n\ntype ProjectUpdate implements Node {\n id: ID!\n projectId: ID!\n updatedById: Int!\n updateType: ProjectUpdateType!\n description: String!\n timestamp: String!\n metadata: String\n}" }, "version": "00000000-0000-0000-0000-000000000000", "subgraphs": [ @@ -3144,28 +3132,7 @@ { "typeName": "Employee", "fieldName": "derivedMood", "selectionSet": "currentMood" }, { "typeName": "Consultancy", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" }, { "typeName": "Cosmo", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" } - ], - "costConfiguration": { - "fieldWeights": [ - { "typeName": "Query", "fieldName": "employee", "weight": 5, "argumentWeights": { "id": 2 } } - ], - "listSizes": [ - { - "typeName": "Query", - "fieldName": "employees", - "assumedSize": 50, - "requireOneSlicingArgument": true - }, - { - "typeName": "Employee", - "fieldName": "role", - "assumedSize": 3, - "sizedFields": ["departments"], - "requireOneSlicingArgument": true - } - ], - "typeWeights": { "Department": 1, "Cosmo": 5 } - } + ] }, { "kind": "GRAPHQL", From 6dc5405fd077759f855040e548fdac25a9e474dd Mon Sep 17 00:00:00 2001 From: Dominik Korittki <23359034+dkorittki@users.noreply.github.com> Date: Tue, 7 Apr 2026 15:44:01 +0200 Subject: [PATCH 5/5] chore: use latest engine release --- router-tests/go.mod | 2 +- router-tests/go.sum | 4 ++-- router/go.mod | 2 +- router/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/router-tests/go.mod b/router-tests/go.mod index 3dfa6120f1..fee1ea60dd 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -28,7 +28,7 @@ require ( github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects v0.0.0-20250715110703-10f2e5f9c79e github.com/wundergraph/cosmo/router v0.0.0-20260319123623-f186a0f724f6 github.com/wundergraph/cosmo/router-plugin v0.0.0-20250808194725-de123ba1c65e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268 go.opentelemetry.io/otel v1.39.0 go.opentelemetry.io/otel/sdk v1.39.0 go.opentelemetry.io/otel/sdk/metric v1.39.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index 42af2387a9..c05c9b1f63 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -357,8 +357,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271 h1:CpymCs8SRZgjW7gA0whW1RysGh3auAQ3vqGb76K1Tz0= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268 h1:lP9kWLiPO2U3JuwpQ/WX7nTVfKeMtVab2G3DAFblVA0= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= diff --git a/router/go.mod b/router/go.mod index e98e72ac57..da8216cf45 100644 --- a/router/go.mod +++ b/router/go.mod @@ -31,7 +31,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268 // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index 9b0e20443c..54058805ed 100644 --- a/router/go.sum +++ b/router/go.sum @@ -329,8 +329,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271 h1:CpymCs8SRZgjW7gA0whW1RysGh3auAQ3vqGb76K1Tz0= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.267.0.20260401141212-fc1c2d351271/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268 h1:lP9kWLiPO2U3JuwpQ/WX7nTVfKeMtVab2G3DAFblVA0= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.268/go.mod h1:HjTAO/cuICpu31IfHY9qmSPygx6Gza7Wt9hTSReTI+A= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=