From e96ceab3f063b5309179eea33a375b35de4e36fd Mon Sep 17 00:00:00 2001 From: Xeronith Date: Fri, 23 Jun 2023 14:52:07 +0330 Subject: [PATCH] feat(api): :sparkles: server configuration --- app/commands/get_server_configuration.go | 22 + components/api/api_test.go | 10 + components/api/operations/factory.go | 1 + .../get_server_configuration_operation.go | 39 + components/api/protobuf/spis.pb.go | 1028 ++++++++++------- components/api/protobuf/spis.proto | 11 + .../get_server_configuration_service.go | 25 + components/contracts/api.go | 1 + components/contracts/opcodes.go | 6 + components/contracts/spi.go | 7 + components/contracts/system_component.go | 2 + components/contracts/system_dispatcher.go | 3 + components/core/api_methods.go | 11 + components/core/initializer.go | 8 + components/core/spi.go | 4 + components/core/spi_manager.go | 47 + components/core/spi_manager_test.go | 11 + components/core/system_results.go | 4 + 18 files changed, 795 insertions(+), 445 deletions(-) create mode 100644 app/commands/get_server_configuration.go create mode 100644 components/api/operations/get_server_configuration_operation.go create mode 100644 components/api/services/get_server_configuration_service.go diff --git a/app/commands/get_server_configuration.go b/app/commands/get_server_configuration.go new file mode 100644 index 0000000..a31351b --- /dev/null +++ b/app/commands/get_server_configuration.go @@ -0,0 +1,22 @@ +package commands + +import . "github.com/reiver/greatape/components/contracts" + +func GetServerConfiguration(x IDispatcher) (IGetServerConfigurationResult, error) { + environment := "" + if x.IsDevelopmentEnvironment() { + environment = "development" + } else if x.IsTestEnvironment() { + environment = "test" + } else if x.IsStagingEnvironment() { + environment = "staging" + } else if x.IsProductionEnvironment() { + environment = "production" + } + + return x.NewGetServerConfigurationResult( + "GreatApe", + environment, + x.FQDN(), + ), nil +} diff --git a/components/api/api_test.go b/components/api/api_test.go index 55be45d..cb8016a 100644 --- a/components/api/api_test.go +++ b/components/api/api_test.go @@ -45,6 +45,16 @@ func TestEchoApi(test *testing.T) { } } +func TestGetServerConfigurationApi(test *testing.T) { + input := &GetServerConfigurationRequest{} + + if output, err := api.GetServerConfiguration(input); err != nil { + test.Fatal(err) + } else if output == nil { + test.Fail() + } +} + func TestCheckUsernameAvailabilityApi(test *testing.T) { input := &CheckUsernameAvailabilityRequest{ Username: "username", diff --git a/components/api/operations/factory.go b/components/api/operations/factory.go index 8b5400c..21232ee 100644 --- a/components/api/operations/factory.go +++ b/components/api/operations/factory.go @@ -8,6 +8,7 @@ func (factory *operationFactory) Operations() []IOperation { return []IOperation{ SystemCallOperation(), EchoOperation(), + GetServerConfigurationOperation(), CheckUsernameAvailabilityOperation(), SignupOperation(), ResendVerificationCodeOperation(), diff --git a/components/api/operations/get_server_configuration_operation.go b/components/api/operations/get_server_configuration_operation.go new file mode 100644 index 0000000..8f0b7d0 --- /dev/null +++ b/components/api/operations/get_server_configuration_operation.go @@ -0,0 +1,39 @@ +package operations + +import ( + . "github.com/reiver/greatape/components/api/protobuf" + . "github.com/reiver/greatape/components/api/services" + . "github.com/reiver/greatape/components/contracts" + . "github.com/xeronith/diamante/contracts/operation" + . "github.com/xeronith/diamante/contracts/service" + . "github.com/xeronith/diamante/contracts/system" + . "github.com/xeronith/diamante/operation" +) + +type getServerConfigurationOperation struct { + Operation + + run func(IContext, *GetServerConfigurationRequest) (*GetServerConfigurationResult, error) +} + +func GetServerConfigurationOperation() IOperation { + return &getServerConfigurationOperation{ + run: GetServerConfigurationService, + } +} + +func (operation *getServerConfigurationOperation) Id() (ID, ID) { + return GET_SERVER_CONFIGURATION_REQUEST, GET_SERVER_CONFIGURATION_RESULT +} + +func (operation *getServerConfigurationOperation) InputContainer() Pointer { + return new(GetServerConfigurationRequest) +} + +func (operation *getServerConfigurationOperation) OutputContainer() Pointer { + return new(GetServerConfigurationResult) +} + +func (operation *getServerConfigurationOperation) Execute(context IContext, payload Pointer) (Pointer, error) { + return operation.run(context, payload.(*GetServerConfigurationRequest)) +} diff --git a/components/api/protobuf/spis.pb.go b/components/api/protobuf/spis.pb.go index 57db033..06c0765 100644 --- a/components/api/protobuf/spis.pb.go +++ b/components/api/protobuf/spis.pb.go @@ -203,6 +203,109 @@ func (x *EchoResult) GetDocument() *Document { return nil } +// API: GetServerConfiguration +// ----------------------------------------------------------- +type GetServerConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetServerConfigurationRequest) Reset() { + *x = GetServerConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spis_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetServerConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetServerConfigurationRequest) ProtoMessage() {} + +func (x *GetServerConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_spis_proto_msgTypes[4] + 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 GetServerConfigurationRequest.ProtoReflect.Descriptor instead. +func (*GetServerConfigurationRequest) Descriptor() ([]byte, []int) { + return file_spis_proto_rawDescGZIP(), []int{4} +} + +type GetServerConfigurationResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"` + Environment string `protobuf:"bytes,2,opt,name=environment,proto3" json:"environment,omitempty"` + Fqdn string `protobuf:"bytes,3,opt,name=fqdn,proto3" json:"fqdn,omitempty"` +} + +func (x *GetServerConfigurationResult) Reset() { + *x = GetServerConfigurationResult{} + if protoimpl.UnsafeEnabled { + mi := &file_spis_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetServerConfigurationResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetServerConfigurationResult) ProtoMessage() {} + +func (x *GetServerConfigurationResult) ProtoReflect() protoreflect.Message { + mi := &file_spis_proto_msgTypes[5] + 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 GetServerConfigurationResult.ProtoReflect.Descriptor instead. +func (*GetServerConfigurationResult) Descriptor() ([]byte, []int) { + return file_spis_proto_rawDescGZIP(), []int{5} +} + +func (x *GetServerConfigurationResult) GetProduct() string { + if x != nil { + return x.Product + } + return "" +} + +func (x *GetServerConfigurationResult) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" +} + +func (x *GetServerConfigurationResult) GetFqdn() string { + if x != nil { + return x.Fqdn + } + return "" +} + // API: CheckUsernameAvailability // ----------------------------------------------------------- type CheckUsernameAvailabilityRequest struct { @@ -216,7 +319,7 @@ type CheckUsernameAvailabilityRequest struct { func (x *CheckUsernameAvailabilityRequest) Reset() { *x = CheckUsernameAvailabilityRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[4] + mi := &file_spis_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -229,7 +332,7 @@ func (x *CheckUsernameAvailabilityRequest) String() string { func (*CheckUsernameAvailabilityRequest) ProtoMessage() {} func (x *CheckUsernameAvailabilityRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[4] + mi := &file_spis_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -242,7 +345,7 @@ func (x *CheckUsernameAvailabilityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckUsernameAvailabilityRequest.ProtoReflect.Descriptor instead. func (*CheckUsernameAvailabilityRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{4} + return file_spis_proto_rawDescGZIP(), []int{6} } func (x *CheckUsernameAvailabilityRequest) GetUsername() string { @@ -263,7 +366,7 @@ type CheckUsernameAvailabilityResult struct { func (x *CheckUsernameAvailabilityResult) Reset() { *x = CheckUsernameAvailabilityResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[5] + mi := &file_spis_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -276,7 +379,7 @@ func (x *CheckUsernameAvailabilityResult) String() string { func (*CheckUsernameAvailabilityResult) ProtoMessage() {} func (x *CheckUsernameAvailabilityResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[5] + mi := &file_spis_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -289,7 +392,7 @@ func (x *CheckUsernameAvailabilityResult) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckUsernameAvailabilityResult.ProtoReflect.Descriptor instead. func (*CheckUsernameAvailabilityResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{5} + return file_spis_proto_rawDescGZIP(), []int{7} } func (x *CheckUsernameAvailabilityResult) GetIsAvailable() bool { @@ -314,7 +417,7 @@ type SignupRequest struct { func (x *SignupRequest) Reset() { *x = SignupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[6] + mi := &file_spis_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -327,7 +430,7 @@ func (x *SignupRequest) String() string { func (*SignupRequest) ProtoMessage() {} func (x *SignupRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[6] + mi := &file_spis_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -340,7 +443,7 @@ func (x *SignupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SignupRequest.ProtoReflect.Descriptor instead. func (*SignupRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{6} + return file_spis_proto_rawDescGZIP(), []int{8} } func (x *SignupRequest) GetUsername() string { @@ -376,7 +479,7 @@ type SignupResult struct { func (x *SignupResult) Reset() { *x = SignupResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[7] + mi := &file_spis_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -389,7 +492,7 @@ func (x *SignupResult) String() string { func (*SignupResult) ProtoMessage() {} func (x *SignupResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[7] + mi := &file_spis_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -402,7 +505,7 @@ func (x *SignupResult) ProtoReflect() protoreflect.Message { // Deprecated: Use SignupResult.ProtoReflect.Descriptor instead. func (*SignupResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{7} + return file_spis_proto_rawDescGZIP(), []int{9} } func (x *SignupResult) GetToken() string { @@ -432,7 +535,7 @@ type ResendVerificationCodeRequest struct { func (x *ResendVerificationCodeRequest) Reset() { *x = ResendVerificationCodeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[8] + mi := &file_spis_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -445,7 +548,7 @@ func (x *ResendVerificationCodeRequest) String() string { func (*ResendVerificationCodeRequest) ProtoMessage() {} func (x *ResendVerificationCodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[8] + mi := &file_spis_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -458,7 +561,7 @@ func (x *ResendVerificationCodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResendVerificationCodeRequest.ProtoReflect.Descriptor instead. func (*ResendVerificationCodeRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{8} + return file_spis_proto_rawDescGZIP(), []int{10} } func (x *ResendVerificationCodeRequest) GetEmail() string { @@ -479,7 +582,7 @@ type ResendVerificationCodeResult struct { func (x *ResendVerificationCodeResult) Reset() { *x = ResendVerificationCodeResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[9] + mi := &file_spis_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -492,7 +595,7 @@ func (x *ResendVerificationCodeResult) String() string { func (*ResendVerificationCodeResult) ProtoMessage() {} func (x *ResendVerificationCodeResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[9] + mi := &file_spis_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -505,7 +608,7 @@ func (x *ResendVerificationCodeResult) ProtoReflect() protoreflect.Message { // Deprecated: Use ResendVerificationCodeResult.ProtoReflect.Descriptor instead. func (*ResendVerificationCodeResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{9} + return file_spis_proto_rawDescGZIP(), []int{11} } func (x *ResendVerificationCodeResult) GetCode() string { @@ -530,7 +633,7 @@ type VerifyRequest struct { func (x *VerifyRequest) Reset() { *x = VerifyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[10] + mi := &file_spis_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -543,7 +646,7 @@ func (x *VerifyRequest) String() string { func (*VerifyRequest) ProtoMessage() {} func (x *VerifyRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[10] + mi := &file_spis_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -556,7 +659,7 @@ func (x *VerifyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. func (*VerifyRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{10} + return file_spis_proto_rawDescGZIP(), []int{12} } func (x *VerifyRequest) GetEmail() string { @@ -591,7 +694,7 @@ type VerifyResult struct { func (x *VerifyResult) Reset() { *x = VerifyResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[11] + mi := &file_spis_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -604,7 +707,7 @@ func (x *VerifyResult) String() string { func (*VerifyResult) ProtoMessage() {} func (x *VerifyResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[11] + mi := &file_spis_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -617,7 +720,7 @@ func (x *VerifyResult) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyResult.ProtoReflect.Descriptor instead. func (*VerifyResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{11} + return file_spis_proto_rawDescGZIP(), []int{13} } func (x *VerifyResult) GetToken() string { @@ -641,7 +744,7 @@ type LoginRequest struct { func (x *LoginRequest) Reset() { *x = LoginRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[12] + mi := &file_spis_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -654,7 +757,7 @@ func (x *LoginRequest) String() string { func (*LoginRequest) ProtoMessage() {} func (x *LoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[12] + mi := &file_spis_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -667,7 +770,7 @@ func (x *LoginRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. func (*LoginRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{12} + return file_spis_proto_rawDescGZIP(), []int{14} } func (x *LoginRequest) GetEmail() string { @@ -696,7 +799,7 @@ type LoginResult struct { func (x *LoginResult) Reset() { *x = LoginResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[13] + mi := &file_spis_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -709,7 +812,7 @@ func (x *LoginResult) String() string { func (*LoginResult) ProtoMessage() {} func (x *LoginResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[13] + mi := &file_spis_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -722,7 +825,7 @@ func (x *LoginResult) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginResult.ProtoReflect.Descriptor instead. func (*LoginResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{13} + return file_spis_proto_rawDescGZIP(), []int{15} } func (x *LoginResult) GetUsername() string { @@ -750,7 +853,7 @@ type GetProfileByUserRequest struct { func (x *GetProfileByUserRequest) Reset() { *x = GetProfileByUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[14] + mi := &file_spis_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -763,7 +866,7 @@ func (x *GetProfileByUserRequest) String() string { func (*GetProfileByUserRequest) ProtoMessage() {} func (x *GetProfileByUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[14] + mi := &file_spis_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -776,7 +879,7 @@ func (x *GetProfileByUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileByUserRequest.ProtoReflect.Descriptor instead. func (*GetProfileByUserRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{14} + return file_spis_proto_rawDescGZIP(), []int{16} } type GetProfileByUserResult struct { @@ -795,7 +898,7 @@ type GetProfileByUserResult struct { func (x *GetProfileByUserResult) Reset() { *x = GetProfileByUserResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[15] + mi := &file_spis_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -808,7 +911,7 @@ func (x *GetProfileByUserResult) String() string { func (*GetProfileByUserResult) ProtoMessage() {} func (x *GetProfileByUserResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[15] + mi := &file_spis_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -821,7 +924,7 @@ func (x *GetProfileByUserResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileByUserResult.ProtoReflect.Descriptor instead. func (*GetProfileByUserResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{15} + return file_spis_proto_rawDescGZIP(), []int{17} } func (x *GetProfileByUserResult) GetUsername() string { @@ -883,7 +986,7 @@ type UpdateProfileByUserRequest struct { func (x *UpdateProfileByUserRequest) Reset() { *x = UpdateProfileByUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[16] + mi := &file_spis_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -896,7 +999,7 @@ func (x *UpdateProfileByUserRequest) String() string { func (*UpdateProfileByUserRequest) ProtoMessage() {} func (x *UpdateProfileByUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[16] + mi := &file_spis_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -909,7 +1012,7 @@ func (x *UpdateProfileByUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateProfileByUserRequest.ProtoReflect.Descriptor instead. func (*UpdateProfileByUserRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{16} + return file_spis_proto_rawDescGZIP(), []int{18} } func (x *UpdateProfileByUserRequest) GetDisplayName() string { @@ -962,7 +1065,7 @@ type UpdateProfileByUserResult struct { func (x *UpdateProfileByUserResult) Reset() { *x = UpdateProfileByUserResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[17] + mi := &file_spis_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -975,7 +1078,7 @@ func (x *UpdateProfileByUserResult) String() string { func (*UpdateProfileByUserResult) ProtoMessage() {} func (x *UpdateProfileByUserResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[17] + mi := &file_spis_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -988,7 +1091,7 @@ func (x *UpdateProfileByUserResult) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateProfileByUserResult.ProtoReflect.Descriptor instead. func (*UpdateProfileByUserResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{17} + return file_spis_proto_rawDescGZIP(), []int{19} } func (x *UpdateProfileByUserResult) GetDisplayName() string { @@ -1040,7 +1143,7 @@ type ChangePasswordRequest struct { func (x *ChangePasswordRequest) Reset() { *x = ChangePasswordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[18] + mi := &file_spis_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1053,7 +1156,7 @@ func (x *ChangePasswordRequest) String() string { func (*ChangePasswordRequest) ProtoMessage() {} func (x *ChangePasswordRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[18] + mi := &file_spis_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1066,7 +1169,7 @@ func (x *ChangePasswordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePasswordRequest.ProtoReflect.Descriptor instead. func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{18} + return file_spis_proto_rawDescGZIP(), []int{20} } func (x *ChangePasswordRequest) GetCurrentPassword() string { @@ -1092,7 +1195,7 @@ type ChangePasswordResult struct { func (x *ChangePasswordResult) Reset() { *x = ChangePasswordResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[19] + mi := &file_spis_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1105,7 +1208,7 @@ func (x *ChangePasswordResult) String() string { func (*ChangePasswordResult) ProtoMessage() {} func (x *ChangePasswordResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[19] + mi := &file_spis_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1118,7 +1221,7 @@ func (x *ChangePasswordResult) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePasswordResult.ProtoReflect.Descriptor instead. func (*ChangePasswordResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{19} + return file_spis_proto_rawDescGZIP(), []int{21} } // API: ResetPassword @@ -1134,7 +1237,7 @@ type ResetPasswordRequest struct { func (x *ResetPasswordRequest) Reset() { *x = ResetPasswordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[20] + mi := &file_spis_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1147,7 +1250,7 @@ func (x *ResetPasswordRequest) String() string { func (*ResetPasswordRequest) ProtoMessage() {} func (x *ResetPasswordRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[20] + mi := &file_spis_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1160,7 +1263,7 @@ func (x *ResetPasswordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetPasswordRequest.ProtoReflect.Descriptor instead. func (*ResetPasswordRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{20} + return file_spis_proto_rawDescGZIP(), []int{22} } func (x *ResetPasswordRequest) GetUsernameOrEmail() string { @@ -1179,7 +1282,7 @@ type ResetPasswordResult struct { func (x *ResetPasswordResult) Reset() { *x = ResetPasswordResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[21] + mi := &file_spis_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1192,7 +1295,7 @@ func (x *ResetPasswordResult) String() string { func (*ResetPasswordResult) ProtoMessage() {} func (x *ResetPasswordResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[21] + mi := &file_spis_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1205,7 +1308,7 @@ func (x *ResetPasswordResult) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetPasswordResult.ProtoReflect.Descriptor instead. func (*ResetPasswordResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{21} + return file_spis_proto_rawDescGZIP(), []int{23} } // API: Logout @@ -1219,7 +1322,7 @@ type LogoutRequest struct { func (x *LogoutRequest) Reset() { *x = LogoutRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[22] + mi := &file_spis_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1232,7 +1335,7 @@ func (x *LogoutRequest) String() string { func (*LogoutRequest) ProtoMessage() {} func (x *LogoutRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[22] + mi := &file_spis_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1245,7 +1348,7 @@ func (x *LogoutRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LogoutRequest.ProtoReflect.Descriptor instead. func (*LogoutRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{22} + return file_spis_proto_rawDescGZIP(), []int{24} } type LogoutResult struct { @@ -1257,7 +1360,7 @@ type LogoutResult struct { func (x *LogoutResult) Reset() { *x = LogoutResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[23] + mi := &file_spis_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1270,7 +1373,7 @@ func (x *LogoutResult) String() string { func (*LogoutResult) ProtoMessage() {} func (x *LogoutResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[23] + mi := &file_spis_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1283,7 +1386,7 @@ func (x *LogoutResult) ProtoReflect() protoreflect.Message { // Deprecated: Use LogoutResult.ProtoReflect.Descriptor instead. func (*LogoutResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{23} + return file_spis_proto_rawDescGZIP(), []int{25} } // API: Webfinger @@ -1299,7 +1402,7 @@ type WebfingerRequest struct { func (x *WebfingerRequest) Reset() { *x = WebfingerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[24] + mi := &file_spis_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1312,7 +1415,7 @@ func (x *WebfingerRequest) String() string { func (*WebfingerRequest) ProtoMessage() {} func (x *WebfingerRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[24] + mi := &file_spis_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1325,7 +1428,7 @@ func (x *WebfingerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WebfingerRequest.ProtoReflect.Descriptor instead. func (*WebfingerRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{24} + return file_spis_proto_rawDescGZIP(), []int{26} } func (x *WebfingerRequest) GetResource() string { @@ -1348,7 +1451,7 @@ type WebfingerResult struct { func (x *WebfingerResult) Reset() { *x = WebfingerResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[25] + mi := &file_spis_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1361,7 +1464,7 @@ func (x *WebfingerResult) String() string { func (*WebfingerResult) ProtoMessage() {} func (x *WebfingerResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[25] + mi := &file_spis_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1374,7 +1477,7 @@ func (x *WebfingerResult) ProtoReflect() protoreflect.Message { // Deprecated: Use WebfingerResult.ProtoReflect.Descriptor instead. func (*WebfingerResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{25} + return file_spis_proto_rawDescGZIP(), []int{27} } func (x *WebfingerResult) GetAliases() []string { @@ -1409,7 +1512,7 @@ type GetPackagesRequest struct { func (x *GetPackagesRequest) Reset() { *x = GetPackagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[26] + mi := &file_spis_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1422,7 +1525,7 @@ func (x *GetPackagesRequest) String() string { func (*GetPackagesRequest) ProtoMessage() {} func (x *GetPackagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[26] + mi := &file_spis_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1435,7 +1538,7 @@ func (x *GetPackagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPackagesRequest.ProtoReflect.Descriptor instead. func (*GetPackagesRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{26} + return file_spis_proto_rawDescGZIP(), []int{28} } type GetPackagesResult struct { @@ -1449,7 +1552,7 @@ type GetPackagesResult struct { func (x *GetPackagesResult) Reset() { *x = GetPackagesResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[27] + mi := &file_spis_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1462,7 +1565,7 @@ func (x *GetPackagesResult) String() string { func (*GetPackagesResult) ProtoMessage() {} func (x *GetPackagesResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[27] + mi := &file_spis_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1475,7 +1578,7 @@ func (x *GetPackagesResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPackagesResult.ProtoReflect.Descriptor instead. func (*GetPackagesResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{27} + return file_spis_proto_rawDescGZIP(), []int{29} } func (x *GetPackagesResult) GetBody() []byte { @@ -1498,7 +1601,7 @@ type GetActorRequest struct { func (x *GetActorRequest) Reset() { *x = GetActorRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[28] + mi := &file_spis_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1511,7 +1614,7 @@ func (x *GetActorRequest) String() string { func (*GetActorRequest) ProtoMessage() {} func (x *GetActorRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[28] + mi := &file_spis_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1524,7 +1627,7 @@ func (x *GetActorRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetActorRequest.ProtoReflect.Descriptor instead. func (*GetActorRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{28} + return file_spis_proto_rawDescGZIP(), []int{30} } func (x *GetActorRequest) GetUsername() string { @@ -1559,7 +1662,7 @@ type GetActorResult struct { func (x *GetActorResult) Reset() { *x = GetActorResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[29] + mi := &file_spis_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1572,7 +1675,7 @@ func (x *GetActorResult) String() string { func (*GetActorResult) ProtoMessage() {} func (x *GetActorResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[29] + mi := &file_spis_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1585,7 +1688,7 @@ func (x *GetActorResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetActorResult.ProtoReflect.Descriptor instead. func (*GetActorResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{29} + return file_spis_proto_rawDescGZIP(), []int{31} } func (x *GetActorResult) GetContext() []string { @@ -1707,7 +1810,7 @@ type FollowActorRequest struct { func (x *FollowActorRequest) Reset() { *x = FollowActorRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[30] + mi := &file_spis_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1720,7 +1823,7 @@ func (x *FollowActorRequest) String() string { func (*FollowActorRequest) ProtoMessage() {} func (x *FollowActorRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[30] + mi := &file_spis_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1733,7 +1836,7 @@ func (x *FollowActorRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FollowActorRequest.ProtoReflect.Descriptor instead. func (*FollowActorRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{30} + return file_spis_proto_rawDescGZIP(), []int{32} } func (x *FollowActorRequest) GetUsername() string { @@ -1761,7 +1864,7 @@ type FollowActorResult struct { func (x *FollowActorResult) Reset() { *x = FollowActorResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[31] + mi := &file_spis_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1774,7 +1877,7 @@ func (x *FollowActorResult) String() string { func (*FollowActorResult) ProtoMessage() {} func (x *FollowActorResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[31] + mi := &file_spis_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1787,7 +1890,7 @@ func (x *FollowActorResult) ProtoReflect() protoreflect.Message { // Deprecated: Use FollowActorResult.ProtoReflect.Descriptor instead. func (*FollowActorResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{31} + return file_spis_proto_rawDescGZIP(), []int{33} } func (x *FollowActorResult) GetUrl() string { @@ -1810,7 +1913,7 @@ type AuthorizeInteractionRequest struct { func (x *AuthorizeInteractionRequest) Reset() { *x = AuthorizeInteractionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[32] + mi := &file_spis_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1823,7 +1926,7 @@ func (x *AuthorizeInteractionRequest) String() string { func (*AuthorizeInteractionRequest) ProtoMessage() {} func (x *AuthorizeInteractionRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[32] + mi := &file_spis_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1836,7 +1939,7 @@ func (x *AuthorizeInteractionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorizeInteractionRequest.ProtoReflect.Descriptor instead. func (*AuthorizeInteractionRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{32} + return file_spis_proto_rawDescGZIP(), []int{34} } func (x *AuthorizeInteractionRequest) GetUri() string { @@ -1858,7 +1961,7 @@ type AuthorizeInteractionResult struct { func (x *AuthorizeInteractionResult) Reset() { *x = AuthorizeInteractionResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[33] + mi := &file_spis_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1871,7 +1974,7 @@ func (x *AuthorizeInteractionResult) String() string { func (*AuthorizeInteractionResult) ProtoMessage() {} func (x *AuthorizeInteractionResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[33] + mi := &file_spis_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1884,7 +1987,7 @@ func (x *AuthorizeInteractionResult) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorizeInteractionResult.ProtoReflect.Descriptor instead. func (*AuthorizeInteractionResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{33} + return file_spis_proto_rawDescGZIP(), []int{35} } func (x *AuthorizeInteractionResult) GetUri() string { @@ -1914,7 +2017,7 @@ type GetFollowersRequest struct { func (x *GetFollowersRequest) Reset() { *x = GetFollowersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[34] + mi := &file_spis_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1927,7 +2030,7 @@ func (x *GetFollowersRequest) String() string { func (*GetFollowersRequest) ProtoMessage() {} func (x *GetFollowersRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[34] + mi := &file_spis_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1940,7 +2043,7 @@ func (x *GetFollowersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFollowersRequest.ProtoReflect.Descriptor instead. func (*GetFollowersRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{34} + return file_spis_proto_rawDescGZIP(), []int{36} } func (x *GetFollowersRequest) GetUsername() string { @@ -1966,7 +2069,7 @@ type GetFollowersResult struct { func (x *GetFollowersResult) Reset() { *x = GetFollowersResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[35] + mi := &file_spis_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1979,7 +2082,7 @@ func (x *GetFollowersResult) String() string { func (*GetFollowersResult) ProtoMessage() {} func (x *GetFollowersResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[35] + mi := &file_spis_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1992,7 +2095,7 @@ func (x *GetFollowersResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFollowersResult.ProtoReflect.Descriptor instead. func (*GetFollowersResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{35} + return file_spis_proto_rawDescGZIP(), []int{37} } func (x *GetFollowersResult) GetContext() string { @@ -2050,7 +2153,7 @@ type GetFollowingRequest struct { func (x *GetFollowingRequest) Reset() { *x = GetFollowingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[36] + mi := &file_spis_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2063,7 +2166,7 @@ func (x *GetFollowingRequest) String() string { func (*GetFollowingRequest) ProtoMessage() {} func (x *GetFollowingRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[36] + mi := &file_spis_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2076,7 +2179,7 @@ func (x *GetFollowingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFollowingRequest.ProtoReflect.Descriptor instead. func (*GetFollowingRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{36} + return file_spis_proto_rawDescGZIP(), []int{38} } func (x *GetFollowingRequest) GetUsername() string { @@ -2102,7 +2205,7 @@ type GetFollowingResult struct { func (x *GetFollowingResult) Reset() { *x = GetFollowingResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[37] + mi := &file_spis_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2115,7 +2218,7 @@ func (x *GetFollowingResult) String() string { func (*GetFollowingResult) ProtoMessage() {} func (x *GetFollowingResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[37] + mi := &file_spis_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2128,7 +2231,7 @@ func (x *GetFollowingResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFollowingResult.ProtoReflect.Descriptor instead. func (*GetFollowingResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{37} + return file_spis_proto_rawDescGZIP(), []int{39} } func (x *GetFollowingResult) GetContext() string { @@ -2187,7 +2290,7 @@ type PostToOutboxRequest struct { func (x *PostToOutboxRequest) Reset() { *x = PostToOutboxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[38] + mi := &file_spis_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2200,7 +2303,7 @@ func (x *PostToOutboxRequest) String() string { func (*PostToOutboxRequest) ProtoMessage() {} func (x *PostToOutboxRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[38] + mi := &file_spis_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2213,7 +2316,7 @@ func (x *PostToOutboxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostToOutboxRequest.ProtoReflect.Descriptor instead. func (*PostToOutboxRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{38} + return file_spis_proto_rawDescGZIP(), []int{40} } func (x *PostToOutboxRequest) GetUsername() string { @@ -2241,7 +2344,7 @@ type PostToOutboxResult struct { func (x *PostToOutboxResult) Reset() { *x = PostToOutboxResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[39] + mi := &file_spis_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2254,7 +2357,7 @@ func (x *PostToOutboxResult) String() string { func (*PostToOutboxResult) ProtoMessage() {} func (x *PostToOutboxResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[39] + mi := &file_spis_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2267,7 +2370,7 @@ func (x *PostToOutboxResult) ProtoReflect() protoreflect.Message { // Deprecated: Use PostToOutboxResult.ProtoReflect.Descriptor instead. func (*PostToOutboxResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{39} + return file_spis_proto_rawDescGZIP(), []int{41} } func (x *PostToOutboxResult) GetBody() []byte { @@ -2290,7 +2393,7 @@ type GetOutboxRequest struct { func (x *GetOutboxRequest) Reset() { *x = GetOutboxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[40] + mi := &file_spis_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2303,7 +2406,7 @@ func (x *GetOutboxRequest) String() string { func (*GetOutboxRequest) ProtoMessage() {} func (x *GetOutboxRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[40] + mi := &file_spis_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2316,7 +2419,7 @@ func (x *GetOutboxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOutboxRequest.ProtoReflect.Descriptor instead. func (*GetOutboxRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{40} + return file_spis_proto_rawDescGZIP(), []int{42} } func (x *GetOutboxRequest) GetUsername() string { @@ -2342,7 +2445,7 @@ type GetOutboxResult struct { func (x *GetOutboxResult) Reset() { *x = GetOutboxResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[41] + mi := &file_spis_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2355,7 +2458,7 @@ func (x *GetOutboxResult) String() string { func (*GetOutboxResult) ProtoMessage() {} func (x *GetOutboxResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[41] + mi := &file_spis_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2368,7 +2471,7 @@ func (x *GetOutboxResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOutboxResult.ProtoReflect.Descriptor instead. func (*GetOutboxResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{41} + return file_spis_proto_rawDescGZIP(), []int{43} } func (x *GetOutboxResult) GetContext() string { @@ -2427,7 +2530,7 @@ type PostToInboxRequest struct { func (x *PostToInboxRequest) Reset() { *x = PostToInboxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[42] + mi := &file_spis_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2440,7 +2543,7 @@ func (x *PostToInboxRequest) String() string { func (*PostToInboxRequest) ProtoMessage() {} func (x *PostToInboxRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[42] + mi := &file_spis_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2453,7 +2556,7 @@ func (x *PostToInboxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostToInboxRequest.ProtoReflect.Descriptor instead. func (*PostToInboxRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{42} + return file_spis_proto_rawDescGZIP(), []int{44} } func (x *PostToInboxRequest) GetUsername() string { @@ -2481,7 +2584,7 @@ type PostToInboxResult struct { func (x *PostToInboxResult) Reset() { *x = PostToInboxResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[43] + mi := &file_spis_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2494,7 +2597,7 @@ func (x *PostToInboxResult) String() string { func (*PostToInboxResult) ProtoMessage() {} func (x *PostToInboxResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[43] + mi := &file_spis_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2507,7 +2610,7 @@ func (x *PostToInboxResult) ProtoReflect() protoreflect.Message { // Deprecated: Use PostToInboxResult.ProtoReflect.Descriptor instead. func (*PostToInboxResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{43} + return file_spis_proto_rawDescGZIP(), []int{45} } func (x *PostToInboxResult) GetBody() []byte { @@ -2530,7 +2633,7 @@ type GetInboxRequest struct { func (x *GetInboxRequest) Reset() { *x = GetInboxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[44] + mi := &file_spis_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2543,7 +2646,7 @@ func (x *GetInboxRequest) String() string { func (*GetInboxRequest) ProtoMessage() {} func (x *GetInboxRequest) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[44] + mi := &file_spis_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2556,7 +2659,7 @@ func (x *GetInboxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInboxRequest.ProtoReflect.Descriptor instead. func (*GetInboxRequest) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{44} + return file_spis_proto_rawDescGZIP(), []int{46} } func (x *GetInboxRequest) GetUsername() string { @@ -2582,7 +2685,7 @@ type GetInboxResult struct { func (x *GetInboxResult) Reset() { *x = GetInboxResult{} if protoimpl.UnsafeEnabled { - mi := &file_spis_proto_msgTypes[45] + mi := &file_spis_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2595,7 +2698,7 @@ func (x *GetInboxResult) String() string { func (*GetInboxResult) ProtoMessage() {} func (x *GetInboxResult) ProtoReflect() protoreflect.Message { - mi := &file_spis_proto_msgTypes[45] + mi := &file_spis_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2608,7 +2711,7 @@ func (x *GetInboxResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetInboxResult.ProtoReflect.Descriptor instead. func (*GetInboxResult) Descriptor() ([]byte, []int) { - return file_spis_proto_rawDescGZIP(), []int{45} + return file_spis_proto_rawDescGZIP(), []int{47} } func (x *GetInboxResult) GetContext() string { @@ -2670,233 +2773,242 @@ var file_spis_proto_rawDesc = []byte{ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x1f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, - 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x0d, 0x53, 0x69, - 0x67, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0c, 0x53, 0x69, 0x67, - 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x32, 0x0a, 0x1c, 0x52, 0x65, - 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x4f, - 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, - 0x24, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x40, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x22, 0xa0, - 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, - 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x22, 0x63, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x40, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x72, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, - 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x4c, 0x6f, - 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2e, 0x0a, 0x10, 0x57, 0x65, - 0x62, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x76, 0x0a, 0x0f, 0x57, 0x65, - 0x62, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x4c, 0x69, 0x6e, - 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x22, 0x2d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xe5, 0x03, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, - 0x62, 0x6f, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, - 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, - 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x50, 0x75, 0x62, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, - 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x46, 0x6f, 0x6c, 0x6c, - 0x6f, 0x77, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x63, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x63, 0x63, 0x74, 0x22, 0x25, - 0x0a, 0x11, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2f, 0x0a, 0x1b, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x48, 0x0a, 0x1a, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x22, 0x31, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x22, 0x31, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x22, 0x3e, 0x0a, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x6f, - 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, - 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x28, 0x0a, - 0x12, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x2e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, 0x75, - 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, - 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x1f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x41, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x0d, 0x53, + 0x69, 0x67, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0c, 0x53, 0x69, + 0x67, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x32, 0x0a, 0x1c, 0x52, + 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, + 0x4f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0x24, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x40, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x22, + 0xa0, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, + 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x22, 0x63, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, + 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, + 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0x40, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x72, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x6f, + 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x4c, + 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2e, 0x0a, 0x10, 0x57, + 0x65, 0x62, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x76, 0x0a, 0x0f, 0x57, + 0x65, 0x62, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x4c, 0x69, + 0x6e, 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xe5, 0x03, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x62, 0x6f, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x62, 0x6f, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x04, 0x69, 0x63, 0x6f, + 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x12, 0x46, 0x6f, 0x6c, + 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, + 0x63, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x63, 0x63, 0x74, 0x22, + 0x25, 0x0a, 0x11, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2f, 0x0a, 0x1b, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0x48, 0x0a, 0x1a, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x22, 0x31, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, - 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x49, 0x6e, 0x62, - 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x27, 0x0a, 0x11, 0x50, 0x6f, 0x73, - 0x74, 0x54, 0x6f, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x04, 0x5a, 0x02, - 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x22, 0x31, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, + 0x77, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, + 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x54, + 0x6f, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x28, + 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x2e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x40, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x6f, 0x49, 0x6e, + 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x27, 0x0a, 0x11, 0x50, 0x6f, + 0x73, 0x74, 0x54, 0x6f, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x40, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x75, + 0x62, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x04, 0x5a, + 0x02, 0x2e, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2911,69 +3023,71 @@ func file_spis_proto_rawDescGZIP() []byte { return file_spis_proto_rawDescData } -var file_spis_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_spis_proto_msgTypes = make([]protoimpl.MessageInfo, 48) var file_spis_proto_goTypes = []interface{}{ (*SystemCallRequest)(nil), // 0: protobuf.SystemCallRequest (*SystemCallResult)(nil), // 1: protobuf.SystemCallResult (*EchoRequest)(nil), // 2: protobuf.EchoRequest (*EchoResult)(nil), // 3: protobuf.EchoResult - (*CheckUsernameAvailabilityRequest)(nil), // 4: protobuf.CheckUsernameAvailabilityRequest - (*CheckUsernameAvailabilityResult)(nil), // 5: protobuf.CheckUsernameAvailabilityResult - (*SignupRequest)(nil), // 6: protobuf.SignupRequest - (*SignupResult)(nil), // 7: protobuf.SignupResult - (*ResendVerificationCodeRequest)(nil), // 8: protobuf.ResendVerificationCodeRequest - (*ResendVerificationCodeResult)(nil), // 9: protobuf.ResendVerificationCodeResult - (*VerifyRequest)(nil), // 10: protobuf.VerifyRequest - (*VerifyResult)(nil), // 11: protobuf.VerifyResult - (*LoginRequest)(nil), // 12: protobuf.LoginRequest - (*LoginResult)(nil), // 13: protobuf.LoginResult - (*GetProfileByUserRequest)(nil), // 14: protobuf.GetProfileByUserRequest - (*GetProfileByUserResult)(nil), // 15: protobuf.GetProfileByUserResult - (*UpdateProfileByUserRequest)(nil), // 16: protobuf.UpdateProfileByUserRequest - (*UpdateProfileByUserResult)(nil), // 17: protobuf.UpdateProfileByUserResult - (*ChangePasswordRequest)(nil), // 18: protobuf.ChangePasswordRequest - (*ChangePasswordResult)(nil), // 19: protobuf.ChangePasswordResult - (*ResetPasswordRequest)(nil), // 20: protobuf.ResetPasswordRequest - (*ResetPasswordResult)(nil), // 21: protobuf.ResetPasswordResult - (*LogoutRequest)(nil), // 22: protobuf.LogoutRequest - (*LogoutResult)(nil), // 23: protobuf.LogoutResult - (*WebfingerRequest)(nil), // 24: protobuf.WebfingerRequest - (*WebfingerResult)(nil), // 25: protobuf.WebfingerResult - (*GetPackagesRequest)(nil), // 26: protobuf.GetPackagesRequest - (*GetPackagesResult)(nil), // 27: protobuf.GetPackagesResult - (*GetActorRequest)(nil), // 28: protobuf.GetActorRequest - (*GetActorResult)(nil), // 29: protobuf.GetActorResult - (*FollowActorRequest)(nil), // 30: protobuf.FollowActorRequest - (*FollowActorResult)(nil), // 31: protobuf.FollowActorResult - (*AuthorizeInteractionRequest)(nil), // 32: protobuf.AuthorizeInteractionRequest - (*AuthorizeInteractionResult)(nil), // 33: protobuf.AuthorizeInteractionResult - (*GetFollowersRequest)(nil), // 34: protobuf.GetFollowersRequest - (*GetFollowersResult)(nil), // 35: protobuf.GetFollowersResult - (*GetFollowingRequest)(nil), // 36: protobuf.GetFollowingRequest - (*GetFollowingResult)(nil), // 37: protobuf.GetFollowingResult - (*PostToOutboxRequest)(nil), // 38: protobuf.PostToOutboxRequest - (*PostToOutboxResult)(nil), // 39: protobuf.PostToOutboxResult - (*GetOutboxRequest)(nil), // 40: protobuf.GetOutboxRequest - (*GetOutboxResult)(nil), // 41: protobuf.GetOutboxResult - (*PostToInboxRequest)(nil), // 42: protobuf.PostToInboxRequest - (*PostToInboxResult)(nil), // 43: protobuf.PostToInboxResult - (*GetInboxRequest)(nil), // 44: protobuf.GetInboxRequest - (*GetInboxResult)(nil), // 45: protobuf.GetInboxResult - (*Document)(nil), // 46: protobuf.Document - (*ActivityPubLink)(nil), // 47: protobuf.ActivityPubLink - (*ActivityPubMedia)(nil), // 48: protobuf.ActivityPubMedia - (*ActivityPubPublicKey)(nil), // 49: protobuf.ActivityPubPublicKey - (*ActivityPubActivity)(nil), // 50: protobuf.ActivityPubActivity + (*GetServerConfigurationRequest)(nil), // 4: protobuf.GetServerConfigurationRequest + (*GetServerConfigurationResult)(nil), // 5: protobuf.GetServerConfigurationResult + (*CheckUsernameAvailabilityRequest)(nil), // 6: protobuf.CheckUsernameAvailabilityRequest + (*CheckUsernameAvailabilityResult)(nil), // 7: protobuf.CheckUsernameAvailabilityResult + (*SignupRequest)(nil), // 8: protobuf.SignupRequest + (*SignupResult)(nil), // 9: protobuf.SignupResult + (*ResendVerificationCodeRequest)(nil), // 10: protobuf.ResendVerificationCodeRequest + (*ResendVerificationCodeResult)(nil), // 11: protobuf.ResendVerificationCodeResult + (*VerifyRequest)(nil), // 12: protobuf.VerifyRequest + (*VerifyResult)(nil), // 13: protobuf.VerifyResult + (*LoginRequest)(nil), // 14: protobuf.LoginRequest + (*LoginResult)(nil), // 15: protobuf.LoginResult + (*GetProfileByUserRequest)(nil), // 16: protobuf.GetProfileByUserRequest + (*GetProfileByUserResult)(nil), // 17: protobuf.GetProfileByUserResult + (*UpdateProfileByUserRequest)(nil), // 18: protobuf.UpdateProfileByUserRequest + (*UpdateProfileByUserResult)(nil), // 19: protobuf.UpdateProfileByUserResult + (*ChangePasswordRequest)(nil), // 20: protobuf.ChangePasswordRequest + (*ChangePasswordResult)(nil), // 21: protobuf.ChangePasswordResult + (*ResetPasswordRequest)(nil), // 22: protobuf.ResetPasswordRequest + (*ResetPasswordResult)(nil), // 23: protobuf.ResetPasswordResult + (*LogoutRequest)(nil), // 24: protobuf.LogoutRequest + (*LogoutResult)(nil), // 25: protobuf.LogoutResult + (*WebfingerRequest)(nil), // 26: protobuf.WebfingerRequest + (*WebfingerResult)(nil), // 27: protobuf.WebfingerResult + (*GetPackagesRequest)(nil), // 28: protobuf.GetPackagesRequest + (*GetPackagesResult)(nil), // 29: protobuf.GetPackagesResult + (*GetActorRequest)(nil), // 30: protobuf.GetActorRequest + (*GetActorResult)(nil), // 31: protobuf.GetActorResult + (*FollowActorRequest)(nil), // 32: protobuf.FollowActorRequest + (*FollowActorResult)(nil), // 33: protobuf.FollowActorResult + (*AuthorizeInteractionRequest)(nil), // 34: protobuf.AuthorizeInteractionRequest + (*AuthorizeInteractionResult)(nil), // 35: protobuf.AuthorizeInteractionResult + (*GetFollowersRequest)(nil), // 36: protobuf.GetFollowersRequest + (*GetFollowersResult)(nil), // 37: protobuf.GetFollowersResult + (*GetFollowingRequest)(nil), // 38: protobuf.GetFollowingRequest + (*GetFollowingResult)(nil), // 39: protobuf.GetFollowingResult + (*PostToOutboxRequest)(nil), // 40: protobuf.PostToOutboxRequest + (*PostToOutboxResult)(nil), // 41: protobuf.PostToOutboxResult + (*GetOutboxRequest)(nil), // 42: protobuf.GetOutboxRequest + (*GetOutboxResult)(nil), // 43: protobuf.GetOutboxResult + (*PostToInboxRequest)(nil), // 44: protobuf.PostToInboxRequest + (*PostToInboxResult)(nil), // 45: protobuf.PostToInboxResult + (*GetInboxRequest)(nil), // 46: protobuf.GetInboxRequest + (*GetInboxResult)(nil), // 47: protobuf.GetInboxResult + (*Document)(nil), // 48: protobuf.Document + (*ActivityPubLink)(nil), // 49: protobuf.ActivityPubLink + (*ActivityPubMedia)(nil), // 50: protobuf.ActivityPubMedia + (*ActivityPubPublicKey)(nil), // 51: protobuf.ActivityPubPublicKey + (*ActivityPubActivity)(nil), // 52: protobuf.ActivityPubActivity } var file_spis_proto_depIdxs = []int32{ - 46, // 0: protobuf.EchoRequest.document:type_name -> protobuf.Document - 46, // 1: protobuf.EchoResult.document:type_name -> protobuf.Document - 47, // 2: protobuf.WebfingerResult.links:type_name -> protobuf.ActivityPubLink - 48, // 3: protobuf.GetActorResult.icon:type_name -> protobuf.ActivityPubMedia - 48, // 4: protobuf.GetActorResult.image:type_name -> protobuf.ActivityPubMedia - 49, // 5: protobuf.GetActorResult.publicKey:type_name -> protobuf.ActivityPubPublicKey - 50, // 6: protobuf.GetOutboxResult.orderedItems:type_name -> protobuf.ActivityPubActivity - 50, // 7: protobuf.GetInboxResult.orderedItems:type_name -> protobuf.ActivityPubActivity + 48, // 0: protobuf.EchoRequest.document:type_name -> protobuf.Document + 48, // 1: protobuf.EchoResult.document:type_name -> protobuf.Document + 49, // 2: protobuf.WebfingerResult.links:type_name -> protobuf.ActivityPubLink + 50, // 3: protobuf.GetActorResult.icon:type_name -> protobuf.ActivityPubMedia + 50, // 4: protobuf.GetActorResult.image:type_name -> protobuf.ActivityPubMedia + 51, // 5: protobuf.GetActorResult.publicKey:type_name -> protobuf.ActivityPubPublicKey + 52, // 6: protobuf.GetOutboxResult.orderedItems:type_name -> protobuf.ActivityPubActivity + 52, // 7: protobuf.GetInboxResult.orderedItems:type_name -> protobuf.ActivityPubActivity 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name @@ -3037,7 +3151,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckUsernameAvailabilityRequest); i { + switch v := v.(*GetServerConfigurationRequest); i { case 0: return &v.state case 1: @@ -3049,7 +3163,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckUsernameAvailabilityResult); i { + switch v := v.(*GetServerConfigurationResult); i { case 0: return &v.state case 1: @@ -3061,7 +3175,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignupRequest); i { + switch v := v.(*CheckUsernameAvailabilityRequest); i { case 0: return &v.state case 1: @@ -3073,7 +3187,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignupResult); i { + switch v := v.(*CheckUsernameAvailabilityResult); i { case 0: return &v.state case 1: @@ -3085,7 +3199,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResendVerificationCodeRequest); i { + switch v := v.(*SignupRequest); i { case 0: return &v.state case 1: @@ -3097,7 +3211,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResendVerificationCodeResult); i { + switch v := v.(*SignupResult); i { case 0: return &v.state case 1: @@ -3109,7 +3223,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyRequest); i { + switch v := v.(*ResendVerificationCodeRequest); i { case 0: return &v.state case 1: @@ -3121,7 +3235,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyResult); i { + switch v := v.(*ResendVerificationCodeResult); i { case 0: return &v.state case 1: @@ -3133,7 +3247,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginRequest); i { + switch v := v.(*VerifyRequest); i { case 0: return &v.state case 1: @@ -3145,7 +3259,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginResult); i { + switch v := v.(*VerifyResult); i { case 0: return &v.state case 1: @@ -3157,7 +3271,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileByUserRequest); i { + switch v := v.(*LoginRequest); i { case 0: return &v.state case 1: @@ -3169,7 +3283,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileByUserResult); i { + switch v := v.(*LoginResult); i { case 0: return &v.state case 1: @@ -3181,7 +3295,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateProfileByUserRequest); i { + switch v := v.(*GetProfileByUserRequest); i { case 0: return &v.state case 1: @@ -3193,7 +3307,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateProfileByUserResult); i { + switch v := v.(*GetProfileByUserResult); i { case 0: return &v.state case 1: @@ -3205,7 +3319,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePasswordRequest); i { + switch v := v.(*UpdateProfileByUserRequest); i { case 0: return &v.state case 1: @@ -3217,7 +3331,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePasswordResult); i { + switch v := v.(*UpdateProfileByUserResult); i { case 0: return &v.state case 1: @@ -3229,7 +3343,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResetPasswordRequest); i { + switch v := v.(*ChangePasswordRequest); i { case 0: return &v.state case 1: @@ -3241,7 +3355,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResetPasswordResult); i { + switch v := v.(*ChangePasswordResult); i { case 0: return &v.state case 1: @@ -3253,7 +3367,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogoutRequest); i { + switch v := v.(*ResetPasswordRequest); i { case 0: return &v.state case 1: @@ -3265,7 +3379,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogoutResult); i { + switch v := v.(*ResetPasswordResult); i { case 0: return &v.state case 1: @@ -3277,7 +3391,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebfingerRequest); i { + switch v := v.(*LogoutRequest); i { case 0: return &v.state case 1: @@ -3289,7 +3403,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebfingerResult); i { + switch v := v.(*LogoutResult); i { case 0: return &v.state case 1: @@ -3301,7 +3415,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPackagesRequest); i { + switch v := v.(*WebfingerRequest); i { case 0: return &v.state case 1: @@ -3313,7 +3427,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPackagesResult); i { + switch v := v.(*WebfingerResult); i { case 0: return &v.state case 1: @@ -3325,7 +3439,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActorRequest); i { + switch v := v.(*GetPackagesRequest); i { case 0: return &v.state case 1: @@ -3337,7 +3451,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActorResult); i { + switch v := v.(*GetPackagesResult); i { case 0: return &v.state case 1: @@ -3349,7 +3463,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FollowActorRequest); i { + switch v := v.(*GetActorRequest); i { case 0: return &v.state case 1: @@ -3361,7 +3475,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FollowActorResult); i { + switch v := v.(*GetActorResult); i { case 0: return &v.state case 1: @@ -3373,7 +3487,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthorizeInteractionRequest); i { + switch v := v.(*FollowActorRequest); i { case 0: return &v.state case 1: @@ -3385,7 +3499,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthorizeInteractionResult); i { + switch v := v.(*FollowActorResult); i { case 0: return &v.state case 1: @@ -3397,7 +3511,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFollowersRequest); i { + switch v := v.(*AuthorizeInteractionRequest); i { case 0: return &v.state case 1: @@ -3409,7 +3523,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFollowersResult); i { + switch v := v.(*AuthorizeInteractionResult); i { case 0: return &v.state case 1: @@ -3421,7 +3535,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFollowingRequest); i { + switch v := v.(*GetFollowersRequest); i { case 0: return &v.state case 1: @@ -3433,7 +3547,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFollowingResult); i { + switch v := v.(*GetFollowersResult); i { case 0: return &v.state case 1: @@ -3445,7 +3559,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostToOutboxRequest); i { + switch v := v.(*GetFollowingRequest); i { case 0: return &v.state case 1: @@ -3457,7 +3571,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostToOutboxResult); i { + switch v := v.(*GetFollowingResult); i { case 0: return &v.state case 1: @@ -3469,7 +3583,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOutboxRequest); i { + switch v := v.(*PostToOutboxRequest); i { case 0: return &v.state case 1: @@ -3481,7 +3595,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOutboxResult); i { + switch v := v.(*PostToOutboxResult); i { case 0: return &v.state case 1: @@ -3493,7 +3607,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostToInboxRequest); i { + switch v := v.(*GetOutboxRequest); i { case 0: return &v.state case 1: @@ -3505,7 +3619,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostToInboxResult); i { + switch v := v.(*GetOutboxResult); i { case 0: return &v.state case 1: @@ -3517,7 +3631,7 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInboxRequest); i { + switch v := v.(*PostToInboxRequest); i { case 0: return &v.state case 1: @@ -3529,6 +3643,30 @@ func file_spis_proto_init() { } } file_spis_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostToInboxResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spis_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInboxRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spis_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInboxResult); i { case 0: return &v.state @@ -3547,7 +3685,7 @@ func file_spis_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spis_proto_rawDesc, NumEnums: 0, - NumMessages: 46, + NumMessages: 48, NumExtensions: 0, NumServices: 0, }, diff --git a/components/api/protobuf/spis.proto b/components/api/protobuf/spis.proto index 3815ee0..1713fd3 100644 --- a/components/api/protobuf/spis.proto +++ b/components/api/protobuf/spis.proto @@ -25,6 +25,17 @@ message EchoResult { Document document = 0x00000001; } +// API: GetServerConfiguration +//----------------------------------------------------------- +message GetServerConfigurationRequest { +} + +message GetServerConfigurationResult { + string product = 0x00000001; + string environment = 0x00000002; + string fqdn = 0x00000003; +} + // API: CheckUsernameAvailability //----------------------------------------------------------- message CheckUsernameAvailabilityRequest { diff --git a/components/api/services/get_server_configuration_service.go b/components/api/services/get_server_configuration_service.go new file mode 100644 index 0000000..de2cba5 --- /dev/null +++ b/components/api/services/get_server_configuration_service.go @@ -0,0 +1,25 @@ +package services + +import ( + . "github.com/reiver/greatape/components/api/protobuf" + . "github.com/reiver/greatape/components/contracts" + . "github.com/reiver/greatape/components/core" + . "github.com/xeronith/diamante/contracts/service" +) + +func GetServerConfigurationService(context IContext, input *GetServerConfigurationRequest) (result *GetServerConfigurationResult, err error) { + source := "get_server_configuration" + /* //////// */ Conductor.LogRemoteCall(context, INIT, source, input, result, err) + defer func() { Conductor.LogRemoteCall(context, DONE, source, input, result, err) }() + + commandResult, err := Conductor.GetServerConfiguration(context.Identity()) + if err != nil { + return nil, err + } + + result = context.ResultContainer().(*GetServerConfigurationResult) + result.Product = commandResult.Product() + result.Environment = commandResult.Environment() + result.Fqdn = commandResult.Fqdn() + return result, nil +} diff --git a/components/contracts/api.go b/components/contracts/api.go index b33752a..574fe3a 100644 --- a/components/contracts/api.go +++ b/components/contracts/api.go @@ -8,6 +8,7 @@ type IApi interface { //API Methods SystemCall(*SystemCallRequest) (*SystemCallResult, error) Echo(*EchoRequest) (*EchoResult, error) + GetServerConfiguration(*GetServerConfigurationRequest) (*GetServerConfigurationResult, error) CheckUsernameAvailability(*CheckUsernameAvailabilityRequest) (*CheckUsernameAvailabilityResult, error) Signup(*SignupRequest) (*SignupResult, error) ResendVerificationCode(*ResendVerificationCodeRequest) (*ResendVerificationCodeResult, error) diff --git a/components/contracts/opcodes.go b/components/contracts/opcodes.go index 8441da0..fa58f67 100644 --- a/components/contracts/opcodes.go +++ b/components/contracts/opcodes.go @@ -12,6 +12,10 @@ const ( ECHO_REQUEST = 0x0541BD72 ECHO_RESULT = 0xAB2FF7D4 + //GetServerConfigurationOperation + GET_SERVER_CONFIGURATION_REQUEST = 0xC89C311F + GET_SERVER_CONFIGURATION_RESULT = 0xA1A50921 + //CheckUsernameAvailabilityOperation CHECK_USERNAME_AVAILABILITY_REQUEST = 0xA9501A55 CHECK_USERNAME_AVAILABILITY_RESULT = 0x067190FF @@ -101,6 +105,8 @@ var OPCODES = Opcodes{ 0x00000000: "N/A", 0x0541BD72: "ECHO", 0xAB2FF7D4: "Echo", + 0xC89C311F: "GET_SERVER_CONFIGURATION", + 0xA1A50921: "GetServerConfiguration", 0xA9501A55: "CHECK_USERNAME_AVAILABILITY", 0x067190FF: "CheckUsernameAvailability", 0x48DB23BF: "SIGNUP", diff --git a/components/contracts/spi.go b/components/contracts/spi.go index 2d66bb6..7d56bf7 100644 --- a/components/contracts/spi.go +++ b/components/contracts/spi.go @@ -56,6 +56,7 @@ type ( Filter(predicate SpiFilterPredicate) ISpiCollection Map(predicate SpiMapPredicate) ISpiCollection Echo(document IDocument, editor Identity) (IEchoResult, error) + GetServerConfiguration(editor Identity) (IGetServerConfigurationResult, error) CheckUsernameAvailability(username string, editor Identity) (ICheckUsernameAvailabilityResult, error) Signup(username string, email string, password string, editor Identity) (ISignupResult, error) ResendVerificationCode(email string, editor Identity) (IResendVerificationCodeResult, error) @@ -83,6 +84,12 @@ type ( Document() IDocument } + IGetServerConfigurationResult interface { + Product() string + Environment() string + Fqdn() string + } + ICheckUsernameAvailabilityResult interface { IsAvailable() bool } diff --git a/components/contracts/system_component.go b/components/contracts/system_component.go index 999b1dd..4a8647f 100644 --- a/components/contracts/system_component.go +++ b/components/contracts/system_component.go @@ -258,6 +258,7 @@ type ( RemoveSpi(id int64, editor Identity) (ISpi, error) RemoveSpiAtomic(transaction ITransaction, id int64, editor Identity) (ISpi, error) Echo(document IDocument, editor Identity) (IEchoResult, error) + GetServerConfiguration(editor Identity) (IGetServerConfigurationResult, error) CheckUsernameAvailability(username string, editor Identity) (ICheckUsernameAvailabilityResult, error) Signup(username string, email string, password string, editor Identity) (ISignupResult, error) ResendVerificationCode(email string, editor Identity) (IResendVerificationCodeResult, error) @@ -298,6 +299,7 @@ type ( NewActivityPubFollower(id int64, handle string, inbox string, subject string, activity string, accepted bool) (IActivityPubFollower, error) NewSpi() (ISpi, error) NewEchoResult(document IDocument, ignored interface{}) IEchoResult + NewGetServerConfigurationResult(product string, environment string, fqdn string, ignored interface{}) IGetServerConfigurationResult NewCheckUsernameAvailabilityResult(isAvailable bool, ignored interface{}) ICheckUsernameAvailabilityResult NewSignupResult(token string, code string, ignored interface{}) ISignupResult NewResendVerificationCodeResult(code string, ignored interface{}) IResendVerificationCodeResult diff --git a/components/contracts/system_dispatcher.go b/components/contracts/system_dispatcher.go index 06d6dc4..16f5d84 100644 --- a/components/contracts/system_dispatcher.go +++ b/components/contracts/system_dispatcher.go @@ -1033,6 +1033,7 @@ type IDispatcher interface { // the transaction if used in an x.Atomic context. This method is synchronous. RemoveSpi(id int64) ISpi Echo(document IDocument) (IEchoResult, error) + GetServerConfiguration() (IGetServerConfigurationResult, error) CheckUsernameAvailability(username string) (ICheckUsernameAvailabilityResult, error) Signup(username string, email string, password string) (ISignupResult, error) ResendVerificationCode(email string) (IResendVerificationCodeResult, error) @@ -1125,6 +1126,8 @@ type IDispatcher interface { NewSpis() ISpiCollection // NewEchoResult creates a new result container for 'Echo' system action. NewEchoResult(document IDocument) IEchoResult + // NewGetServerConfigurationResult creates a new result container for 'Get Server Configuration' system action. + NewGetServerConfigurationResult(product string, environment string, fqdn string) IGetServerConfigurationResult // NewCheckUsernameAvailabilityResult creates a new result container for 'Check Username Availability' system action. NewCheckUsernameAvailabilityResult(isAvailable bool) ICheckUsernameAvailabilityResult // NewSignupResult creates a new result container for 'Signup' system action. diff --git a/components/core/api_methods.go b/components/core/api_methods.go index e13ed61..763e9e3 100644 --- a/components/core/api_methods.go +++ b/components/core/api_methods.go @@ -25,6 +25,16 @@ func (api *api) Echo(request *EchoRequest) (*EchoResult, error) { } } +func (api *api) GetServerConfiguration(request *GetServerConfigurationRequest) (*GetServerConfigurationResult, error) { + result, err := api.call(GET_SERVER_CONFIGURATION_REQUEST, request) + + if err != nil { + return nil, err + } else { + return result.(*GetServerConfigurationResult), nil + } +} + func (api *api) CheckUsernameAvailability(request *CheckUsernameAvailabilityRequest) (*CheckUsernameAvailabilityResult, error) { result, err := api.call(CHECK_USERNAME_AVAILABILITY_REQUEST, request) @@ -238,6 +248,7 @@ func (api *api) GetInbox(request *GetInboxRequest) (*GetInboxResult, error) { func init() { API_RESULT[SYSTEM_CALL_RESULT] = SystemCallResult{} API_RESULT[ECHO_RESULT] = EchoResult{} + API_RESULT[GET_SERVER_CONFIGURATION_RESULT] = GetServerConfigurationResult{} API_RESULT[CHECK_USERNAME_AVAILABILITY_RESULT] = CheckUsernameAvailabilityResult{} API_RESULT[SIGNUP_RESULT] = SignupResult{} API_RESULT[RESEND_VERIFICATION_CODE_RESULT] = ResendVerificationCodeResult{} diff --git a/components/core/initializer.go b/components/core/initializer.go index e91fb7d..d46d3ad 100644 --- a/components/core/initializer.go +++ b/components/core/initializer.go @@ -1098,6 +1098,10 @@ func (conductor *conductor) Echo(document IDocument, editor Identity) (IEchoResu return conductor.spiManager.Echo(document, editor) } +func (conductor *conductor) GetServerConfiguration(editor Identity) (IGetServerConfigurationResult, error) { + return conductor.spiManager.GetServerConfiguration(editor) +} + func (conductor *conductor) CheckUsernameAvailability(username string, editor Identity) (ICheckUsernameAvailabilityResult, error) { return conductor.spiManager.CheckUsernameAvailability(username, editor) } @@ -1254,6 +1258,10 @@ func (conductor *conductor) NewEchoResult(document IDocument, _ interface{}) IEc return NewEchoResult(document, nil) } +func (conductor *conductor) NewGetServerConfigurationResult(product string, environment string, fqdn string, _ interface{}) IGetServerConfigurationResult { + return NewGetServerConfigurationResult(product, environment, fqdn, nil) +} + func (conductor *conductor) NewCheckUsernameAvailabilityResult(isAvailable bool, _ interface{}) ICheckUsernameAvailabilityResult { return NewCheckUsernameAvailabilityResult(isAvailable, nil) } diff --git a/components/core/spi.go b/components/core/spi.go index fb34a08..d2491c9 100644 --- a/components/core/spi.go +++ b/components/core/spi.go @@ -244,6 +244,10 @@ func (dispatcher *dispatcher) Echo(document IDocument) (IEchoResult, error) { return dispatcher.conductor.SpiManager().Echo(document, dispatcher.identity) } +func (dispatcher *dispatcher) GetServerConfiguration() (IGetServerConfigurationResult, error) { + return dispatcher.conductor.SpiManager().GetServerConfiguration(dispatcher.identity) +} + func (dispatcher *dispatcher) CheckUsernameAvailability(username string) (ICheckUsernameAvailabilityResult, error) { return dispatcher.conductor.SpiManager().CheckUsernameAvailability(username, dispatcher.identity) } diff --git a/components/core/spi_manager.go b/components/core/spi_manager.go index 7d3f6a0..9003ebc 100644 --- a/components/core/spi_manager.go +++ b/components/core/spi_manager.go @@ -228,6 +228,53 @@ func (manager *spiManager) Echo(document IDocument, editor Identity) (result IEc } } +//region IGetServerConfigurationResult Implementation + +type getServerConfigurationResult struct { + product string + environment string + fqdn string +} + +func NewGetServerConfigurationResult(product string, environment string, fqdn string, _ interface{}) IGetServerConfigurationResult { + return &getServerConfigurationResult{ + product: product, + environment: environment, + fqdn: fqdn, + } +} + +func (result getServerConfigurationResult) Product() string { + return result.product +} + +func (result getServerConfigurationResult) Environment() string { + return result.environment +} + +func (result getServerConfigurationResult) Fqdn() string { + return result.fqdn +} + +//endregion + +func (manager *spiManager) GetServerConfiguration(editor Identity) (result IGetServerConfigurationResult, err error) { + defer func() { + if reason := recover(); reason != nil { + err = manager.Error(reason) + } + }() + + editor.Lock(GET_SERVER_CONFIGURATION_REQUEST) + defer editor.Unlock(GET_SERVER_CONFIGURATION_REQUEST) + + if result, err = commands.GetServerConfiguration(NewDispatcher(Conductor, editor)); err != nil { + return nil, err + } else { + return result, nil + } +} + //region ICheckUsernameAvailabilityResult Implementation type checkUsernameAvailabilityResult struct { diff --git a/components/core/spi_manager_test.go b/components/core/spi_manager_test.go index ac5dbfe..606a8f6 100644 --- a/components/core/spi_manager_test.go +++ b/components/core/spi_manager_test.go @@ -160,6 +160,17 @@ func TestSpiManager_Echo(test *testing.T) { _ = result } +func TestSpiManager_GetServerConfiguration(test *testing.T) { + manager := Conductor.SpiManager() + + result, err := manager.GetServerConfiguration(nil) + if err != nil { + test.Fatal(err) + } + + _ = result +} + func TestSpiManager_CheckUsernameAvailability(test *testing.T) { manager := Conductor.SpiManager() diff --git a/components/core/system_results.go b/components/core/system_results.go index 05d0756..f017e03 100644 --- a/components/core/system_results.go +++ b/components/core/system_results.go @@ -8,6 +8,10 @@ func (dispatcher *dispatcher) NewEchoResult(document IDocument) IEchoResult { return NewEchoResult(document, nil) } +func (dispatcher *dispatcher) NewGetServerConfigurationResult(product string, environment string, fqdn string) IGetServerConfigurationResult { + return NewGetServerConfigurationResult(product, environment, fqdn, nil) +} + func (dispatcher *dispatcher) NewCheckUsernameAvailabilityResult(isAvailable bool) ICheckUsernameAvailabilityResult { return NewCheckUsernameAvailabilityResult(isAvailable, nil) }