From 13b85679de440f84fb6439d47b31800bcd1c60c6 Mon Sep 17 00:00:00 2001 From: John Sabath Date: Mon, 24 Oct 2022 17:03:11 +0000 Subject: [PATCH] Adding estimate cost operation --- gooseai/dashboard/dashboard.pb.go | 2 +- gooseai/engines/engines_pb.js | 8 +- gooseai/generation/generation.pb.go | 655 ++++++++++-------- gooseai/generation/generation_grpc.pb.go | 39 +- gooseai/generation/generation_grpc_pb.d.ts | 5 + gooseai/generation/generation_grpc_pb.js | 22 + gooseai/generation/generation_pb.d.ts | 20 + gooseai/generation/generation_pb.js | 152 ++++ gooseai/generation/generation_pb2.py | 100 +-- gooseai/generation/generation_pb2_grpc.py | 33 + gooseai/generation/generation_pb_service.d.ts | 19 + gooseai/generation/generation_pb_service.js | 40 ++ gooseai/go.mod | 2 +- gooseai/go.sum | 4 +- gooseai/project/project.pb.go | 2 +- src/proto/generation.proto | 5 + 16 files changed, 758 insertions(+), 350 deletions(-) diff --git a/gooseai/dashboard/dashboard.pb.go b/gooseai/dashboard/dashboard.pb.go index 1573968..1b99beb 100644 --- a/gooseai/dashboard/dashboard.pb.go +++ b/gooseai/dashboard/dashboard.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.4 +// protoc v3.19.5 // source: dashboard.proto package dashboard diff --git a/gooseai/engines/engines_pb.js b/gooseai/engines/engines_pb.js index b1f17d8..a878a3f 100644 --- a/gooseai/engines/engines_pb.js +++ b/gooseai/engines/engines_pb.js @@ -13,13 +13,7 @@ var jspb = require('google-protobuf'); var goog = jspb; -var global = (function() { - if (this) { return this; } - if (typeof window !== 'undefined') { return window; } - if (typeof global !== 'undefined') { return global; } - if (typeof self !== 'undefined') { return self; } - return Function('return this')(); -}.call(null)); +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); goog.exportSymbol('proto.gooseai.EngineInfo', null, global); goog.exportSymbol('proto.gooseai.EngineTokenizer', null, global); diff --git a/gooseai/generation/generation.pb.go b/gooseai/generation/generation.pb.go index 25cb123..15f220d 100644 --- a/gooseai/generation/generation.pb.go +++ b/gooseai/generation/generation.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.4 +// protoc v3.19.5 // source: generation.proto package generation @@ -1898,6 +1898,53 @@ func (x *ImageParameters) GetParameters() []*StepParameter { return nil } +type EstimateCostResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalCreditCost float64 `protobuf:"fixed64,1,opt,name=total_credit_cost,json=totalCreditCost,proto3" json:"total_credit_cost,omitempty"` +} + +func (x *EstimateCostResponse) Reset() { + *x = EstimateCostResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_generation_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCostResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCostResponse) ProtoMessage() {} + +func (x *EstimateCostResponse) ProtoReflect() protoreflect.Message { + mi := &file_generation_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCostResponse.ProtoReflect.Descriptor instead. +func (*EstimateCostResponse) Descriptor() ([]byte, []int) { + return file_generation_proto_rawDescGZIP(), []int{16} +} + +func (x *EstimateCostResponse) GetTotalCreditCost() float64 { + if x != nil { + return x.TotalCreditCost + } + return 0 +} + type ClassifierConcept struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1910,7 +1957,7 @@ type ClassifierConcept struct { func (x *ClassifierConcept) Reset() { *x = ClassifierConcept{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[16] + mi := &file_generation_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1923,7 +1970,7 @@ func (x *ClassifierConcept) String() string { func (*ClassifierConcept) ProtoMessage() {} func (x *ClassifierConcept) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[16] + mi := &file_generation_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1936,7 +1983,7 @@ func (x *ClassifierConcept) ProtoReflect() protoreflect.Message { // Deprecated: Use ClassifierConcept.ProtoReflect.Descriptor instead. func (*ClassifierConcept) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{16} + return file_generation_proto_rawDescGZIP(), []int{17} } func (x *ClassifierConcept) GetConcept() string { @@ -1968,7 +2015,7 @@ type ClassifierCategory struct { func (x *ClassifierCategory) Reset() { *x = ClassifierCategory{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[17] + mi := &file_generation_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1981,7 +2028,7 @@ func (x *ClassifierCategory) String() string { func (*ClassifierCategory) ProtoMessage() {} func (x *ClassifierCategory) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[17] + mi := &file_generation_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1994,7 +2041,7 @@ func (x *ClassifierCategory) ProtoReflect() protoreflect.Message { // Deprecated: Use ClassifierCategory.ProtoReflect.Descriptor instead. func (*ClassifierCategory) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{17} + return file_generation_proto_rawDescGZIP(), []int{18} } func (x *ClassifierCategory) GetName() string { @@ -2045,7 +2092,7 @@ type ClassifierParameters struct { func (x *ClassifierParameters) Reset() { *x = ClassifierParameters{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[18] + mi := &file_generation_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2058,7 +2105,7 @@ func (x *ClassifierParameters) String() string { func (*ClassifierParameters) ProtoMessage() {} func (x *ClassifierParameters) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[18] + mi := &file_generation_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2071,7 +2118,7 @@ func (x *ClassifierParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use ClassifierParameters.ProtoReflect.Descriptor instead. func (*ClassifierParameters) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{18} + return file_generation_proto_rawDescGZIP(), []int{19} } func (x *ClassifierParameters) GetCategories() []*ClassifierCategory { @@ -2108,7 +2155,7 @@ type AssetParameters struct { func (x *AssetParameters) Reset() { *x = AssetParameters{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[19] + mi := &file_generation_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2121,7 +2168,7 @@ func (x *AssetParameters) String() string { func (*AssetParameters) ProtoMessage() {} func (x *AssetParameters) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[19] + mi := &file_generation_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2134,7 +2181,7 @@ func (x *AssetParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use AssetParameters.ProtoReflect.Descriptor instead. func (*AssetParameters) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{19} + return file_generation_proto_rawDescGZIP(), []int{20} } func (x *AssetParameters) GetAction() AssetAction { @@ -2174,7 +2221,7 @@ type AnswerMeta struct { func (x *AnswerMeta) Reset() { *x = AnswerMeta{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[20] + mi := &file_generation_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2187,7 +2234,7 @@ func (x *AnswerMeta) String() string { func (*AnswerMeta) ProtoMessage() {} func (x *AnswerMeta) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[20] + mi := &file_generation_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2200,7 +2247,7 @@ func (x *AnswerMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerMeta.ProtoReflect.Descriptor instead. func (*AnswerMeta) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{20} + return file_generation_proto_rawDescGZIP(), []int{21} } func (x *AnswerMeta) GetGpuId() string { @@ -2249,7 +2296,7 @@ type Answer struct { func (x *Answer) Reset() { *x = Answer{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[21] + mi := &file_generation_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2262,7 +2309,7 @@ func (x *Answer) String() string { func (*Answer) ProtoMessage() {} func (x *Answer) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[21] + mi := &file_generation_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2275,7 +2322,7 @@ func (x *Answer) ProtoReflect() protoreflect.Message { // Deprecated: Use Answer.ProtoReflect.Descriptor instead. func (*Answer) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{21} + return file_generation_proto_rawDescGZIP(), []int{22} } func (x *Answer) GetAnswerId() string { @@ -2343,7 +2390,7 @@ type Request struct { func (x *Request) Reset() { *x = Request{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[22] + mi := &file_generation_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2356,7 +2403,7 @@ func (x *Request) String() string { func (*Request) ProtoMessage() {} func (x *Request) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[22] + mi := &file_generation_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2369,7 +2416,7 @@ func (x *Request) ProtoReflect() protoreflect.Message { // Deprecated: Use Request.ProtoReflect.Descriptor instead. func (*Request) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{22} + return file_generation_proto_rawDescGZIP(), []int{23} } func (x *Request) GetEngineId() string { @@ -2470,7 +2517,7 @@ type OnStatus struct { func (x *OnStatus) Reset() { *x = OnStatus{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[23] + mi := &file_generation_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2483,7 +2530,7 @@ func (x *OnStatus) String() string { func (*OnStatus) ProtoMessage() {} func (x *OnStatus) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[23] + mi := &file_generation_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2496,7 +2543,7 @@ func (x *OnStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use OnStatus.ProtoReflect.Descriptor instead. func (*OnStatus) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{23} + return file_generation_proto_rawDescGZIP(), []int{24} } func (x *OnStatus) GetReason() []FinishReason { @@ -2533,7 +2580,7 @@ type Stage struct { func (x *Stage) Reset() { *x = Stage{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[24] + mi := &file_generation_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2546,7 +2593,7 @@ func (x *Stage) String() string { func (*Stage) ProtoMessage() {} func (x *Stage) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[24] + mi := &file_generation_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2559,7 +2606,7 @@ func (x *Stage) ProtoReflect() protoreflect.Message { // Deprecated: Use Stage.ProtoReflect.Descriptor instead. func (*Stage) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{24} + return file_generation_proto_rawDescGZIP(), []int{25} } func (x *Stage) GetId() string { @@ -2595,7 +2642,7 @@ type ChainRequest struct { func (x *ChainRequest) Reset() { *x = ChainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_generation_proto_msgTypes[25] + mi := &file_generation_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2608,7 +2655,7 @@ func (x *ChainRequest) String() string { func (*ChainRequest) ProtoMessage() {} func (x *ChainRequest) ProtoReflect() protoreflect.Message { - mi := &file_generation_proto_msgTypes[25] + mi := &file_generation_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2621,7 +2668,7 @@ func (x *ChainRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainRequest.ProtoReflect.Descriptor instead. func (*ChainRequest) Descriptor() ([]byte, []int) { - return file_generation_proto_rawDescGZIP(), []int{25} + return file_generation_proto_rawDescGZIP(), []int{26} } func (x *ChainRequest) GetRequestId() string { @@ -2847,227 +2894,236 @@ var file_generation_proto_rawDesc = []byte{ 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x6f, 0x72, 0x6d, 0x22, 0x5e, 0x0a, 0x11, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x63, - 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x63, 0x65, - 0x70, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, - 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x52, 0x08, 0x63, 0x6f, - 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x67, 0x6f, - 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x02, 0x52, 0x0e, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xdd, - 0x01, 0x0a, 0x14, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x52, 0x07, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, - 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 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, - 0x23, 0x0a, 0x03, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x67, - 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x52, - 0x03, 0x75, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x06, 0x67, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x67, 0x70, 0x75, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x63, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x63, 0x70, 0x75, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, - 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x08, - 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x67, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x69, - 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, 0xe2, 0x01, 0x0a, 0x06, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, - 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x6d, - 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x73, - 0x65, 0x61, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x22, 0xb2, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, - 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, - 0x30, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x05, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x73, - 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x22, 0x8f, 0x01, 0x0a, 0x08, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x73, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, - 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x08, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x53, 0x0a, 0x0c, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x6f, 0x6f, - 0x73, 0x65, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, - 0x65, 0x2a, 0x45, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, - 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, - 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, - 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x04, 0x2a, 0xba, 0x01, 0x0a, 0x0c, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x54, - 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, - 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x01, - 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x56, 0x49, 0x44, - 0x45, 0x4f, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, - 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x52, 0x54, 0x49, 0x46, - 0x41, 0x43, 0x54, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, - 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x45, 0x4d, 0x42, 0x45, 0x44, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, - 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, - 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4d, - 0x41, 0x53, 0x4b, 0x10, 0x07, 0x2a, 0xc5, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x66, 0x66, 0x75, 0x73, - 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, - 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x44, 0x44, 0x49, 0x4d, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x44, 0x44, 0x50, 0x4d, 0x10, 0x01, 0x12, 0x13, - 0x0a, 0x0f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x45, 0x55, 0x4c, 0x45, - 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, - 0x5f, 0x45, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x4e, 0x43, 0x45, 0x53, 0x54, 0x52, 0x41, 0x4c, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, - 0x48, 0x45, 0x55, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, - 0x52, 0x5f, 0x4b, 0x5f, 0x44, 0x50, 0x4d, 0x5f, 0x32, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x53, - 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x44, 0x50, 0x4d, 0x5f, 0x32, 0x5f, 0x41, - 0x4e, 0x43, 0x45, 0x53, 0x54, 0x52, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x41, - 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x4c, 0x4d, 0x53, 0x10, 0x07, 0x2a, 0x46, 0x0a, - 0x08, 0x55, 0x70, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x50, 0x53, - 0x43, 0x41, 0x4c, 0x45, 0x52, 0x5f, 0x52, 0x47, 0x42, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x55, - 0x50, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x46, 0x50, 0x47, 0x41, 0x4e, 0x10, 0x01, - 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x50, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x5f, 0x45, 0x53, 0x52, - 0x47, 0x41, 0x4e, 0x10, 0x02, 0x2a, 0xd8, 0x01, 0x0a, 0x0e, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, - 0x63, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x55, 0x49, 0x44, - 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, - 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1d, - 0x0a, 0x19, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, - 0x54, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x12, 0x1e, 0x0a, - 0x1a, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, - 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x03, 0x12, 0x18, 0x0a, - 0x14, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, - 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x55, 0x49, 0x44, 0x41, + 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, 0x14, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x11, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, + 0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, + 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x48, + 0x02, 0x52, 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x14, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x65, + 0x65, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x73, + 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x07, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x73, 0x12, + 0x3d, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, + 0x61, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, + 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x23, 0x0a, 0x03, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x52, 0x03, 0x75, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x06, 0x67, 0x70, 0x75, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x67, 0x70, 0x75, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x63, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x63, 0x70, 0x75, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x08, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x70, 0x75, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x22, + 0xe2, 0x01, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x04, + 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, + 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x22, 0xb2, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0e, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x72, + 0x6f, 0x6d, 0x70, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, + 0x73, 0x65, 0x61, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x06, 0x70, 0x72, 0x6f, + 0x6d, 0x70, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x73, + 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x01, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x22, 0x8f, 0x01, 0x0a, 0x08, 0x4f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, + 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x73, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2e, 0x0a, 0x09, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x4f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x53, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x67, 0x65, 0x2a, 0x45, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, + 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x04, 0x2a, 0xba, 0x01, 0x0a, + 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, + 0x0d, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x49, 0x4d, 0x41, + 0x47, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, + 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x54, 0x49, + 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x41, + 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x53, 0x10, 0x04, + 0x12, 0x16, 0x0a, 0x12, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x45, 0x4d, 0x42, + 0x45, 0x44, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x52, 0x54, 0x49, + 0x46, 0x41, 0x43, 0x54, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, + 0x43, 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x07, 0x2a, 0xc5, 0x01, 0x0a, 0x10, 0x44, 0x69, + 0x66, 0x66, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x10, + 0x0a, 0x0c, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x44, 0x44, 0x49, 0x4d, 0x10, 0x00, + 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x44, 0x44, 0x50, 0x4d, + 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, + 0x45, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x41, 0x4d, 0x50, 0x4c, + 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x45, 0x55, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x4e, 0x43, 0x45, 0x53, + 0x54, 0x52, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, + 0x52, 0x5f, 0x4b, 0x5f, 0x48, 0x45, 0x55, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, + 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x44, 0x50, 0x4d, 0x5f, 0x32, 0x10, 0x05, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x44, 0x50, 0x4d, + 0x5f, 0x32, 0x5f, 0x41, 0x4e, 0x43, 0x45, 0x53, 0x54, 0x52, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x11, + 0x0a, 0x0d, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x52, 0x5f, 0x4b, 0x5f, 0x4c, 0x4d, 0x53, 0x10, + 0x07, 0x2a, 0x46, 0x0a, 0x08, 0x55, 0x70, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, + 0x0c, 0x55, 0x50, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x5f, 0x52, 0x47, 0x42, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x55, 0x50, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, 0x5f, 0x47, 0x46, 0x50, 0x47, + 0x41, 0x4e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x50, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x52, + 0x5f, 0x45, 0x53, 0x52, 0x47, 0x41, 0x4e, 0x10, 0x02, 0x2a, 0xd8, 0x01, 0x0a, 0x0e, 0x47, 0x75, + 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x14, + 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, + 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, + 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, + 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x55, 0x45, 0x10, + 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, + 0x45, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, + 0x03, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, + 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x47, + 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, + 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x45, - 0x52, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x55, 0x49, 0x44, 0x41, 0x4e, 0x43, 0x45, 0x5f, - 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x45, 0x53, 0x54, 0x10, 0x06, - 0x2a, 0x91, 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, - 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, - 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x41, 0x52, 0x43, - 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x5f, 0x56, - 0x49, 0x54, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x41, 0x52, - 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x5f, - 0x52, 0x45, 0x53, 0x4e, 0x45, 0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, - 0x4c, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4c, - 0x44, 0x4d, 0x10, 0x03, 0x2a, 0xa2, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, - 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x55, 0x50, - 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, - 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x46, 0x55, 0x53, 0x43, - 0x41, 0x54, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, - 0x14, 0x0a, 0x10, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x46, 0x55, 0x53, 0x43, - 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x05, 0x2a, 0x44, 0x0a, 0x0e, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x43, - 0x4c, 0x53, 0x46, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x53, 0x48, - 0x4f, 0x54, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4c, 0x53, 0x46, 0x52, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x10, 0x01, 0x2a, - 0x3d, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, - 0x0a, 0x09, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x55, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, - 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x2a, 0x81, - 0x01, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x41, - 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, - 0x45, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x53, 0x53, - 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x02, 0x12, - 0x1a, 0x0a, 0x16, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, - 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x41, - 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, - 0x10, 0x04, 0x2a, 0x57, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x47, - 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, - 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x10, 0x02, 0x32, 0x83, 0x01, 0x0a, 0x11, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, - 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x67, - 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x00, 0x30, - 0x01, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x3b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x54, 0x10, 0x06, 0x2a, 0x91, 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x4f, + 0x44, 0x45, 0x4c, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4c, + 0x49, 0x50, 0x5f, 0x56, 0x49, 0x54, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x4f, 0x44, 0x45, + 0x4c, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x43, + 0x4c, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x53, 0x4e, 0x45, 0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, + 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, + 0x52, 0x45, 0x5f, 0x4c, 0x44, 0x4d, 0x10, 0x03, 0x2a, 0xa2, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, + 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, + 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, + 0x45, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, + 0x46, 0x55, 0x53, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, + 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, + 0x46, 0x55, 0x53, 0x43, 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x41, 0x52, 0x44, 0x10, 0x05, 0x2a, 0x44, 0x0a, + 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x53, 0x46, 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x5a, 0x45, + 0x52, 0x4f, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4c, 0x53, 0x46, + 0x52, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x10, 0x01, 0x2a, 0x3d, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x55, 0x54, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x10, 0x02, 0x2a, 0x81, 0x01, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x44, + 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x53, 0x45, + 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, + 0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, + 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, + 0x15, 0x0a, 0x11, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x5f, 0x50, 0x52, 0x4f, + 0x4a, 0x45, 0x43, 0x54, 0x10, 0x04, 0x2a, 0x57, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x67, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x10, 0x02, 0x32, + 0xc6, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x12, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x69, + 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x73, + 0x65, 0x61, 0x69, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0f, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x22, 0x00, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, 0x69, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x73, 0x65, 0x61, + 0x69, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x3b, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -3083,7 +3139,7 @@ func file_generation_proto_rawDescGZIP() []byte { } var file_generation_proto_enumTypes = make([]protoimpl.EnumInfo, 11) -var file_generation_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_generation_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_generation_proto_goTypes = []interface{}{ (FinishReason)(0), // 0: gooseai.FinishReason (ArtifactType)(0), // 1: gooseai.ArtifactType @@ -3112,22 +3168,23 @@ var file_generation_proto_goTypes = []interface{}{ (*GuidanceParameters)(nil), // 24: gooseai.GuidanceParameters (*TransformType)(nil), // 25: gooseai.TransformType (*ImageParameters)(nil), // 26: gooseai.ImageParameters - (*ClassifierConcept)(nil), // 27: gooseai.ClassifierConcept - (*ClassifierCategory)(nil), // 28: gooseai.ClassifierCategory - (*ClassifierParameters)(nil), // 29: gooseai.ClassifierParameters - (*AssetParameters)(nil), // 30: gooseai.AssetParameters - (*AnswerMeta)(nil), // 31: gooseai.AnswerMeta - (*Answer)(nil), // 32: gooseai.Answer - (*Request)(nil), // 33: gooseai.Request - (*OnStatus)(nil), // 34: gooseai.OnStatus - (*Stage)(nil), // 35: gooseai.Stage - (*ChainRequest)(nil), // 36: gooseai.ChainRequest + (*EstimateCostResponse)(nil), // 27: gooseai.EstimateCostResponse + (*ClassifierConcept)(nil), // 28: gooseai.ClassifierConcept + (*ClassifierCategory)(nil), // 29: gooseai.ClassifierCategory + (*ClassifierParameters)(nil), // 30: gooseai.ClassifierParameters + (*AssetParameters)(nil), // 31: gooseai.AssetParameters + (*AnswerMeta)(nil), // 32: gooseai.AnswerMeta + (*Answer)(nil), // 33: gooseai.Answer + (*Request)(nil), // 34: gooseai.Request + (*OnStatus)(nil), // 35: gooseai.OnStatus + (*Stage)(nil), // 36: gooseai.Stage + (*ChainRequest)(nil), // 37: gooseai.ChainRequest } var file_generation_proto_depIdxs = []int32{ 11, // 0: gooseai.Tokens.tokens:type_name -> gooseai.Token 1, // 1: gooseai.Artifact.type:type_name -> gooseai.ArtifactType 12, // 2: gooseai.Artifact.tokens:type_name -> gooseai.Tokens - 29, // 3: gooseai.Artifact.classifier:type_name -> gooseai.ClassifierParameters + 30, // 3: gooseai.Artifact.classifier:type_name -> gooseai.ClassifierParameters 0, // 4: gooseai.Artifact.finish_reason:type_name -> gooseai.FinishReason 14, // 5: gooseai.Prompt.parameters:type_name -> gooseai.PromptParameters 12, // 6: gooseai.Prompt.tokens:type_name -> gooseai.Tokens @@ -3148,33 +3205,35 @@ var file_generation_proto_depIdxs = []int32{ 3, // 21: gooseai.TransformType.upscaler:type_name -> gooseai.Upscaler 25, // 22: gooseai.ImageParameters.transform:type_name -> gooseai.TransformType 19, // 23: gooseai.ImageParameters.parameters:type_name -> gooseai.StepParameter - 27, // 24: gooseai.ClassifierCategory.concepts:type_name -> gooseai.ClassifierConcept + 28, // 24: gooseai.ClassifierCategory.concepts:type_name -> gooseai.ClassifierConcept 6, // 25: gooseai.ClassifierCategory.action:type_name -> gooseai.Action 7, // 26: gooseai.ClassifierCategory.classifier_mode:type_name -> gooseai.ClassifierMode - 28, // 27: gooseai.ClassifierParameters.categories:type_name -> gooseai.ClassifierCategory - 28, // 28: gooseai.ClassifierParameters.exceeds:type_name -> gooseai.ClassifierCategory + 29, // 27: gooseai.ClassifierParameters.categories:type_name -> gooseai.ClassifierCategory + 29, // 28: gooseai.ClassifierParameters.exceeds:type_name -> gooseai.ClassifierCategory 6, // 29: gooseai.ClassifierParameters.realized_action:type_name -> gooseai.Action 8, // 30: gooseai.AssetParameters.action:type_name -> gooseai.AssetAction 9, // 31: gooseai.AssetParameters.use:type_name -> gooseai.AssetUse - 31, // 32: gooseai.Answer.meta:type_name -> gooseai.AnswerMeta + 32, // 32: gooseai.Answer.meta:type_name -> gooseai.AnswerMeta 13, // 33: gooseai.Answer.artifacts:type_name -> gooseai.Artifact 1, // 34: gooseai.Request.requested_type:type_name -> gooseai.ArtifactType 15, // 35: gooseai.Request.prompt:type_name -> gooseai.Prompt 26, // 36: gooseai.Request.image:type_name -> gooseai.ImageParameters - 29, // 37: gooseai.Request.classifier:type_name -> gooseai.ClassifierParameters - 30, // 38: gooseai.Request.asset:type_name -> gooseai.AssetParameters + 30, // 37: gooseai.Request.classifier:type_name -> gooseai.ClassifierParameters + 31, // 38: gooseai.Request.asset:type_name -> gooseai.AssetParameters 17, // 39: gooseai.Request.conditioner:type_name -> gooseai.ConditionerParameters 0, // 40: gooseai.OnStatus.reason:type_name -> gooseai.FinishReason 10, // 41: gooseai.OnStatus.action:type_name -> gooseai.StageAction - 33, // 42: gooseai.Stage.request:type_name -> gooseai.Request - 34, // 43: gooseai.Stage.on_status:type_name -> gooseai.OnStatus - 35, // 44: gooseai.ChainRequest.stage:type_name -> gooseai.Stage - 33, // 45: gooseai.GenerationService.Generate:input_type -> gooseai.Request - 36, // 46: gooseai.GenerationService.ChainGenerate:input_type -> gooseai.ChainRequest - 32, // 47: gooseai.GenerationService.Generate:output_type -> gooseai.Answer - 32, // 48: gooseai.GenerationService.ChainGenerate:output_type -> gooseai.Answer - 47, // [47:49] is the sub-list for method output_type - 45, // [45:47] is the sub-list for method input_type + 34, // 42: gooseai.Stage.request:type_name -> gooseai.Request + 35, // 43: gooseai.Stage.on_status:type_name -> gooseai.OnStatus + 36, // 44: gooseai.ChainRequest.stage:type_name -> gooseai.Stage + 34, // 45: gooseai.GenerationService.Generate:input_type -> gooseai.Request + 37, // 46: gooseai.GenerationService.ChainGenerate:input_type -> gooseai.ChainRequest + 34, // 47: gooseai.GenerationService.EstimateCost:input_type -> gooseai.Request + 33, // 48: gooseai.GenerationService.Generate:output_type -> gooseai.Answer + 33, // 49: gooseai.GenerationService.ChainGenerate:output_type -> gooseai.Answer + 27, // 50: gooseai.GenerationService.EstimateCost:output_type -> gooseai.EstimateCostResponse + 48, // [48:51] is the sub-list for method output_type + 45, // [45:48] is the sub-list for method input_type 45, // [45:45] is the sub-list for extension type_name 45, // [45:45] is the sub-list for extension extendee 0, // [0:45] is the sub-list for field type_name @@ -3379,7 +3438,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassifierConcept); i { + switch v := v.(*EstimateCostResponse); i { case 0: return &v.state case 1: @@ -3391,7 +3450,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassifierCategory); i { + switch v := v.(*ClassifierConcept); i { case 0: return &v.state case 1: @@ -3403,7 +3462,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassifierParameters); i { + switch v := v.(*ClassifierCategory); i { case 0: return &v.state case 1: @@ -3415,7 +3474,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AssetParameters); i { + switch v := v.(*ClassifierParameters); i { case 0: return &v.state case 1: @@ -3427,7 +3486,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AnswerMeta); i { + switch v := v.(*AssetParameters); i { case 0: return &v.state case 1: @@ -3439,7 +3498,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Answer); i { + switch v := v.(*AnswerMeta); i { case 0: return &v.state case 1: @@ -3451,7 +3510,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Request); i { + switch v := v.(*Answer); i { case 0: return &v.state case 1: @@ -3463,7 +3522,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OnStatus); i { + switch v := v.(*Request); i { case 0: return &v.state case 1: @@ -3475,7 +3534,7 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stage); i { + switch v := v.(*OnStatus); i { case 0: return &v.state case 1: @@ -3487,6 +3546,18 @@ func file_generation_proto_init() { } } file_generation_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_generation_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainRequest); i { case 0: return &v.state @@ -3524,24 +3595,24 @@ func file_generation_proto_init() { (*TransformType_Upscaler)(nil), } file_generation_proto_msgTypes[15].OneofWrappers = []interface{}{} - file_generation_proto_msgTypes[16].OneofWrappers = []interface{}{} file_generation_proto_msgTypes[17].OneofWrappers = []interface{}{} file_generation_proto_msgTypes[18].OneofWrappers = []interface{}{} - file_generation_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_generation_proto_msgTypes[19].OneofWrappers = []interface{}{} file_generation_proto_msgTypes[21].OneofWrappers = []interface{}{} - file_generation_proto_msgTypes[22].OneofWrappers = []interface{}{ + file_generation_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_generation_proto_msgTypes[23].OneofWrappers = []interface{}{ (*Request_Image)(nil), (*Request_Classifier)(nil), (*Request_Asset)(nil), } - file_generation_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_generation_proto_msgTypes[24].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_generation_proto_rawDesc, NumEnums: 11, - NumMessages: 26, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/gooseai/generation/generation_grpc.pb.go b/gooseai/generation/generation_grpc.pb.go index 75d7880..70ccefd 100644 --- a/gooseai/generation/generation_grpc.pb.go +++ b/gooseai/generation/generation_grpc.pb.go @@ -20,6 +20,7 @@ const _ = grpc.SupportPackageIsVersion7 type GenerationServiceClient interface { Generate(ctx context.Context, in *Request, opts ...grpc.CallOption) (GenerationService_GenerateClient, error) ChainGenerate(ctx context.Context, in *ChainRequest, opts ...grpc.CallOption) (GenerationService_ChainGenerateClient, error) + EstimateCost(ctx context.Context, in *Request, opts ...grpc.CallOption) (*EstimateCostResponse, error) } type generationServiceClient struct { @@ -94,12 +95,22 @@ func (x *generationServiceChainGenerateClient) Recv() (*Answer, error) { return m, nil } +func (c *generationServiceClient) EstimateCost(ctx context.Context, in *Request, opts ...grpc.CallOption) (*EstimateCostResponse, error) { + out := new(EstimateCostResponse) + err := c.cc.Invoke(ctx, "/gooseai.GenerationService/EstimateCost", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GenerationServiceServer is the server API for GenerationService service. // All implementations must embed UnimplementedGenerationServiceServer // for forward compatibility type GenerationServiceServer interface { Generate(*Request, GenerationService_GenerateServer) error ChainGenerate(*ChainRequest, GenerationService_ChainGenerateServer) error + EstimateCost(context.Context, *Request) (*EstimateCostResponse, error) mustEmbedUnimplementedGenerationServiceServer() } @@ -113,6 +124,9 @@ func (UnimplementedGenerationServiceServer) Generate(*Request, GenerationService func (UnimplementedGenerationServiceServer) ChainGenerate(*ChainRequest, GenerationService_ChainGenerateServer) error { return status.Errorf(codes.Unimplemented, "method ChainGenerate not implemented") } +func (UnimplementedGenerationServiceServer) EstimateCost(context.Context, *Request) (*EstimateCostResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EstimateCost not implemented") +} func (UnimplementedGenerationServiceServer) mustEmbedUnimplementedGenerationServiceServer() {} // UnsafeGenerationServiceServer may be embedded to opt out of forward compatibility for this service. @@ -168,13 +182,36 @@ func (x *generationServiceChainGenerateServer) Send(m *Answer) error { return x.ServerStream.SendMsg(m) } +func _GenerationService_EstimateCost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GenerationServiceServer).EstimateCost(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gooseai.GenerationService/EstimateCost", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GenerationServiceServer).EstimateCost(ctx, req.(*Request)) + } + return interceptor(ctx, in, info, handler) +} + // GenerationService_ServiceDesc is the grpc.ServiceDesc for GenerationService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var GenerationService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "gooseai.GenerationService", HandlerType: (*GenerationServiceServer)(nil), - Methods: []grpc.MethodDesc{}, + Methods: []grpc.MethodDesc{ + { + MethodName: "EstimateCost", + Handler: _GenerationService_EstimateCost_Handler, + }, + }, Streams: []grpc.StreamDesc{ { StreamName: "Generate", diff --git a/gooseai/generation/generation_grpc_pb.d.ts b/gooseai/generation/generation_grpc_pb.d.ts index d713ead..51cd5d3 100644 --- a/gooseai/generation/generation_grpc_pb.d.ts +++ b/gooseai/generation/generation_grpc_pb.d.ts @@ -9,6 +9,7 @@ import * as grpc from "grpc"; interface IGenerationServiceService extends grpc.ServiceDefinition { generate: grpc.MethodDefinition; chainGenerate: grpc.MethodDefinition; + estimateCost: grpc.MethodDefinition; } export const GenerationServiceService: IGenerationServiceService; @@ -16,6 +17,7 @@ export const GenerationServiceService: IGenerationServiceService; export interface IGenerationServiceServer extends grpc.UntypedServiceImplementation { generate: grpc.handleServerStreamingCall; chainGenerate: grpc.handleServerStreamingCall; + estimateCost: grpc.handleUnaryCall; } export class GenerationServiceClient extends grpc.Client { @@ -24,4 +26,7 @@ export class GenerationServiceClient extends grpc.Client { generate(argument: generation_pb.Request, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): grpc.ClientReadableStream; chainGenerate(argument: generation_pb.ChainRequest, metadataOrOptions?: grpc.Metadata | grpc.CallOptions | null): grpc.ClientReadableStream; chainGenerate(argument: generation_pb.ChainRequest, metadata?: grpc.Metadata | null, options?: grpc.CallOptions | null): grpc.ClientReadableStream; + estimateCost(argument: generation_pb.Request, callback: grpc.requestCallback): grpc.ClientUnaryCall; + estimateCost(argument: generation_pb.Request, metadataOrOptions: grpc.Metadata | grpc.CallOptions | null, callback: grpc.requestCallback): grpc.ClientUnaryCall; + estimateCost(argument: generation_pb.Request, metadata: grpc.Metadata | null, options: grpc.CallOptions | null, callback: grpc.requestCallback): grpc.ClientUnaryCall; } diff --git a/gooseai/generation/generation_grpc_pb.js b/gooseai/generation/generation_grpc_pb.js index e92eec5..16df01e 100644 --- a/gooseai/generation/generation_grpc_pb.js +++ b/gooseai/generation/generation_grpc_pb.js @@ -26,6 +26,17 @@ function deserialize_gooseai_ChainRequest(buffer_arg) { return generation_pb.ChainRequest.deserializeBinary(new Uint8Array(buffer_arg)); } +function serialize_gooseai_EstimateCostResponse(arg) { + if (!(arg instanceof generation_pb.EstimateCostResponse)) { + throw new Error('Expected argument of type gooseai.EstimateCostResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_gooseai_EstimateCostResponse(buffer_arg) { + return generation_pb.EstimateCostResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + function serialize_gooseai_Request(arg) { if (!(arg instanceof generation_pb.Request)) { throw new Error('Expected argument of type gooseai.Request'); @@ -64,6 +75,17 @@ var GenerationServiceService = exports.GenerationServiceService = { responseSerialize: serialize_gooseai_Answer, responseDeserialize: deserialize_gooseai_Answer, }, + estimateCost: { + path: '/gooseai.GenerationService/EstimateCost', + requestStream: false, + responseStream: false, + requestType: generation_pb.Request, + responseType: generation_pb.EstimateCostResponse, + requestSerialize: serialize_gooseai_Request, + requestDeserialize: deserialize_gooseai_Request, + responseSerialize: serialize_gooseai_EstimateCostResponse, + responseDeserialize: deserialize_gooseai_EstimateCostResponse, + }, }; exports.GenerationServiceClient = grpc.makeGenericClientConstructor(GenerationServiceService); diff --git a/gooseai/generation/generation_pb.d.ts b/gooseai/generation/generation_pb.d.ts index 2374c51..687627e 100644 --- a/gooseai/generation/generation_pb.d.ts +++ b/gooseai/generation/generation_pb.d.ts @@ -643,6 +643,26 @@ export namespace ImageParameters { } } +export class EstimateCostResponse extends jspb.Message { + getTotalCreditCost(): number; + setTotalCreditCost(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): EstimateCostResponse.AsObject; + static toObject(includeInstance: boolean, msg: EstimateCostResponse): EstimateCostResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: EstimateCostResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EstimateCostResponse; + static deserializeBinaryFromReader(message: EstimateCostResponse, reader: jspb.BinaryReader): EstimateCostResponse; +} + +export namespace EstimateCostResponse { + export type AsObject = { + totalCreditCost: number, + } +} + export class ClassifierConcept extends jspb.Message { getConcept(): string; setConcept(value: string): void; diff --git a/gooseai/generation/generation_pb.js b/gooseai/generation/generation_pb.js index 76711c5..8b82490 100644 --- a/gooseai/generation/generation_pb.js +++ b/gooseai/generation/generation_pb.js @@ -32,6 +32,7 @@ goog.exportSymbol('proto.gooseai.ClassifierParameters', null, global); goog.exportSymbol('proto.gooseai.ConditionerParameters', null, global); goog.exportSymbol('proto.gooseai.CutoutParameters', null, global); goog.exportSymbol('proto.gooseai.DiffusionSampler', null, global); +goog.exportSymbol('proto.gooseai.EstimateCostResponse', null, global); goog.exportSymbol('proto.gooseai.FinishReason', null, global); goog.exportSymbol('proto.gooseai.GuidanceInstanceParameters', null, global); goog.exportSymbol('proto.gooseai.GuidanceParameters', null, global); @@ -392,6 +393,27 @@ if (goog.DEBUG && !COMPILED) { */ proto.gooseai.ImageParameters.displayName = 'proto.gooseai.ImageParameters'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.gooseai.EstimateCostResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.gooseai.EstimateCostResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.gooseai.EstimateCostResponse.displayName = 'proto.gooseai.EstimateCostResponse'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -5240,6 +5262,136 @@ proto.gooseai.ImageParameters.prototype.clearParametersList = function() { +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.gooseai.EstimateCostResponse.prototype.toObject = function(opt_includeInstance) { + return proto.gooseai.EstimateCostResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.gooseai.EstimateCostResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.gooseai.EstimateCostResponse.toObject = function(includeInstance, msg) { + var f, obj = { + totalCreditCost: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.gooseai.EstimateCostResponse} + */ +proto.gooseai.EstimateCostResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.gooseai.EstimateCostResponse; + return proto.gooseai.EstimateCostResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.gooseai.EstimateCostResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.gooseai.EstimateCostResponse} + */ +proto.gooseai.EstimateCostResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readDouble()); + msg.setTotalCreditCost(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.gooseai.EstimateCostResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.gooseai.EstimateCostResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.gooseai.EstimateCostResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.gooseai.EstimateCostResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTotalCreditCost(); + if (f !== 0.0) { + writer.writeDouble( + 1, + f + ); + } +}; + + +/** + * optional double total_credit_cost = 1; + * @return {number} + */ +proto.gooseai.EstimateCostResponse.prototype.getTotalCreditCost = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.gooseai.EstimateCostResponse} returns this + */ +proto.gooseai.EstimateCostResponse.prototype.setTotalCreditCost = function(value) { + return jspb.Message.setProto3FloatField(this, 1, value); +}; + + + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. diff --git a/gooseai/generation/generation_pb2.py b/gooseai/generation/generation_pb2.py index f0994eb..a35be3b 100644 --- a/gooseai/generation/generation_pb2.py +++ b/gooseai/generation/generation_pb2.py @@ -15,7 +15,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10generation.proto\x12\x07gooseai\"/\n\x05Token\x12\x11\n\x04text\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\n\n\x02id\x18\x02 \x01(\rB\x07\n\x05_text\"T\n\x06Tokens\x12\x1e\n\x06tokens\x18\x01 \x03(\x0b\x32\x0e.gooseai.Token\x12\x19\n\x0ctokenizer_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_tokenizer_id\"\xd0\x02\n\x08\x41rtifact\x12\n\n\x02id\x18\x01 \x01(\x04\x12#\n\x04type\x18\x02 \x01(\x0e\x32\x15.gooseai.ArtifactType\x12\x0c\n\x04mime\x18\x03 \x01(\t\x12\x12\n\x05magic\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x06\x62inary\x18\x05 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x06 \x01(\tH\x00\x12!\n\x06tokens\x18\x07 \x01(\x0b\x32\x0f.gooseai.TokensH\x00\x12\x33\n\nclassifier\x18\x0b \x01(\x0b\x32\x1d.gooseai.ClassifierParametersH\x00\x12\r\n\x05index\x18\x08 \x01(\r\x12,\n\rfinish_reason\x18\t \x01(\x0e\x32\x15.gooseai.FinishReason\x12\x0c\n\x04seed\x18\n \x01(\r\x12\x0c\n\x04uuid\x18\x0c \x01(\t\x12\x0c\n\x04size\x18\r \x01(\x04\x42\x06\n\x04\x64\x61taB\x08\n\x06_magic\"N\n\x10PromptParameters\x12\x11\n\x04init\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_initB\t\n\x07_weight\"\xaf\x01\n\x06Prompt\x12\x32\n\nparameters\x18\x01 \x01(\x0b\x32\x19.gooseai.PromptParametersH\x01\x88\x01\x01\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x12!\n\x06tokens\x18\x03 \x01(\x0b\x32\x0f.gooseai.TokensH\x00\x12%\n\x08\x61rtifact\x18\x04 \x01(\x0b\x32\x11.gooseai.ArtifactH\x00\x42\x08\n\x06promptB\r\n\x0b_parameters\"\xef\x01\n\x11SamplerParameters\x12\x10\n\x03\x65ta\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1b\n\x0esampling_steps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x0flatent_channels\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12 \n\x13\x64ownsampling_factor\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tcfg_scale\x18\x05 \x01(\x02H\x04\x88\x01\x01\x42\x06\n\x04_etaB\x11\n\x0f_sampling_stepsB\x12\n\x10_latent_channelsB\x16\n\x14_downsampling_factorB\x0c\n\n_cfg_scale\"\x8b\x01\n\x15\x43onditionerParameters\x12 \n\x13vector_adjust_prior\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x0b\x63onditioner\x18\x02 \x01(\x0b\x32\x0e.gooseai.ModelH\x01\x88\x01\x01\x42\x16\n\x14_vector_adjust_priorB\x0e\n\x0c_conditioner\"j\n\x12ScheduleParameters\x12\x12\n\x05start\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x08\n\x06_value\"\xe4\x01\n\rStepParameter\x12\x13\n\x0bscaled_step\x18\x01 \x01(\x02\x12\x30\n\x07sampler\x18\x02 \x01(\x0b\x32\x1a.gooseai.SamplerParametersH\x00\x88\x01\x01\x12\x32\n\x08schedule\x18\x03 \x01(\x0b\x32\x1b.gooseai.ScheduleParametersH\x01\x88\x01\x01\x12\x32\n\x08guidance\x18\x04 \x01(\x0b\x32\x1b.gooseai.GuidanceParametersH\x02\x88\x01\x01\x42\n\n\x08_samplerB\x0b\n\t_scheduleB\x0b\n\t_guidance\"\x97\x01\n\x05Model\x12\x30\n\x0c\x61rchitecture\x18\x01 \x01(\x0e\x32\x1a.gooseai.ModelArchitecture\x12\x11\n\tpublisher\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x61taset\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x02\x12\x18\n\x10semantic_version\x18\x05 \x01(\t\x12\r\n\x05\x61lias\x18\x06 \x01(\t\"\xbc\x01\n\x10\x43utoutParameters\x12*\n\x07\x63utouts\x18\x01 \x03(\x0b\x32\x19.gooseai.CutoutParameters\x12\x12\n\x05\x63ount\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04gray\x18\x03 \x01(\x02H\x01\x88\x01\x01\x12\x11\n\x04\x62lur\x18\x04 \x01(\x02H\x02\x88\x01\x01\x12\x17\n\nsize_power\x18\x05 \x01(\x02H\x03\x88\x01\x01\x42\x08\n\x06_countB\x07\n\x05_grayB\x07\n\x05_blurB\r\n\x0b_size_power\"=\n\x1aGuidanceScheduleParameters\x12\x10\n\x08\x64uration\x18\x01 \x01(\x02\x12\r\n\x05value\x18\x02 \x01(\x02\"\x97\x02\n\x1aGuidanceInstanceParameters\x12\x1e\n\x06models\x18\x02 \x03(\x0b\x32\x0e.gooseai.Model\x12\x1e\n\x11guidance_strength\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x35\n\x08schedule\x18\x04 \x03(\x0b\x32#.gooseai.GuidanceScheduleParameters\x12/\n\x07\x63utouts\x18\x05 \x01(\x0b\x32\x19.gooseai.CutoutParametersH\x01\x88\x01\x01\x12$\n\x06prompt\x18\x06 \x01(\x0b\x32\x0f.gooseai.PromptH\x02\x88\x01\x01\x42\x14\n\x12_guidance_strengthB\n\n\x08_cutoutsB\t\n\x07_prompt\"~\n\x12GuidanceParameters\x12\x30\n\x0fguidance_preset\x18\x01 \x01(\x0e\x32\x17.gooseai.GuidancePreset\x12\x36\n\tinstances\x18\x02 \x03(\x0b\x32#.gooseai.GuidanceInstanceParameters\"n\n\rTransformType\x12.\n\tdiffusion\x18\x01 \x01(\x0e\x32\x19.gooseai.DiffusionSamplerH\x00\x12%\n\x08upscaler\x18\x02 \x01(\x0e\x32\x11.gooseai.UpscalerH\x00\x42\x06\n\x04type\"\x87\x02\n\x0fImageParameters\x12\x13\n\x06height\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05width\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0c\n\x04seed\x18\x03 \x03(\r\x12\x14\n\x07samples\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05steps\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12.\n\ttransform\x18\x06 \x01(\x0b\x32\x16.gooseai.TransformTypeH\x04\x88\x01\x01\x12*\n\nparameters\x18\x07 \x03(\x0b\x32\x16.gooseai.StepParameterB\t\n\x07_heightB\x08\n\x06_widthB\n\n\x08_samplesB\x08\n\x06_stepsB\x0c\n\n_transform\"J\n\x11\x43lassifierConcept\x12\x0f\n\x07\x63oncept\x18\x01 \x01(\t\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x00\x88\x01\x01\x42\x0c\n\n_threshold\"\xf4\x01\n\x12\x43lassifierCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x08\x63oncepts\x18\x02 \x03(\x0b\x32\x1a.gooseai.ClassifierConcept\x12\x17\n\nadjustment\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12$\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\x0f.gooseai.ActionH\x01\x88\x01\x01\x12\x35\n\x0f\x63lassifier_mode\x18\x05 \x01(\x0e\x32\x17.gooseai.ClassifierModeH\x02\x88\x01\x01\x42\r\n\x0b_adjustmentB\t\n\x07_actionB\x12\n\x10_classifier_mode\"\xb8\x01\n\x14\x43lassifierParameters\x12/\n\ncategories\x18\x01 \x03(\x0b\x32\x1b.gooseai.ClassifierCategory\x12,\n\x07\x65xceeds\x18\x02 \x03(\x0b\x32\x1b.gooseai.ClassifierCategory\x12-\n\x0frealized_action\x18\x03 \x01(\x0e\x32\x0f.gooseai.ActionH\x00\x88\x01\x01\x42\x12\n\x10_realized_action\"k\n\x0f\x41ssetParameters\x12$\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x14.gooseai.AssetAction\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x1e\n\x03use\x18\x03 \x01(\x0e\x32\x11.gooseai.AssetUse\"\x94\x01\n\nAnswerMeta\x12\x13\n\x06gpu_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x63pu_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07node_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tengine_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_gpu_idB\t\n\x07_cpu_idB\n\n\x08_node_idB\x0c\n\n_engine_id\"\xa9\x01\n\x06\x41nswer\x12\x11\n\tanswer_id\x18\x01 \x01(\t\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12\x10\n\x08received\x18\x03 \x01(\x04\x12\x0f\n\x07\x63reated\x18\x04 \x01(\x04\x12&\n\x04meta\x18\x06 \x01(\x0b\x32\x13.gooseai.AnswerMetaH\x00\x88\x01\x01\x12$\n\tartifacts\x18\x07 \x03(\x0b\x32\x11.gooseai.ArtifactB\x07\n\x05_meta\"\xdf\x02\n\x07Request\x12\x11\n\tengine_id\x18\x01 \x01(\t\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12-\n\x0erequested_type\x18\x03 \x01(\x0e\x32\x15.gooseai.ArtifactType\x12\x1f\n\x06prompt\x18\x04 \x03(\x0b\x32\x0f.gooseai.Prompt\x12)\n\x05image\x18\x05 \x01(\x0b\x32\x18.gooseai.ImageParametersH\x00\x12\x33\n\nclassifier\x18\x07 \x01(\x0b\x32\x1d.gooseai.ClassifierParametersH\x00\x12)\n\x05\x61sset\x18\x08 \x01(\x0b\x32\x18.gooseai.AssetParametersH\x00\x12\x38\n\x0b\x63onditioner\x18\x06 \x01(\x0b\x32\x1e.gooseai.ConditionerParametersH\x01\x88\x01\x01\x42\x08\n\x06paramsB\x0e\n\x0c_conditioner\"w\n\x08OnStatus\x12%\n\x06reason\x18\x01 \x03(\x0e\x32\x15.gooseai.FinishReason\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x06\x61\x63tion\x18\x03 \x03(\x0e\x32\x14.gooseai.StageActionB\t\n\x07_target\"\\\n\x05Stage\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07request\x18\x02 \x01(\x0b\x32\x10.gooseai.Request\x12$\n\ton_status\x18\x03 \x03(\x0b\x32\x11.gooseai.OnStatus\"A\n\x0c\x43hainRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x1d\n\x05stage\x18\x02 \x03(\x0b\x32\x0e.gooseai.Stage*E\n\x0c\x46inishReason\x12\x08\n\x04NULL\x10\x00\x12\n\n\x06LENGTH\x10\x01\x12\x08\n\x04STOP\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x12\n\n\x06\x46ILTER\x10\x04*\xba\x01\n\x0c\x41rtifactType\x12\x11\n\rARTIFACT_NONE\x10\x00\x12\x12\n\x0e\x41RTIFACT_IMAGE\x10\x01\x12\x12\n\x0e\x41RTIFACT_VIDEO\x10\x02\x12\x11\n\rARTIFACT_TEXT\x10\x03\x12\x13\n\x0f\x41RTIFACT_TOKENS\x10\x04\x12\x16\n\x12\x41RTIFACT_EMBEDDING\x10\x05\x12\x1c\n\x18\x41RTIFACT_CLASSIFICATIONS\x10\x06\x12\x11\n\rARTIFACT_MASK\x10\x07*\xc5\x01\n\x10\x44iffusionSampler\x12\x10\n\x0cSAMPLER_DDIM\x10\x00\x12\x10\n\x0cSAMPLER_DDPM\x10\x01\x12\x13\n\x0fSAMPLER_K_EULER\x10\x02\x12\x1d\n\x19SAMPLER_K_EULER_ANCESTRAL\x10\x03\x12\x12\n\x0eSAMPLER_K_HEUN\x10\x04\x12\x13\n\x0fSAMPLER_K_DPM_2\x10\x05\x12\x1d\n\x19SAMPLER_K_DPM_2_ANCESTRAL\x10\x06\x12\x11\n\rSAMPLER_K_LMS\x10\x07*F\n\x08Upscaler\x12\x10\n\x0cUPSCALER_RGB\x10\x00\x12\x13\n\x0fUPSCALER_GFPGAN\x10\x01\x12\x13\n\x0fUPSCALER_ESRGAN\x10\x02*\xd8\x01\n\x0eGuidancePreset\x12\x18\n\x14GUIDANCE_PRESET_NONE\x10\x00\x12\x1a\n\x16GUIDANCE_PRESET_SIMPLE\x10\x01\x12\x1d\n\x19GUIDANCE_PRESET_FAST_BLUE\x10\x02\x12\x1e\n\x1aGUIDANCE_PRESET_FAST_GREEN\x10\x03\x12\x18\n\x14GUIDANCE_PRESET_SLOW\x10\x04\x12\x1a\n\x16GUIDANCE_PRESET_SLOWER\x10\x05\x12\x1b\n\x17GUIDANCE_PRESET_SLOWEST\x10\x06*\x91\x01\n\x11ModelArchitecture\x12\x1b\n\x17MODEL_ARCHITECTURE_NONE\x10\x00\x12\x1f\n\x1bMODEL_ARCHITECTURE_CLIP_VIT\x10\x01\x12\"\n\x1eMODEL_ARCHITECTURE_CLIP_RESNET\x10\x02\x12\x1a\n\x16MODEL_ARCHITECTURE_LDM\x10\x03*\xa2\x01\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_PASSTHROUGH\x10\x00\x12\x1f\n\x1b\x41\x43TION_REGENERATE_DUPLICATE\x10\x01\x12\x15\n\x11\x41\x43TION_REGENERATE\x10\x02\x12\x1e\n\x1a\x41\x43TION_OBFUSCATE_DUPLICATE\x10\x03\x12\x14\n\x10\x41\x43TION_OBFUSCATE\x10\x04\x12\x12\n\x0e\x41\x43TION_DISCARD\x10\x05*D\n\x0e\x43lassifierMode\x12\x17\n\x13\x43LSFR_MODE_ZEROSHOT\x10\x00\x12\x19\n\x15\x43LSFR_MODE_MULTICLASS\x10\x01*=\n\x0b\x41ssetAction\x12\r\n\tASSET_PUT\x10\x00\x12\r\n\tASSET_GET\x10\x01\x12\x10\n\x0c\x41SSET_DELETE\x10\x02*\x81\x01\n\x08\x41ssetUse\x12\x17\n\x13\x41SSET_USE_UNDEFINED\x10\x00\x12\x13\n\x0f\x41SSET_USE_INPUT\x10\x01\x12\x14\n\x10\x41SSET_USE_OUTPUT\x10\x02\x12\x1a\n\x16\x41SSET_USE_INTERMEDIATE\x10\x03\x12\x15\n\x11\x41SSET_USE_PROJECT\x10\x04*W\n\x0bStageAction\x12\x15\n\x11STAGE_ACTION_PASS\x10\x00\x12\x18\n\x14STAGE_ACTION_DISCARD\x10\x01\x12\x17\n\x13STAGE_ACTION_RETURN\x10\x02\x32\x83\x01\n\x11GenerationService\x12\x31\n\x08Generate\x12\x10.gooseai.Request\x1a\x0f.gooseai.Answer\"\x00\x30\x01\x12;\n\rChainGenerate\x12\x15.gooseai.ChainRequest\x1a\x0f.gooseai.Answer\"\x00\x30\x01\x42\x0fZ\r./;generationb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10generation.proto\x12\x07gooseai\"/\n\x05Token\x12\x11\n\x04text\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\n\n\x02id\x18\x02 \x01(\rB\x07\n\x05_text\"T\n\x06Tokens\x12\x1e\n\x06tokens\x18\x01 \x03(\x0b\x32\x0e.gooseai.Token\x12\x19\n\x0ctokenizer_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_tokenizer_id\"\xd0\x02\n\x08\x41rtifact\x12\n\n\x02id\x18\x01 \x01(\x04\x12#\n\x04type\x18\x02 \x01(\x0e\x32\x15.gooseai.ArtifactType\x12\x0c\n\x04mime\x18\x03 \x01(\t\x12\x12\n\x05magic\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x06\x62inary\x18\x05 \x01(\x0cH\x00\x12\x0e\n\x04text\x18\x06 \x01(\tH\x00\x12!\n\x06tokens\x18\x07 \x01(\x0b\x32\x0f.gooseai.TokensH\x00\x12\x33\n\nclassifier\x18\x0b \x01(\x0b\x32\x1d.gooseai.ClassifierParametersH\x00\x12\r\n\x05index\x18\x08 \x01(\r\x12,\n\rfinish_reason\x18\t \x01(\x0e\x32\x15.gooseai.FinishReason\x12\x0c\n\x04seed\x18\n \x01(\r\x12\x0c\n\x04uuid\x18\x0c \x01(\t\x12\x0c\n\x04size\x18\r \x01(\x04\x42\x06\n\x04\x64\x61taB\x08\n\x06_magic\"N\n\x10PromptParameters\x12\x11\n\x04init\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_initB\t\n\x07_weight\"\xaf\x01\n\x06Prompt\x12\x32\n\nparameters\x18\x01 \x01(\x0b\x32\x19.gooseai.PromptParametersH\x01\x88\x01\x01\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x12!\n\x06tokens\x18\x03 \x01(\x0b\x32\x0f.gooseai.TokensH\x00\x12%\n\x08\x61rtifact\x18\x04 \x01(\x0b\x32\x11.gooseai.ArtifactH\x00\x42\x08\n\x06promptB\r\n\x0b_parameters\"\xef\x01\n\x11SamplerParameters\x12\x10\n\x03\x65ta\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1b\n\x0esampling_steps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x0flatent_channels\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12 \n\x13\x64ownsampling_factor\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tcfg_scale\x18\x05 \x01(\x02H\x04\x88\x01\x01\x42\x06\n\x04_etaB\x11\n\x0f_sampling_stepsB\x12\n\x10_latent_channelsB\x16\n\x14_downsampling_factorB\x0c\n\n_cfg_scale\"\x8b\x01\n\x15\x43onditionerParameters\x12 \n\x13vector_adjust_prior\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x0b\x63onditioner\x18\x02 \x01(\x0b\x32\x0e.gooseai.ModelH\x01\x88\x01\x01\x42\x16\n\x14_vector_adjust_priorB\x0e\n\x0c_conditioner\"j\n\x12ScheduleParameters\x12\x12\n\x05start\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x08\n\x06_value\"\xe4\x01\n\rStepParameter\x12\x13\n\x0bscaled_step\x18\x01 \x01(\x02\x12\x30\n\x07sampler\x18\x02 \x01(\x0b\x32\x1a.gooseai.SamplerParametersH\x00\x88\x01\x01\x12\x32\n\x08schedule\x18\x03 \x01(\x0b\x32\x1b.gooseai.ScheduleParametersH\x01\x88\x01\x01\x12\x32\n\x08guidance\x18\x04 \x01(\x0b\x32\x1b.gooseai.GuidanceParametersH\x02\x88\x01\x01\x42\n\n\x08_samplerB\x0b\n\t_scheduleB\x0b\n\t_guidance\"\x97\x01\n\x05Model\x12\x30\n\x0c\x61rchitecture\x18\x01 \x01(\x0e\x32\x1a.gooseai.ModelArchitecture\x12\x11\n\tpublisher\x18\x02 \x01(\t\x12\x0f\n\x07\x64\x61taset\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x02\x12\x18\n\x10semantic_version\x18\x05 \x01(\t\x12\r\n\x05\x61lias\x18\x06 \x01(\t\"\xbc\x01\n\x10\x43utoutParameters\x12*\n\x07\x63utouts\x18\x01 \x03(\x0b\x32\x19.gooseai.CutoutParameters\x12\x12\n\x05\x63ount\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04gray\x18\x03 \x01(\x02H\x01\x88\x01\x01\x12\x11\n\x04\x62lur\x18\x04 \x01(\x02H\x02\x88\x01\x01\x12\x17\n\nsize_power\x18\x05 \x01(\x02H\x03\x88\x01\x01\x42\x08\n\x06_countB\x07\n\x05_grayB\x07\n\x05_blurB\r\n\x0b_size_power\"=\n\x1aGuidanceScheduleParameters\x12\x10\n\x08\x64uration\x18\x01 \x01(\x02\x12\r\n\x05value\x18\x02 \x01(\x02\"\x97\x02\n\x1aGuidanceInstanceParameters\x12\x1e\n\x06models\x18\x02 \x03(\x0b\x32\x0e.gooseai.Model\x12\x1e\n\x11guidance_strength\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x35\n\x08schedule\x18\x04 \x03(\x0b\x32#.gooseai.GuidanceScheduleParameters\x12/\n\x07\x63utouts\x18\x05 \x01(\x0b\x32\x19.gooseai.CutoutParametersH\x01\x88\x01\x01\x12$\n\x06prompt\x18\x06 \x01(\x0b\x32\x0f.gooseai.PromptH\x02\x88\x01\x01\x42\x14\n\x12_guidance_strengthB\n\n\x08_cutoutsB\t\n\x07_prompt\"~\n\x12GuidanceParameters\x12\x30\n\x0fguidance_preset\x18\x01 \x01(\x0e\x32\x17.gooseai.GuidancePreset\x12\x36\n\tinstances\x18\x02 \x03(\x0b\x32#.gooseai.GuidanceInstanceParameters\"n\n\rTransformType\x12.\n\tdiffusion\x18\x01 \x01(\x0e\x32\x19.gooseai.DiffusionSamplerH\x00\x12%\n\x08upscaler\x18\x02 \x01(\x0e\x32\x11.gooseai.UpscalerH\x00\x42\x06\n\x04type\"\x87\x02\n\x0fImageParameters\x12\x13\n\x06height\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x05width\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0c\n\x04seed\x18\x03 \x03(\r\x12\x14\n\x07samples\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x12\n\x05steps\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12.\n\ttransform\x18\x06 \x01(\x0b\x32\x16.gooseai.TransformTypeH\x04\x88\x01\x01\x12*\n\nparameters\x18\x07 \x03(\x0b\x32\x16.gooseai.StepParameterB\t\n\x07_heightB\x08\n\x06_widthB\n\n\x08_samplesB\x08\n\x06_stepsB\x0c\n\n_transform\"1\n\x14\x45stimateCostResponse\x12\x19\n\x11total_credit_cost\x18\x01 \x01(\x01\"J\n\x11\x43lassifierConcept\x12\x0f\n\x07\x63oncept\x18\x01 \x01(\t\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x00\x88\x01\x01\x42\x0c\n\n_threshold\"\xf4\x01\n\x12\x43lassifierCategory\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x08\x63oncepts\x18\x02 \x03(\x0b\x32\x1a.gooseai.ClassifierConcept\x12\x17\n\nadjustment\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12$\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\x0f.gooseai.ActionH\x01\x88\x01\x01\x12\x35\n\x0f\x63lassifier_mode\x18\x05 \x01(\x0e\x32\x17.gooseai.ClassifierModeH\x02\x88\x01\x01\x42\r\n\x0b_adjustmentB\t\n\x07_actionB\x12\n\x10_classifier_mode\"\xb8\x01\n\x14\x43lassifierParameters\x12/\n\ncategories\x18\x01 \x03(\x0b\x32\x1b.gooseai.ClassifierCategory\x12,\n\x07\x65xceeds\x18\x02 \x03(\x0b\x32\x1b.gooseai.ClassifierCategory\x12-\n\x0frealized_action\x18\x03 \x01(\x0e\x32\x0f.gooseai.ActionH\x00\x88\x01\x01\x42\x12\n\x10_realized_action\"k\n\x0f\x41ssetParameters\x12$\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x14.gooseai.AssetAction\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x1e\n\x03use\x18\x03 \x01(\x0e\x32\x11.gooseai.AssetUse\"\x94\x01\n\nAnswerMeta\x12\x13\n\x06gpu_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x63pu_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07node_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tengine_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_gpu_idB\t\n\x07_cpu_idB\n\n\x08_node_idB\x0c\n\n_engine_id\"\xa9\x01\n\x06\x41nswer\x12\x11\n\tanswer_id\x18\x01 \x01(\t\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12\x10\n\x08received\x18\x03 \x01(\x04\x12\x0f\n\x07\x63reated\x18\x04 \x01(\x04\x12&\n\x04meta\x18\x06 \x01(\x0b\x32\x13.gooseai.AnswerMetaH\x00\x88\x01\x01\x12$\n\tartifacts\x18\x07 \x03(\x0b\x32\x11.gooseai.ArtifactB\x07\n\x05_meta\"\xdf\x02\n\x07Request\x12\x11\n\tengine_id\x18\x01 \x01(\t\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12-\n\x0erequested_type\x18\x03 \x01(\x0e\x32\x15.gooseai.ArtifactType\x12\x1f\n\x06prompt\x18\x04 \x03(\x0b\x32\x0f.gooseai.Prompt\x12)\n\x05image\x18\x05 \x01(\x0b\x32\x18.gooseai.ImageParametersH\x00\x12\x33\n\nclassifier\x18\x07 \x01(\x0b\x32\x1d.gooseai.ClassifierParametersH\x00\x12)\n\x05\x61sset\x18\x08 \x01(\x0b\x32\x18.gooseai.AssetParametersH\x00\x12\x38\n\x0b\x63onditioner\x18\x06 \x01(\x0b\x32\x1e.gooseai.ConditionerParametersH\x01\x88\x01\x01\x42\x08\n\x06paramsB\x0e\n\x0c_conditioner\"w\n\x08OnStatus\x12%\n\x06reason\x18\x01 \x03(\x0e\x32\x15.gooseai.FinishReason\x12\x13\n\x06target\x18\x02 \x01(\tH\x00\x88\x01\x01\x12$\n\x06\x61\x63tion\x18\x03 \x03(\x0e\x32\x14.gooseai.StageActionB\t\n\x07_target\"\\\n\x05Stage\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07request\x18\x02 \x01(\x0b\x32\x10.gooseai.Request\x12$\n\ton_status\x18\x03 \x03(\x0b\x32\x11.gooseai.OnStatus\"A\n\x0c\x43hainRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x1d\n\x05stage\x18\x02 \x03(\x0b\x32\x0e.gooseai.Stage*E\n\x0c\x46inishReason\x12\x08\n\x04NULL\x10\x00\x12\n\n\x06LENGTH\x10\x01\x12\x08\n\x04STOP\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x12\n\n\x06\x46ILTER\x10\x04*\xba\x01\n\x0c\x41rtifactType\x12\x11\n\rARTIFACT_NONE\x10\x00\x12\x12\n\x0e\x41RTIFACT_IMAGE\x10\x01\x12\x12\n\x0e\x41RTIFACT_VIDEO\x10\x02\x12\x11\n\rARTIFACT_TEXT\x10\x03\x12\x13\n\x0f\x41RTIFACT_TOKENS\x10\x04\x12\x16\n\x12\x41RTIFACT_EMBEDDING\x10\x05\x12\x1c\n\x18\x41RTIFACT_CLASSIFICATIONS\x10\x06\x12\x11\n\rARTIFACT_MASK\x10\x07*\xc5\x01\n\x10\x44iffusionSampler\x12\x10\n\x0cSAMPLER_DDIM\x10\x00\x12\x10\n\x0cSAMPLER_DDPM\x10\x01\x12\x13\n\x0fSAMPLER_K_EULER\x10\x02\x12\x1d\n\x19SAMPLER_K_EULER_ANCESTRAL\x10\x03\x12\x12\n\x0eSAMPLER_K_HEUN\x10\x04\x12\x13\n\x0fSAMPLER_K_DPM_2\x10\x05\x12\x1d\n\x19SAMPLER_K_DPM_2_ANCESTRAL\x10\x06\x12\x11\n\rSAMPLER_K_LMS\x10\x07*F\n\x08Upscaler\x12\x10\n\x0cUPSCALER_RGB\x10\x00\x12\x13\n\x0fUPSCALER_GFPGAN\x10\x01\x12\x13\n\x0fUPSCALER_ESRGAN\x10\x02*\xd8\x01\n\x0eGuidancePreset\x12\x18\n\x14GUIDANCE_PRESET_NONE\x10\x00\x12\x1a\n\x16GUIDANCE_PRESET_SIMPLE\x10\x01\x12\x1d\n\x19GUIDANCE_PRESET_FAST_BLUE\x10\x02\x12\x1e\n\x1aGUIDANCE_PRESET_FAST_GREEN\x10\x03\x12\x18\n\x14GUIDANCE_PRESET_SLOW\x10\x04\x12\x1a\n\x16GUIDANCE_PRESET_SLOWER\x10\x05\x12\x1b\n\x17GUIDANCE_PRESET_SLOWEST\x10\x06*\x91\x01\n\x11ModelArchitecture\x12\x1b\n\x17MODEL_ARCHITECTURE_NONE\x10\x00\x12\x1f\n\x1bMODEL_ARCHITECTURE_CLIP_VIT\x10\x01\x12\"\n\x1eMODEL_ARCHITECTURE_CLIP_RESNET\x10\x02\x12\x1a\n\x16MODEL_ARCHITECTURE_LDM\x10\x03*\xa2\x01\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_PASSTHROUGH\x10\x00\x12\x1f\n\x1b\x41\x43TION_REGENERATE_DUPLICATE\x10\x01\x12\x15\n\x11\x41\x43TION_REGENERATE\x10\x02\x12\x1e\n\x1a\x41\x43TION_OBFUSCATE_DUPLICATE\x10\x03\x12\x14\n\x10\x41\x43TION_OBFUSCATE\x10\x04\x12\x12\n\x0e\x41\x43TION_DISCARD\x10\x05*D\n\x0e\x43lassifierMode\x12\x17\n\x13\x43LSFR_MODE_ZEROSHOT\x10\x00\x12\x19\n\x15\x43LSFR_MODE_MULTICLASS\x10\x01*=\n\x0b\x41ssetAction\x12\r\n\tASSET_PUT\x10\x00\x12\r\n\tASSET_GET\x10\x01\x12\x10\n\x0c\x41SSET_DELETE\x10\x02*\x81\x01\n\x08\x41ssetUse\x12\x17\n\x13\x41SSET_USE_UNDEFINED\x10\x00\x12\x13\n\x0f\x41SSET_USE_INPUT\x10\x01\x12\x14\n\x10\x41SSET_USE_OUTPUT\x10\x02\x12\x1a\n\x16\x41SSET_USE_INTERMEDIATE\x10\x03\x12\x15\n\x11\x41SSET_USE_PROJECT\x10\x04*W\n\x0bStageAction\x12\x15\n\x11STAGE_ACTION_PASS\x10\x00\x12\x18\n\x14STAGE_ACTION_DISCARD\x10\x01\x12\x17\n\x13STAGE_ACTION_RETURN\x10\x02\x32\xc6\x01\n\x11GenerationService\x12\x31\n\x08Generate\x12\x10.gooseai.Request\x1a\x0f.gooseai.Answer\"\x00\x30\x01\x12;\n\rChainGenerate\x12\x15.gooseai.ChainRequest\x1a\x0f.gooseai.Answer\"\x00\x30\x01\x12\x41\n\x0c\x45stimateCost\x12\x10.gooseai.Request\x1a\x1d.gooseai.EstimateCostResponse\"\x00\x42\x0fZ\r./;generationb\x06proto3') _FINISHREASON = DESCRIPTOR.enum_types_by_name['FinishReason'] FinishReason = enum_type_wrapper.EnumTypeWrapper(_FINISHREASON) @@ -111,6 +111,7 @@ _GUIDANCEPARAMETERS = DESCRIPTOR.message_types_by_name['GuidanceParameters'] _TRANSFORMTYPE = DESCRIPTOR.message_types_by_name['TransformType'] _IMAGEPARAMETERS = DESCRIPTOR.message_types_by_name['ImageParameters'] +_ESTIMATECOSTRESPONSE = DESCRIPTOR.message_types_by_name['EstimateCostResponse'] _CLASSIFIERCONCEPT = DESCRIPTOR.message_types_by_name['ClassifierConcept'] _CLASSIFIERCATEGORY = DESCRIPTOR.message_types_by_name['ClassifierCategory'] _CLASSIFIERPARAMETERS = DESCRIPTOR.message_types_by_name['ClassifierParameters'] @@ -233,6 +234,13 @@ }) _sym_db.RegisterMessage(ImageParameters) +EstimateCostResponse = _reflection.GeneratedProtocolMessageType('EstimateCostResponse', (_message.Message,), { + 'DESCRIPTOR' : _ESTIMATECOSTRESPONSE, + '__module__' : 'generation_pb2' + # @@protoc_insertion_point(class_scope:gooseai.EstimateCostResponse) + }) +_sym_db.RegisterMessage(EstimateCostResponse) + ClassifierConcept = _reflection.GeneratedProtocolMessageType('ClassifierConcept', (_message.Message,), { 'DESCRIPTOR' : _CLASSIFIERCONCEPT, '__module__' : 'generation_pb2' @@ -308,28 +316,28 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'Z\r./;generation' - _FINISHREASON._serialized_start=4258 - _FINISHREASON._serialized_end=4327 - _ARTIFACTTYPE._serialized_start=4330 - _ARTIFACTTYPE._serialized_end=4516 - _DIFFUSIONSAMPLER._serialized_start=4519 - _DIFFUSIONSAMPLER._serialized_end=4716 - _UPSCALER._serialized_start=4718 - _UPSCALER._serialized_end=4788 - _GUIDANCEPRESET._serialized_start=4791 - _GUIDANCEPRESET._serialized_end=5007 - _MODELARCHITECTURE._serialized_start=5010 - _MODELARCHITECTURE._serialized_end=5155 - _ACTION._serialized_start=5158 - _ACTION._serialized_end=5320 - _CLASSIFIERMODE._serialized_start=5322 - _CLASSIFIERMODE._serialized_end=5390 - _ASSETACTION._serialized_start=5392 - _ASSETACTION._serialized_end=5453 - _ASSETUSE._serialized_start=5456 - _ASSETUSE._serialized_end=5585 - _STAGEACTION._serialized_start=5587 - _STAGEACTION._serialized_end=5674 + _FINISHREASON._serialized_start=4309 + _FINISHREASON._serialized_end=4378 + _ARTIFACTTYPE._serialized_start=4381 + _ARTIFACTTYPE._serialized_end=4567 + _DIFFUSIONSAMPLER._serialized_start=4570 + _DIFFUSIONSAMPLER._serialized_end=4767 + _UPSCALER._serialized_start=4769 + _UPSCALER._serialized_end=4839 + _GUIDANCEPRESET._serialized_start=4842 + _GUIDANCEPRESET._serialized_end=5058 + _MODELARCHITECTURE._serialized_start=5061 + _MODELARCHITECTURE._serialized_end=5206 + _ACTION._serialized_start=5209 + _ACTION._serialized_end=5371 + _CLASSIFIERMODE._serialized_start=5373 + _CLASSIFIERMODE._serialized_end=5441 + _ASSETACTION._serialized_start=5443 + _ASSETACTION._serialized_end=5504 + _ASSETUSE._serialized_start=5507 + _ASSETUSE._serialized_end=5636 + _STAGEACTION._serialized_start=5638 + _STAGEACTION._serialized_end=5725 _TOKEN._serialized_start=29 _TOKEN._serialized_end=76 _TOKENS._serialized_start=78 @@ -362,26 +370,28 @@ _TRANSFORMTYPE._serialized_end=2412 _IMAGEPARAMETERS._serialized_start=2415 _IMAGEPARAMETERS._serialized_end=2678 - _CLASSIFIERCONCEPT._serialized_start=2680 - _CLASSIFIERCONCEPT._serialized_end=2754 - _CLASSIFIERCATEGORY._serialized_start=2757 - _CLASSIFIERCATEGORY._serialized_end=3001 - _CLASSIFIERPARAMETERS._serialized_start=3004 - _CLASSIFIERPARAMETERS._serialized_end=3188 - _ASSETPARAMETERS._serialized_start=3190 - _ASSETPARAMETERS._serialized_end=3297 - _ANSWERMETA._serialized_start=3300 - _ANSWERMETA._serialized_end=3448 - _ANSWER._serialized_start=3451 - _ANSWER._serialized_end=3620 - _REQUEST._serialized_start=3623 - _REQUEST._serialized_end=3974 - _ONSTATUS._serialized_start=3976 - _ONSTATUS._serialized_end=4095 - _STAGE._serialized_start=4097 - _STAGE._serialized_end=4189 - _CHAINREQUEST._serialized_start=4191 - _CHAINREQUEST._serialized_end=4256 - _GENERATIONSERVICE._serialized_start=5677 - _GENERATIONSERVICE._serialized_end=5808 + _ESTIMATECOSTRESPONSE._serialized_start=2680 + _ESTIMATECOSTRESPONSE._serialized_end=2729 + _CLASSIFIERCONCEPT._serialized_start=2731 + _CLASSIFIERCONCEPT._serialized_end=2805 + _CLASSIFIERCATEGORY._serialized_start=2808 + _CLASSIFIERCATEGORY._serialized_end=3052 + _CLASSIFIERPARAMETERS._serialized_start=3055 + _CLASSIFIERPARAMETERS._serialized_end=3239 + _ASSETPARAMETERS._serialized_start=3241 + _ASSETPARAMETERS._serialized_end=3348 + _ANSWERMETA._serialized_start=3351 + _ANSWERMETA._serialized_end=3499 + _ANSWER._serialized_start=3502 + _ANSWER._serialized_end=3671 + _REQUEST._serialized_start=3674 + _REQUEST._serialized_end=4025 + _ONSTATUS._serialized_start=4027 + _ONSTATUS._serialized_end=4146 + _STAGE._serialized_start=4148 + _STAGE._serialized_end=4240 + _CHAINREQUEST._serialized_start=4242 + _CHAINREQUEST._serialized_end=4307 + _GENERATIONSERVICE._serialized_start=5728 + _GENERATIONSERVICE._serialized_end=5926 # @@protoc_insertion_point(module_scope) diff --git a/gooseai/generation/generation_pb2_grpc.py b/gooseai/generation/generation_pb2_grpc.py index 2d5b0c9..790a79d 100644 --- a/gooseai/generation/generation_pb2_grpc.py +++ b/gooseai/generation/generation_pb2_grpc.py @@ -27,6 +27,11 @@ def __init__(self, channel): request_serializer=generation__pb2.ChainRequest.SerializeToString, response_deserializer=generation__pb2.Answer.FromString, ) + self.EstimateCost = channel.unary_unary( + '/gooseai.GenerationService/EstimateCost', + request_serializer=generation__pb2.Request.SerializeToString, + response_deserializer=generation__pb2.EstimateCostResponse.FromString, + ) class GenerationServiceServicer(object): @@ -47,6 +52,12 @@ def ChainGenerate(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def EstimateCost(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_GenerationServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -60,6 +71,11 @@ def add_GenerationServiceServicer_to_server(servicer, server): request_deserializer=generation__pb2.ChainRequest.FromString, response_serializer=generation__pb2.Answer.SerializeToString, ), + 'EstimateCost': grpc.unary_unary_rpc_method_handler( + servicer.EstimateCost, + request_deserializer=generation__pb2.Request.FromString, + response_serializer=generation__pb2.EstimateCostResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'gooseai.GenerationService', rpc_method_handlers) @@ -106,3 +122,20 @@ def ChainGenerate(request, generation__pb2.Answer.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def EstimateCost(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/gooseai.GenerationService/EstimateCost', + generation__pb2.Request.SerializeToString, + generation__pb2.EstimateCostResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/gooseai/generation/generation_pb_service.d.ts b/gooseai/generation/generation_pb_service.d.ts index ae4428a..fdb8e24 100644 --- a/gooseai/generation/generation_pb_service.d.ts +++ b/gooseai/generation/generation_pb_service.d.ts @@ -22,10 +22,20 @@ type GenerationServiceChainGenerate = { readonly responseType: typeof generation_pb.Answer; }; +type GenerationServiceEstimateCost = { + readonly methodName: string; + readonly service: typeof GenerationService; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof generation_pb.Request; + readonly responseType: typeof generation_pb.EstimateCostResponse; +}; + export class GenerationService { static readonly serviceName: string; static readonly Generate: GenerationServiceGenerate; static readonly ChainGenerate: GenerationServiceChainGenerate; + static readonly EstimateCost: GenerationServiceEstimateCost; } export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } @@ -62,5 +72,14 @@ export class GenerationServiceClient { constructor(serviceHost: string, options?: grpc.RpcOptions); generate(requestMessage: generation_pb.Request, metadata?: grpc.Metadata): ResponseStream; chainGenerate(requestMessage: generation_pb.ChainRequest, metadata?: grpc.Metadata): ResponseStream; + estimateCost( + requestMessage: generation_pb.Request, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: generation_pb.EstimateCostResponse|null) => void + ): UnaryResponse; + estimateCost( + requestMessage: generation_pb.Request, + callback: (error: ServiceError|null, responseMessage: generation_pb.EstimateCostResponse|null) => void + ): UnaryResponse; } diff --git a/gooseai/generation/generation_pb_service.js b/gooseai/generation/generation_pb_service.js index a03f594..ac3cf26 100644 --- a/gooseai/generation/generation_pb_service.js +++ b/gooseai/generation/generation_pb_service.js @@ -28,6 +28,15 @@ GenerationService.ChainGenerate = { responseType: generation_pb.Answer }; +GenerationService.EstimateCost = { + methodName: "EstimateCost", + service: GenerationService, + requestStream: false, + responseStream: false, + requestType: generation_pb.Request, + responseType: generation_pb.EstimateCostResponse +}; + exports.GenerationService = GenerationService; function GenerationServiceClient(serviceHost, options) { @@ -113,5 +122,36 @@ GenerationServiceClient.prototype.chainGenerate = function chainGenerate(request }; }; +GenerationServiceClient.prototype.estimateCost = function estimateCost(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(GenerationService.EstimateCost, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + exports.GenerationServiceClient = GenerationServiceClient; diff --git a/gooseai/go.mod b/gooseai/go.mod index 3a565af..0d66583 100644 --- a/gooseai/go.mod +++ b/gooseai/go.mod @@ -3,7 +3,7 @@ module github.com/stability-ai/api-interfaces/gooseai go 1.18 require ( - google.golang.org/grpc v1.49.0 + google.golang.org/grpc v1.50.1 google.golang.org/protobuf v1.28.1 ) diff --git a/gooseai/go.sum b/gooseai/go.sum index 9f0cd57..619d333 100644 --- a/gooseai/go.sum +++ b/gooseai/go.sum @@ -66,8 +66,8 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/gooseai/project/project.pb.go b/gooseai/project/project.pb.go index a651b82..264f328 100644 --- a/gooseai/project/project.pb.go +++ b/gooseai/project/project.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.4 +// protoc v3.19.5 // source: project.proto package project diff --git a/src/proto/generation.proto b/src/proto/generation.proto index d2ad64c..5369b62 100644 --- a/src/proto/generation.proto +++ b/src/proto/generation.proto @@ -213,6 +213,10 @@ enum Action { ACTION_DISCARD = 5; } +message EstimateCostResponse { + double total_credit_cost = 1; +} + // // Artifact classification parameters. // @@ -339,4 +343,5 @@ message ChainRequest { service GenerationService { rpc Generate (Request) returns (stream Answer) {}; rpc ChainGenerate (ChainRequest) returns (stream Answer) {}; + rpc EstimateCost (Request) returns (EstimateCostResponse) {}; }