From e4afbcf4e108f729cdb37378fd81122fc0e33e84 Mon Sep 17 00:00:00 2001 From: Gilbert Wong Date: Tue, 3 Oct 2023 13:56:19 -0700 Subject: [PATCH] Add get and update user plugin preferences rpcs (#2471) This adds two new endpoints `GetUserPluginPreferences` and `UpdateUserPluginPreferences` to the `UserService` --- .../registryv1alpha1connect/user.connect.go | 85 +- .../go/buf/alpha/registry/v1alpha1/user.pb.go | 1043 ++++++++++++----- proto/buf/alpha/registry/v1alpha1/user.proto | 38 + 3 files changed, 832 insertions(+), 334 deletions(-) diff --git a/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect/user.connect.go b/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect/user.connect.go index e2578a8b2e..fc1bbadb4a 100644 --- a/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect/user.connect.go +++ b/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect/user.connect.go @@ -72,6 +72,12 @@ const ( // UserServiceUpdateUserSettingsProcedure is the fully-qualified name of the UserService's // UpdateUserSettings RPC. UserServiceUpdateUserSettingsProcedure = "/buf.alpha.registry.v1alpha1.UserService/UpdateUserSettings" + // UserServiceGetUserPluginPreferencesProcedure is the fully-qualified name of the UserService's + // GetUserPluginPreferences RPC. + UserServiceGetUserPluginPreferencesProcedure = "/buf.alpha.registry.v1alpha1.UserService/GetUserPluginPreferences" + // UserServiceUpdateUserPluginPreferencesProcedure is the fully-qualified name of the UserService's + // UpdateUserPluginPreferences RPC. + UserServiceUpdateUserPluginPreferencesProcedure = "/buf.alpha.registry.v1alpha1.UserService/UpdateUserPluginPreferences" ) // UserServiceClient is a client for the buf.alpha.registry.v1alpha1.UserService service. @@ -97,6 +103,12 @@ type UserServiceClient interface { CountUsers(context.Context, *connect.Request[v1alpha1.CountUsersRequest]) (*connect.Response[v1alpha1.CountUsersResponse], error) // UpdateUserSettings update the user settings including description. UpdateUserSettings(context.Context, *connect.Request[v1alpha1.UpdateUserSettingsRequest]) (*connect.Response[v1alpha1.UpdateUserSettingsResponse], error) + // GetUserPluginPreferences returns the preferred language and plugins a user has selected in the BSR's Generated SDKs UI flow. + // If the user does not have a stored preference in the database this will return a CodeNotFound error and + // on the UI, the user will be prompted to select a language and plugins in the Generated SDKs flow. + GetUserPluginPreferences(context.Context, *connect.Request[v1alpha1.GetUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.GetUserPluginPreferencesResponse], error) + // UpdateUserPluginPreferences updates the user plugin preferences. + UpdateUserPluginPreferences(context.Context, *connect.Request[v1alpha1.UpdateUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.UpdateUserPluginPreferencesResponse], error) } // NewUserServiceClient constructs a client for the buf.alpha.registry.v1alpha1.UserService service. @@ -167,21 +179,34 @@ func NewUserServiceClient(httpClient connect.HTTPClient, baseURL string, opts .. baseURL+UserServiceUpdateUserSettingsProcedure, opts..., ), + getUserPluginPreferences: connect.NewClient[v1alpha1.GetUserPluginPreferencesRequest, v1alpha1.GetUserPluginPreferencesResponse]( + httpClient, + baseURL+UserServiceGetUserPluginPreferencesProcedure, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithClientOptions(opts...), + ), + updateUserPluginPreferences: connect.NewClient[v1alpha1.UpdateUserPluginPreferencesRequest, v1alpha1.UpdateUserPluginPreferencesResponse]( + httpClient, + baseURL+UserServiceUpdateUserPluginPreferencesProcedure, + opts..., + ), } } // userServiceClient implements UserServiceClient. type userServiceClient struct { - createUser *connect.Client[v1alpha1.CreateUserRequest, v1alpha1.CreateUserResponse] - getUser *connect.Client[v1alpha1.GetUserRequest, v1alpha1.GetUserResponse] - getUserByUsername *connect.Client[v1alpha1.GetUserByUsernameRequest, v1alpha1.GetUserByUsernameResponse] - listUsers *connect.Client[v1alpha1.ListUsersRequest, v1alpha1.ListUsersResponse] - listOrganizationUsers *connect.Client[v1alpha1.ListOrganizationUsersRequest, v1alpha1.ListOrganizationUsersResponse] - deleteUser *connect.Client[v1alpha1.DeleteUserRequest, v1alpha1.DeleteUserResponse] - deactivateUser *connect.Client[v1alpha1.DeactivateUserRequest, v1alpha1.DeactivateUserResponse] - updateUserServerRole *connect.Client[v1alpha1.UpdateUserServerRoleRequest, v1alpha1.UpdateUserServerRoleResponse] - countUsers *connect.Client[v1alpha1.CountUsersRequest, v1alpha1.CountUsersResponse] - updateUserSettings *connect.Client[v1alpha1.UpdateUserSettingsRequest, v1alpha1.UpdateUserSettingsResponse] + createUser *connect.Client[v1alpha1.CreateUserRequest, v1alpha1.CreateUserResponse] + getUser *connect.Client[v1alpha1.GetUserRequest, v1alpha1.GetUserResponse] + getUserByUsername *connect.Client[v1alpha1.GetUserByUsernameRequest, v1alpha1.GetUserByUsernameResponse] + listUsers *connect.Client[v1alpha1.ListUsersRequest, v1alpha1.ListUsersResponse] + listOrganizationUsers *connect.Client[v1alpha1.ListOrganizationUsersRequest, v1alpha1.ListOrganizationUsersResponse] + deleteUser *connect.Client[v1alpha1.DeleteUserRequest, v1alpha1.DeleteUserResponse] + deactivateUser *connect.Client[v1alpha1.DeactivateUserRequest, v1alpha1.DeactivateUserResponse] + updateUserServerRole *connect.Client[v1alpha1.UpdateUserServerRoleRequest, v1alpha1.UpdateUserServerRoleResponse] + countUsers *connect.Client[v1alpha1.CountUsersRequest, v1alpha1.CountUsersResponse] + updateUserSettings *connect.Client[v1alpha1.UpdateUserSettingsRequest, v1alpha1.UpdateUserSettingsResponse] + getUserPluginPreferences *connect.Client[v1alpha1.GetUserPluginPreferencesRequest, v1alpha1.GetUserPluginPreferencesResponse] + updateUserPluginPreferences *connect.Client[v1alpha1.UpdateUserPluginPreferencesRequest, v1alpha1.UpdateUserPluginPreferencesResponse] } // CreateUser calls buf.alpha.registry.v1alpha1.UserService.CreateUser. @@ -234,6 +259,17 @@ func (c *userServiceClient) UpdateUserSettings(ctx context.Context, req *connect return c.updateUserSettings.CallUnary(ctx, req) } +// GetUserPluginPreferences calls buf.alpha.registry.v1alpha1.UserService.GetUserPluginPreferences. +func (c *userServiceClient) GetUserPluginPreferences(ctx context.Context, req *connect.Request[v1alpha1.GetUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.GetUserPluginPreferencesResponse], error) { + return c.getUserPluginPreferences.CallUnary(ctx, req) +} + +// UpdateUserPluginPreferences calls +// buf.alpha.registry.v1alpha1.UserService.UpdateUserPluginPreferences. +func (c *userServiceClient) UpdateUserPluginPreferences(ctx context.Context, req *connect.Request[v1alpha1.UpdateUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.UpdateUserPluginPreferencesResponse], error) { + return c.updateUserPluginPreferences.CallUnary(ctx, req) +} + // UserServiceHandler is an implementation of the buf.alpha.registry.v1alpha1.UserService service. type UserServiceHandler interface { // CreateUser creates a new user with the given username. @@ -257,6 +293,12 @@ type UserServiceHandler interface { CountUsers(context.Context, *connect.Request[v1alpha1.CountUsersRequest]) (*connect.Response[v1alpha1.CountUsersResponse], error) // UpdateUserSettings update the user settings including description. UpdateUserSettings(context.Context, *connect.Request[v1alpha1.UpdateUserSettingsRequest]) (*connect.Response[v1alpha1.UpdateUserSettingsResponse], error) + // GetUserPluginPreferences returns the preferred language and plugins a user has selected in the BSR's Generated SDKs UI flow. + // If the user does not have a stored preference in the database this will return a CodeNotFound error and + // on the UI, the user will be prompted to select a language and plugins in the Generated SDKs flow. + GetUserPluginPreferences(context.Context, *connect.Request[v1alpha1.GetUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.GetUserPluginPreferencesResponse], error) + // UpdateUserPluginPreferences updates the user plugin preferences. + UpdateUserPluginPreferences(context.Context, *connect.Request[v1alpha1.UpdateUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.UpdateUserPluginPreferencesResponse], error) } // NewUserServiceHandler builds an HTTP handler from the service implementation. It returns the path @@ -323,6 +365,17 @@ func NewUserServiceHandler(svc UserServiceHandler, opts ...connect.HandlerOption svc.UpdateUserSettings, opts..., ) + userServiceGetUserPluginPreferencesHandler := connect.NewUnaryHandler( + UserServiceGetUserPluginPreferencesProcedure, + svc.GetUserPluginPreferences, + connect.WithIdempotency(connect.IdempotencyNoSideEffects), + connect.WithHandlerOptions(opts...), + ) + userServiceUpdateUserPluginPreferencesHandler := connect.NewUnaryHandler( + UserServiceUpdateUserPluginPreferencesProcedure, + svc.UpdateUserPluginPreferences, + opts..., + ) return "/buf.alpha.registry.v1alpha1.UserService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case UserServiceCreateUserProcedure: @@ -345,6 +398,10 @@ func NewUserServiceHandler(svc UserServiceHandler, opts ...connect.HandlerOption userServiceCountUsersHandler.ServeHTTP(w, r) case UserServiceUpdateUserSettingsProcedure: userServiceUpdateUserSettingsHandler.ServeHTTP(w, r) + case UserServiceGetUserPluginPreferencesProcedure: + userServiceGetUserPluginPreferencesHandler.ServeHTTP(w, r) + case UserServiceUpdateUserPluginPreferencesProcedure: + userServiceUpdateUserPluginPreferencesHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -393,3 +450,11 @@ func (UnimplementedUserServiceHandler) CountUsers(context.Context, *connect.Requ func (UnimplementedUserServiceHandler) UpdateUserSettings(context.Context, *connect.Request[v1alpha1.UpdateUserSettingsRequest]) (*connect.Response[v1alpha1.UpdateUserSettingsResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("buf.alpha.registry.v1alpha1.UserService.UpdateUserSettings is not implemented")) } + +func (UnimplementedUserServiceHandler) GetUserPluginPreferences(context.Context, *connect.Request[v1alpha1.GetUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.GetUserPluginPreferencesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("buf.alpha.registry.v1alpha1.UserService.GetUserPluginPreferences is not implemented")) +} + +func (UnimplementedUserServiceHandler) UpdateUserPluginPreferences(context.Context, *connect.Request[v1alpha1.UpdateUserPluginPreferencesRequest]) (*connect.Response[v1alpha1.UpdateUserPluginPreferencesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("buf.alpha.registry.v1alpha1.UserService.UpdateUserPluginPreferences is not implemented")) +} diff --git a/private/gen/proto/go/buf/alpha/registry/v1alpha1/user.pb.go b/private/gen/proto/go/buf/alpha/registry/v1alpha1/user.pb.go index b295ead1b2..f31bd62114 100644 --- a/private/gen/proto/go/buf/alpha/registry/v1alpha1/user.pb.go +++ b/private/gen/proto/go/buf/alpha/registry/v1alpha1/user.pb.go @@ -332,6 +332,76 @@ func (x *OrganizationUser) GetOrganizationRoleSource() OrganizationRoleSource { return OrganizationRoleSource_ORGANIZATION_ROLE_SOURCE_UNSPECIFIED } +// UserPluginPreference contains the user's preferred language and the +// list of plugins for that language, which they selected in the BSR's Generated SDKs UI flow. +// These preferences are stored in the database so the language and plugins +// are pre-selected when the user navigates back to the Generated SDKs page from any device or browser. +type UserPluginPreference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of the user. + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + // The language that the user has indicidated as their preferred language for plugins. + SelectedLanguage PluginLanguage `protobuf:"varint,2,opt,name=selected_language,json=selectedLanguage,proto3,enum=buf.alpha.registry.v1alpha1.PluginLanguage" json:"selected_language,omitempty"` + // A list of plugin names selected by the user. + SelectedPlugins []string `protobuf:"bytes,3,rep,name=selected_plugins,json=selectedPlugins,proto3" json:"selected_plugins,omitempty"` +} + +func (x *UserPluginPreference) Reset() { + *x = UserPluginPreference{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserPluginPreference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserPluginPreference) ProtoMessage() {} + +func (x *UserPluginPreference) ProtoReflect() protoreflect.Message { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[2] + 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 UserPluginPreference.ProtoReflect.Descriptor instead. +func (*UserPluginPreference) Descriptor() ([]byte, []int) { + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{2} +} + +func (x *UserPluginPreference) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *UserPluginPreference) GetSelectedLanguage() PluginLanguage { + if x != nil { + return x.SelectedLanguage + } + return PluginLanguage_PLUGIN_LANGUAGE_UNSPECIFIED +} + +func (x *UserPluginPreference) GetSelectedPlugins() []string { + if x != nil { + return x.SelectedPlugins + } + return nil +} + type CreateUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -343,7 +413,7 @@ type CreateUserRequest struct { func (x *CreateUserRequest) Reset() { *x = CreateUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[2] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -356,7 +426,7 @@ func (x *CreateUserRequest) String() string { func (*CreateUserRequest) ProtoMessage() {} func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[2] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -369,7 +439,7 @@ func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUserRequest.ProtoReflect.Descriptor instead. func (*CreateUserRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{2} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{3} } func (x *CreateUserRequest) GetUsername() string { @@ -390,7 +460,7 @@ type CreateUserResponse struct { func (x *CreateUserResponse) Reset() { *x = CreateUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[3] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -403,7 +473,7 @@ func (x *CreateUserResponse) String() string { func (*CreateUserResponse) ProtoMessage() {} func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[3] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -416,7 +486,7 @@ func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUserResponse.ProtoReflect.Descriptor instead. func (*CreateUserResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{3} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{4} } func (x *CreateUserResponse) GetUser() *User { @@ -437,7 +507,7 @@ type GetUserRequest struct { func (x *GetUserRequest) Reset() { *x = GetUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[4] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -450,7 +520,7 @@ func (x *GetUserRequest) String() string { func (*GetUserRequest) ProtoMessage() {} func (x *GetUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[4] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -463,7 +533,7 @@ func (x *GetUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead. func (*GetUserRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{4} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{5} } func (x *GetUserRequest) GetId() string { @@ -484,7 +554,7 @@ type GetUserResponse struct { func (x *GetUserResponse) Reset() { *x = GetUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[5] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -497,7 +567,7 @@ func (x *GetUserResponse) String() string { func (*GetUserResponse) ProtoMessage() {} func (x *GetUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[5] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -510,7 +580,7 @@ func (x *GetUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserResponse.ProtoReflect.Descriptor instead. func (*GetUserResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{5} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{6} } func (x *GetUserResponse) GetUser() *User { @@ -531,7 +601,7 @@ type GetUserByUsernameRequest struct { func (x *GetUserByUsernameRequest) Reset() { *x = GetUserByUsernameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[6] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -544,7 +614,7 @@ func (x *GetUserByUsernameRequest) String() string { func (*GetUserByUsernameRequest) ProtoMessage() {} func (x *GetUserByUsernameRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[6] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -557,7 +627,7 @@ func (x *GetUserByUsernameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserByUsernameRequest.ProtoReflect.Descriptor instead. func (*GetUserByUsernameRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{6} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{7} } func (x *GetUserByUsernameRequest) GetUsername() string { @@ -578,7 +648,7 @@ type GetUserByUsernameResponse struct { func (x *GetUserByUsernameResponse) Reset() { *x = GetUserByUsernameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[7] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -591,7 +661,7 @@ func (x *GetUserByUsernameResponse) String() string { func (*GetUserByUsernameResponse) ProtoMessage() {} func (x *GetUserByUsernameResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[7] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -604,7 +674,7 @@ func (x *GetUserByUsernameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserByUsernameResponse.ProtoReflect.Descriptor instead. func (*GetUserByUsernameResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{7} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{8} } func (x *GetUserByUsernameResponse) GetUser() *User { @@ -632,7 +702,7 @@ type ListUsersRequest struct { func (x *ListUsersRequest) Reset() { *x = ListUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[8] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -645,7 +715,7 @@ func (x *ListUsersRequest) String() string { func (*ListUsersRequest) ProtoMessage() {} func (x *ListUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[8] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -658,7 +728,7 @@ func (x *ListUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUsersRequest.ProtoReflect.Descriptor instead. func (*ListUsersRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{8} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{9} } func (x *ListUsersRequest) GetPageSize() uint32 { @@ -709,7 +779,7 @@ type ListUsersResponse struct { func (x *ListUsersResponse) Reset() { *x = ListUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[9] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -722,7 +792,7 @@ func (x *ListUsersResponse) String() string { func (*ListUsersResponse) ProtoMessage() {} func (x *ListUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[9] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -735,7 +805,7 @@ func (x *ListUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUsersResponse.ProtoReflect.Descriptor instead. func (*ListUsersResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{9} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{10} } func (x *ListUsersResponse) GetUsers() []*User { @@ -767,7 +837,7 @@ type ListOrganizationUsersRequest struct { func (x *ListOrganizationUsersRequest) Reset() { *x = ListOrganizationUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[10] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -780,7 +850,7 @@ func (x *ListOrganizationUsersRequest) String() string { func (*ListOrganizationUsersRequest) ProtoMessage() {} func (x *ListOrganizationUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[10] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -793,7 +863,7 @@ func (x *ListOrganizationUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListOrganizationUsersRequest.ProtoReflect.Descriptor instead. func (*ListOrganizationUsersRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{10} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{11} } func (x *ListOrganizationUsersRequest) GetOrganizationId() string { @@ -837,7 +907,7 @@ type ListOrganizationUsersResponse struct { func (x *ListOrganizationUsersResponse) Reset() { *x = ListOrganizationUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[11] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -850,7 +920,7 @@ func (x *ListOrganizationUsersResponse) String() string { func (*ListOrganizationUsersResponse) ProtoMessage() {} func (x *ListOrganizationUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[11] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -863,7 +933,7 @@ func (x *ListOrganizationUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListOrganizationUsersResponse.ProtoReflect.Descriptor instead. func (*ListOrganizationUsersResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{11} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{12} } func (x *ListOrganizationUsersResponse) GetUsers() []*OrganizationUser { @@ -889,7 +959,7 @@ type DeleteUserRequest struct { func (x *DeleteUserRequest) Reset() { *x = DeleteUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[12] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -902,7 +972,7 @@ func (x *DeleteUserRequest) String() string { func (*DeleteUserRequest) ProtoMessage() {} func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[12] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -915,7 +985,7 @@ func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserRequest.ProtoReflect.Descriptor instead. func (*DeleteUserRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{12} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{13} } type DeleteUserResponse struct { @@ -927,7 +997,7 @@ type DeleteUserResponse struct { func (x *DeleteUserResponse) Reset() { *x = DeleteUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[13] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -940,7 +1010,7 @@ func (x *DeleteUserResponse) String() string { func (*DeleteUserResponse) ProtoMessage() {} func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[13] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -953,7 +1023,7 @@ func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserResponse.ProtoReflect.Descriptor instead. func (*DeleteUserResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{13} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{14} } type DeactivateUserRequest struct { @@ -967,7 +1037,7 @@ type DeactivateUserRequest struct { func (x *DeactivateUserRequest) Reset() { *x = DeactivateUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[14] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +1050,7 @@ func (x *DeactivateUserRequest) String() string { func (*DeactivateUserRequest) ProtoMessage() {} func (x *DeactivateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[14] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +1063,7 @@ func (x *DeactivateUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeactivateUserRequest.ProtoReflect.Descriptor instead. func (*DeactivateUserRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{14} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{15} } func (x *DeactivateUserRequest) GetId() string { @@ -1012,7 +1082,7 @@ type DeactivateUserResponse struct { func (x *DeactivateUserResponse) Reset() { *x = DeactivateUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[15] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1025,7 +1095,7 @@ func (x *DeactivateUserResponse) String() string { func (*DeactivateUserResponse) ProtoMessage() {} func (x *DeactivateUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[15] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1038,7 +1108,7 @@ func (x *DeactivateUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeactivateUserResponse.ProtoReflect.Descriptor instead. func (*DeactivateUserResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{15} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{16} } type UpdateUserServerRoleRequest struct { @@ -1055,7 +1125,7 @@ type UpdateUserServerRoleRequest struct { func (x *UpdateUserServerRoleRequest) Reset() { *x = UpdateUserServerRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[16] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1068,7 +1138,7 @@ func (x *UpdateUserServerRoleRequest) String() string { func (*UpdateUserServerRoleRequest) ProtoMessage() {} func (x *UpdateUserServerRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[16] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1081,7 +1151,7 @@ func (x *UpdateUserServerRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserServerRoleRequest.ProtoReflect.Descriptor instead. func (*UpdateUserServerRoleRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{16} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{17} } func (x *UpdateUserServerRoleRequest) GetUserId() string { @@ -1107,7 +1177,7 @@ type UpdateUserServerRoleResponse struct { func (x *UpdateUserServerRoleResponse) Reset() { *x = UpdateUserServerRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[17] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1120,7 +1190,7 @@ func (x *UpdateUserServerRoleResponse) String() string { func (*UpdateUserServerRoleResponse) ProtoMessage() {} func (x *UpdateUserServerRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[17] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1133,7 +1203,7 @@ func (x *UpdateUserServerRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserServerRoleResponse.ProtoReflect.Descriptor instead. func (*UpdateUserServerRoleResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{17} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{18} } type CountUsersRequest struct { @@ -1148,7 +1218,7 @@ type CountUsersRequest struct { func (x *CountUsersRequest) Reset() { *x = CountUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[18] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1161,7 +1231,7 @@ func (x *CountUsersRequest) String() string { func (*CountUsersRequest) ProtoMessage() {} func (x *CountUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[18] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1174,7 +1244,7 @@ func (x *CountUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CountUsersRequest.ProtoReflect.Descriptor instead. func (*CountUsersRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{18} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{19} } func (x *CountUsersRequest) GetUserStateFilter() UserState { @@ -1195,7 +1265,7 @@ type CountUsersResponse struct { func (x *CountUsersResponse) Reset() { *x = CountUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[19] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1208,7 +1278,7 @@ func (x *CountUsersResponse) String() string { func (*CountUsersResponse) ProtoMessage() {} func (x *CountUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[19] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1221,7 +1291,7 @@ func (x *CountUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CountUsersResponse.ProtoReflect.Descriptor instead. func (*CountUsersResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{19} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{20} } func (x *CountUsersResponse) GetTotalCount() uint32 { @@ -1246,7 +1316,7 @@ type UpdateUserSettingsRequest struct { func (x *UpdateUserSettingsRequest) Reset() { *x = UpdateUserSettingsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1259,7 +1329,7 @@ func (x *UpdateUserSettingsRequest) String() string { func (*UpdateUserSettingsRequest) ProtoMessage() {} func (x *UpdateUserSettingsRequest) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,7 +1342,7 @@ func (x *UpdateUserSettingsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserSettingsRequest.ProtoReflect.Descriptor instead. func (*UpdateUserSettingsRequest) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{20} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{21} } func (x *UpdateUserSettingsRequest) GetUserId() string { @@ -1305,7 +1375,7 @@ type UpdateUserSettingsResponse struct { func (x *UpdateUserSettingsResponse) Reset() { *x = UpdateUserSettingsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1318,7 +1388,7 @@ func (x *UpdateUserSettingsResponse) String() string { func (*UpdateUserSettingsResponse) ProtoMessage() {} func (x *UpdateUserSettingsResponse) ProtoReflect() protoreflect.Message { - mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21] + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1331,7 +1401,195 @@ func (x *UpdateUserSettingsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserSettingsResponse.ProtoReflect.Descriptor instead. func (*UpdateUserSettingsResponse) Descriptor() ([]byte, []int) { - return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{21} + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{22} +} + +type GetUserPluginPreferencesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *GetUserPluginPreferencesRequest) Reset() { + *x = GetUserPluginPreferencesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserPluginPreferencesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserPluginPreferencesRequest) ProtoMessage() {} + +func (x *GetUserPluginPreferencesRequest) ProtoReflect() protoreflect.Message { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[23] + 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 GetUserPluginPreferencesRequest.ProtoReflect.Descriptor instead. +func (*GetUserPluginPreferencesRequest) Descriptor() ([]byte, []int) { + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{23} +} + +func (x *GetUserPluginPreferencesRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type GetUserPluginPreferencesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Preference *UserPluginPreference `protobuf:"bytes,1,opt,name=preference,proto3" json:"preference,omitempty"` +} + +func (x *GetUserPluginPreferencesResponse) Reset() { + *x = GetUserPluginPreferencesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserPluginPreferencesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserPluginPreferencesResponse) ProtoMessage() {} + +func (x *GetUserPluginPreferencesResponse) ProtoReflect() protoreflect.Message { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[24] + 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 GetUserPluginPreferencesResponse.ProtoReflect.Descriptor instead. +func (*GetUserPluginPreferencesResponse) Descriptor() ([]byte, []int) { + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{24} +} + +func (x *GetUserPluginPreferencesResponse) GetPreference() *UserPluginPreference { + if x != nil { + return x.Preference + } + return nil +} + +type UpdateUserPluginPreferencesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Preference *UserPluginPreference `protobuf:"bytes,1,opt,name=preference,proto3" json:"preference,omitempty"` +} + +func (x *UpdateUserPluginPreferencesRequest) Reset() { + *x = UpdateUserPluginPreferencesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserPluginPreferencesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserPluginPreferencesRequest) ProtoMessage() {} + +func (x *UpdateUserPluginPreferencesRequest) ProtoReflect() protoreflect.Message { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[25] + 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 UpdateUserPluginPreferencesRequest.ProtoReflect.Descriptor instead. +func (*UpdateUserPluginPreferencesRequest) Descriptor() ([]byte, []int) { + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{25} +} + +func (x *UpdateUserPluginPreferencesRequest) GetPreference() *UserPluginPreference { + if x != nil { + return x.Preference + } + return nil +} + +type UpdateUserPluginPreferencesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Preference *UserPluginPreference `protobuf:"bytes,1,opt,name=preference,proto3" json:"preference,omitempty"` +} + +func (x *UpdateUserPluginPreferencesResponse) Reset() { + *x = UpdateUserPluginPreferencesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateUserPluginPreferencesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserPluginPreferencesResponse) ProtoMessage() {} + +func (x *UpdateUserPluginPreferencesResponse) ProtoReflect() protoreflect.Message { + mi := &file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[26] + 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 UpdateUserPluginPreferencesResponse.ProtoReflect.Descriptor instead. +func (*UpdateUserPluginPreferencesResponse) Descriptor() ([]byte, []int) { + return file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP(), []int{26} +} + +func (x *UpdateUserPluginPreferencesResponse) GetPreference() *UserPluginPreference { + if x != nil { + return x.Preference + } + return nil } var File_buf_alpha_registry_v1alpha1_user_proto protoreflect.FileDescriptor @@ -1341,166 +1599,207 @@ var file_buf_alpha_registry_v1alpha1_user_proto_rawDesc = []byte{ 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x26, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x31, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x62, - 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x03, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x61, 0x31, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x35, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x03, 0x0a, 0x04, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x60, 0x0a, 0x13, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x12, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x22, 0xbd, 0x02, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x11, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x60, 0x0a, + 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x12, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x42, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x11, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, - 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x16, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x22, 0x2f, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 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, 0x4b, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x20, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x48, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 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, 0x52, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x8f, 0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, - 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, - 0x65, 0x12, 0x52, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, - 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x74, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, - 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9d, - 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x22, 0x8c, - 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x13, 0x0a, - 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x72, - 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x66, 0x2e, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x1e, - 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, - 0x0a, 0x11, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, - 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, - 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x6c, 0x65, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x6d, 0x0a, 0x18, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x16, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x1c, 0x0a, 0x1a, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x5a, 0x0a, 0x09, 0x55, 0x73, 0x65, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x58, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x10, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x29, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x2f, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 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, 0x4b, 0x0a, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, + 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x22, 0x36, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 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, 0x52, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x22, 0x8f, 0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x51, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x22, 0x74, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9d, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, + 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, + 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x66, 0x2e, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x44, + 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, + 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x11, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, + 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x35, 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x75, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x77, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0a, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, + 0x78, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2a, 0x5a, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, @@ -1513,7 +1812,7 @@ var file_buf_alpha_registry_v1alpha1_user_proto_rawDesc = []byte{ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, - 0x03, 0x32, 0xfb, 0x09, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x03, 0x32, 0xbd, 0x0c, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x72, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, @@ -1592,25 +1891,46 @@ var file_buf_alpha_registry_v1alpha1_user_proto_rawDesc = []byte{ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x96, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x62, - 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x41, - 0x52, 0xaa, 0x02, 0x1b, 0x42, 0x75, 0x66, 0x2e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, - 0x02, 0x1b, 0x42, 0x75, 0x66, 0x5c, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x27, - 0x42, 0x75, 0x66, 0x5c, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x42, 0x75, 0x66, 0x3a, 0x3a, 0x41, - 0x6c, 0x70, 0x68, 0x61, 0x3a, 0x3a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x3a, 0x3a, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x9c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x2e, 0x62, + 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x62, 0x75, 0x66, + 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0xa0, + 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3f, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x40, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x42, 0x96, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x09, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, + 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, + 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, + 0x42, 0x41, 0x52, 0xaa, 0x02, 0x1b, 0x42, 0x75, 0x66, 0x2e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xca, 0x02, 0x1b, 0x42, 0x75, 0x66, 0x5c, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, + 0x02, 0x27, 0x42, 0x75, 0x66, 0x5c, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x42, 0x75, 0x66, 0x3a, + 0x3a, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x3a, 0x3a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1626,80 +1946,94 @@ func file_buf_alpha_registry_v1alpha1_user_proto_rawDescGZIP() []byte { } var file_buf_alpha_registry_v1alpha1_user_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_buf_alpha_registry_v1alpha1_user_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_buf_alpha_registry_v1alpha1_user_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_buf_alpha_registry_v1alpha1_user_proto_goTypes = []interface{}{ - (UserState)(0), // 0: buf.alpha.registry.v1alpha1.UserState - (UserType)(0), // 1: buf.alpha.registry.v1alpha1.UserType - (*User)(nil), // 2: buf.alpha.registry.v1alpha1.User - (*OrganizationUser)(nil), // 3: buf.alpha.registry.v1alpha1.OrganizationUser - (*CreateUserRequest)(nil), // 4: buf.alpha.registry.v1alpha1.CreateUserRequest - (*CreateUserResponse)(nil), // 5: buf.alpha.registry.v1alpha1.CreateUserResponse - (*GetUserRequest)(nil), // 6: buf.alpha.registry.v1alpha1.GetUserRequest - (*GetUserResponse)(nil), // 7: buf.alpha.registry.v1alpha1.GetUserResponse - (*GetUserByUsernameRequest)(nil), // 8: buf.alpha.registry.v1alpha1.GetUserByUsernameRequest - (*GetUserByUsernameResponse)(nil), // 9: buf.alpha.registry.v1alpha1.GetUserByUsernameResponse - (*ListUsersRequest)(nil), // 10: buf.alpha.registry.v1alpha1.ListUsersRequest - (*ListUsersResponse)(nil), // 11: buf.alpha.registry.v1alpha1.ListUsersResponse - (*ListOrganizationUsersRequest)(nil), // 12: buf.alpha.registry.v1alpha1.ListOrganizationUsersRequest - (*ListOrganizationUsersResponse)(nil), // 13: buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse - (*DeleteUserRequest)(nil), // 14: buf.alpha.registry.v1alpha1.DeleteUserRequest - (*DeleteUserResponse)(nil), // 15: buf.alpha.registry.v1alpha1.DeleteUserResponse - (*DeactivateUserRequest)(nil), // 16: buf.alpha.registry.v1alpha1.DeactivateUserRequest - (*DeactivateUserResponse)(nil), // 17: buf.alpha.registry.v1alpha1.DeactivateUserResponse - (*UpdateUserServerRoleRequest)(nil), // 18: buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest - (*UpdateUserServerRoleResponse)(nil), // 19: buf.alpha.registry.v1alpha1.UpdateUserServerRoleResponse - (*CountUsersRequest)(nil), // 20: buf.alpha.registry.v1alpha1.CountUsersRequest - (*CountUsersResponse)(nil), // 21: buf.alpha.registry.v1alpha1.CountUsersResponse - (*UpdateUserSettingsRequest)(nil), // 22: buf.alpha.registry.v1alpha1.UpdateUserSettingsRequest - (*UpdateUserSettingsResponse)(nil), // 23: buf.alpha.registry.v1alpha1.UpdateUserSettingsResponse - (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp - (VerificationStatus)(0), // 25: buf.alpha.registry.v1alpha1.VerificationStatus - (OrganizationRole)(0), // 26: buf.alpha.registry.v1alpha1.OrganizationRole - (OrganizationRoleSource)(0), // 27: buf.alpha.registry.v1alpha1.OrganizationRoleSource - (ServerRole)(0), // 28: buf.alpha.registry.v1alpha1.ServerRole + (UserState)(0), // 0: buf.alpha.registry.v1alpha1.UserState + (UserType)(0), // 1: buf.alpha.registry.v1alpha1.UserType + (*User)(nil), // 2: buf.alpha.registry.v1alpha1.User + (*OrganizationUser)(nil), // 3: buf.alpha.registry.v1alpha1.OrganizationUser + (*UserPluginPreference)(nil), // 4: buf.alpha.registry.v1alpha1.UserPluginPreference + (*CreateUserRequest)(nil), // 5: buf.alpha.registry.v1alpha1.CreateUserRequest + (*CreateUserResponse)(nil), // 6: buf.alpha.registry.v1alpha1.CreateUserResponse + (*GetUserRequest)(nil), // 7: buf.alpha.registry.v1alpha1.GetUserRequest + (*GetUserResponse)(nil), // 8: buf.alpha.registry.v1alpha1.GetUserResponse + (*GetUserByUsernameRequest)(nil), // 9: buf.alpha.registry.v1alpha1.GetUserByUsernameRequest + (*GetUserByUsernameResponse)(nil), // 10: buf.alpha.registry.v1alpha1.GetUserByUsernameResponse + (*ListUsersRequest)(nil), // 11: buf.alpha.registry.v1alpha1.ListUsersRequest + (*ListUsersResponse)(nil), // 12: buf.alpha.registry.v1alpha1.ListUsersResponse + (*ListOrganizationUsersRequest)(nil), // 13: buf.alpha.registry.v1alpha1.ListOrganizationUsersRequest + (*ListOrganizationUsersResponse)(nil), // 14: buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse + (*DeleteUserRequest)(nil), // 15: buf.alpha.registry.v1alpha1.DeleteUserRequest + (*DeleteUserResponse)(nil), // 16: buf.alpha.registry.v1alpha1.DeleteUserResponse + (*DeactivateUserRequest)(nil), // 17: buf.alpha.registry.v1alpha1.DeactivateUserRequest + (*DeactivateUserResponse)(nil), // 18: buf.alpha.registry.v1alpha1.DeactivateUserResponse + (*UpdateUserServerRoleRequest)(nil), // 19: buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest + (*UpdateUserServerRoleResponse)(nil), // 20: buf.alpha.registry.v1alpha1.UpdateUserServerRoleResponse + (*CountUsersRequest)(nil), // 21: buf.alpha.registry.v1alpha1.CountUsersRequest + (*CountUsersResponse)(nil), // 22: buf.alpha.registry.v1alpha1.CountUsersResponse + (*UpdateUserSettingsRequest)(nil), // 23: buf.alpha.registry.v1alpha1.UpdateUserSettingsRequest + (*UpdateUserSettingsResponse)(nil), // 24: buf.alpha.registry.v1alpha1.UpdateUserSettingsResponse + (*GetUserPluginPreferencesRequest)(nil), // 25: buf.alpha.registry.v1alpha1.GetUserPluginPreferencesRequest + (*GetUserPluginPreferencesResponse)(nil), // 26: buf.alpha.registry.v1alpha1.GetUserPluginPreferencesResponse + (*UpdateUserPluginPreferencesRequest)(nil), // 27: buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesRequest + (*UpdateUserPluginPreferencesResponse)(nil), // 28: buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesResponse + (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp + (VerificationStatus)(0), // 30: buf.alpha.registry.v1alpha1.VerificationStatus + (OrganizationRole)(0), // 31: buf.alpha.registry.v1alpha1.OrganizationRole + (OrganizationRoleSource)(0), // 32: buf.alpha.registry.v1alpha1.OrganizationRoleSource + (PluginLanguage)(0), // 33: buf.alpha.registry.v1alpha1.PluginLanguage + (ServerRole)(0), // 34: buf.alpha.registry.v1alpha1.ServerRole } var file_buf_alpha_registry_v1alpha1_user_proto_depIdxs = []int32{ - 24, // 0: buf.alpha.registry.v1alpha1.User.create_time:type_name -> google.protobuf.Timestamp - 24, // 1: buf.alpha.registry.v1alpha1.User.update_time:type_name -> google.protobuf.Timestamp - 25, // 2: buf.alpha.registry.v1alpha1.User.verification_status:type_name -> buf.alpha.registry.v1alpha1.VerificationStatus + 29, // 0: buf.alpha.registry.v1alpha1.User.create_time:type_name -> google.protobuf.Timestamp + 29, // 1: buf.alpha.registry.v1alpha1.User.update_time:type_name -> google.protobuf.Timestamp + 30, // 2: buf.alpha.registry.v1alpha1.User.verification_status:type_name -> buf.alpha.registry.v1alpha1.VerificationStatus 1, // 3: buf.alpha.registry.v1alpha1.User.user_type:type_name -> buf.alpha.registry.v1alpha1.UserType 2, // 4: buf.alpha.registry.v1alpha1.OrganizationUser.user:type_name -> buf.alpha.registry.v1alpha1.User - 26, // 5: buf.alpha.registry.v1alpha1.OrganizationUser.organization_role:type_name -> buf.alpha.registry.v1alpha1.OrganizationRole - 27, // 6: buf.alpha.registry.v1alpha1.OrganizationUser.organization_role_source:type_name -> buf.alpha.registry.v1alpha1.OrganizationRoleSource - 2, // 7: buf.alpha.registry.v1alpha1.CreateUserResponse.user:type_name -> buf.alpha.registry.v1alpha1.User - 2, // 8: buf.alpha.registry.v1alpha1.GetUserResponse.user:type_name -> buf.alpha.registry.v1alpha1.User - 2, // 9: buf.alpha.registry.v1alpha1.GetUserByUsernameResponse.user:type_name -> buf.alpha.registry.v1alpha1.User - 0, // 10: buf.alpha.registry.v1alpha1.ListUsersRequest.user_state_filter:type_name -> buf.alpha.registry.v1alpha1.UserState - 1, // 11: buf.alpha.registry.v1alpha1.ListUsersRequest.user_type_filters:type_name -> buf.alpha.registry.v1alpha1.UserType - 2, // 12: buf.alpha.registry.v1alpha1.ListUsersResponse.users:type_name -> buf.alpha.registry.v1alpha1.User - 3, // 13: buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse.users:type_name -> buf.alpha.registry.v1alpha1.OrganizationUser - 28, // 14: buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest.server_role:type_name -> buf.alpha.registry.v1alpha1.ServerRole - 0, // 15: buf.alpha.registry.v1alpha1.CountUsersRequest.user_state_filter:type_name -> buf.alpha.registry.v1alpha1.UserState - 4, // 16: buf.alpha.registry.v1alpha1.UserService.CreateUser:input_type -> buf.alpha.registry.v1alpha1.CreateUserRequest - 6, // 17: buf.alpha.registry.v1alpha1.UserService.GetUser:input_type -> buf.alpha.registry.v1alpha1.GetUserRequest - 8, // 18: buf.alpha.registry.v1alpha1.UserService.GetUserByUsername:input_type -> buf.alpha.registry.v1alpha1.GetUserByUsernameRequest - 10, // 19: buf.alpha.registry.v1alpha1.UserService.ListUsers:input_type -> buf.alpha.registry.v1alpha1.ListUsersRequest - 12, // 20: buf.alpha.registry.v1alpha1.UserService.ListOrganizationUsers:input_type -> buf.alpha.registry.v1alpha1.ListOrganizationUsersRequest - 14, // 21: buf.alpha.registry.v1alpha1.UserService.DeleteUser:input_type -> buf.alpha.registry.v1alpha1.DeleteUserRequest - 16, // 22: buf.alpha.registry.v1alpha1.UserService.DeactivateUser:input_type -> buf.alpha.registry.v1alpha1.DeactivateUserRequest - 18, // 23: buf.alpha.registry.v1alpha1.UserService.UpdateUserServerRole:input_type -> buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest - 20, // 24: buf.alpha.registry.v1alpha1.UserService.CountUsers:input_type -> buf.alpha.registry.v1alpha1.CountUsersRequest - 22, // 25: buf.alpha.registry.v1alpha1.UserService.UpdateUserSettings:input_type -> buf.alpha.registry.v1alpha1.UpdateUserSettingsRequest - 5, // 26: buf.alpha.registry.v1alpha1.UserService.CreateUser:output_type -> buf.alpha.registry.v1alpha1.CreateUserResponse - 7, // 27: buf.alpha.registry.v1alpha1.UserService.GetUser:output_type -> buf.alpha.registry.v1alpha1.GetUserResponse - 9, // 28: buf.alpha.registry.v1alpha1.UserService.GetUserByUsername:output_type -> buf.alpha.registry.v1alpha1.GetUserByUsernameResponse - 11, // 29: buf.alpha.registry.v1alpha1.UserService.ListUsers:output_type -> buf.alpha.registry.v1alpha1.ListUsersResponse - 13, // 30: buf.alpha.registry.v1alpha1.UserService.ListOrganizationUsers:output_type -> buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse - 15, // 31: buf.alpha.registry.v1alpha1.UserService.DeleteUser:output_type -> buf.alpha.registry.v1alpha1.DeleteUserResponse - 17, // 32: buf.alpha.registry.v1alpha1.UserService.DeactivateUser:output_type -> buf.alpha.registry.v1alpha1.DeactivateUserResponse - 19, // 33: buf.alpha.registry.v1alpha1.UserService.UpdateUserServerRole:output_type -> buf.alpha.registry.v1alpha1.UpdateUserServerRoleResponse - 21, // 34: buf.alpha.registry.v1alpha1.UserService.CountUsers:output_type -> buf.alpha.registry.v1alpha1.CountUsersResponse - 23, // 35: buf.alpha.registry.v1alpha1.UserService.UpdateUserSettings:output_type -> buf.alpha.registry.v1alpha1.UpdateUserSettingsResponse - 26, // [26:36] is the sub-list for method output_type - 16, // [16:26] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 31, // 5: buf.alpha.registry.v1alpha1.OrganizationUser.organization_role:type_name -> buf.alpha.registry.v1alpha1.OrganizationRole + 32, // 6: buf.alpha.registry.v1alpha1.OrganizationUser.organization_role_source:type_name -> buf.alpha.registry.v1alpha1.OrganizationRoleSource + 33, // 7: buf.alpha.registry.v1alpha1.UserPluginPreference.selected_language:type_name -> buf.alpha.registry.v1alpha1.PluginLanguage + 2, // 8: buf.alpha.registry.v1alpha1.CreateUserResponse.user:type_name -> buf.alpha.registry.v1alpha1.User + 2, // 9: buf.alpha.registry.v1alpha1.GetUserResponse.user:type_name -> buf.alpha.registry.v1alpha1.User + 2, // 10: buf.alpha.registry.v1alpha1.GetUserByUsernameResponse.user:type_name -> buf.alpha.registry.v1alpha1.User + 0, // 11: buf.alpha.registry.v1alpha1.ListUsersRequest.user_state_filter:type_name -> buf.alpha.registry.v1alpha1.UserState + 1, // 12: buf.alpha.registry.v1alpha1.ListUsersRequest.user_type_filters:type_name -> buf.alpha.registry.v1alpha1.UserType + 2, // 13: buf.alpha.registry.v1alpha1.ListUsersResponse.users:type_name -> buf.alpha.registry.v1alpha1.User + 3, // 14: buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse.users:type_name -> buf.alpha.registry.v1alpha1.OrganizationUser + 34, // 15: buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest.server_role:type_name -> buf.alpha.registry.v1alpha1.ServerRole + 0, // 16: buf.alpha.registry.v1alpha1.CountUsersRequest.user_state_filter:type_name -> buf.alpha.registry.v1alpha1.UserState + 4, // 17: buf.alpha.registry.v1alpha1.GetUserPluginPreferencesResponse.preference:type_name -> buf.alpha.registry.v1alpha1.UserPluginPreference + 4, // 18: buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesRequest.preference:type_name -> buf.alpha.registry.v1alpha1.UserPluginPreference + 4, // 19: buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesResponse.preference:type_name -> buf.alpha.registry.v1alpha1.UserPluginPreference + 5, // 20: buf.alpha.registry.v1alpha1.UserService.CreateUser:input_type -> buf.alpha.registry.v1alpha1.CreateUserRequest + 7, // 21: buf.alpha.registry.v1alpha1.UserService.GetUser:input_type -> buf.alpha.registry.v1alpha1.GetUserRequest + 9, // 22: buf.alpha.registry.v1alpha1.UserService.GetUserByUsername:input_type -> buf.alpha.registry.v1alpha1.GetUserByUsernameRequest + 11, // 23: buf.alpha.registry.v1alpha1.UserService.ListUsers:input_type -> buf.alpha.registry.v1alpha1.ListUsersRequest + 13, // 24: buf.alpha.registry.v1alpha1.UserService.ListOrganizationUsers:input_type -> buf.alpha.registry.v1alpha1.ListOrganizationUsersRequest + 15, // 25: buf.alpha.registry.v1alpha1.UserService.DeleteUser:input_type -> buf.alpha.registry.v1alpha1.DeleteUserRequest + 17, // 26: buf.alpha.registry.v1alpha1.UserService.DeactivateUser:input_type -> buf.alpha.registry.v1alpha1.DeactivateUserRequest + 19, // 27: buf.alpha.registry.v1alpha1.UserService.UpdateUserServerRole:input_type -> buf.alpha.registry.v1alpha1.UpdateUserServerRoleRequest + 21, // 28: buf.alpha.registry.v1alpha1.UserService.CountUsers:input_type -> buf.alpha.registry.v1alpha1.CountUsersRequest + 23, // 29: buf.alpha.registry.v1alpha1.UserService.UpdateUserSettings:input_type -> buf.alpha.registry.v1alpha1.UpdateUserSettingsRequest + 25, // 30: buf.alpha.registry.v1alpha1.UserService.GetUserPluginPreferences:input_type -> buf.alpha.registry.v1alpha1.GetUserPluginPreferencesRequest + 27, // 31: buf.alpha.registry.v1alpha1.UserService.UpdateUserPluginPreferences:input_type -> buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesRequest + 6, // 32: buf.alpha.registry.v1alpha1.UserService.CreateUser:output_type -> buf.alpha.registry.v1alpha1.CreateUserResponse + 8, // 33: buf.alpha.registry.v1alpha1.UserService.GetUser:output_type -> buf.alpha.registry.v1alpha1.GetUserResponse + 10, // 34: buf.alpha.registry.v1alpha1.UserService.GetUserByUsername:output_type -> buf.alpha.registry.v1alpha1.GetUserByUsernameResponse + 12, // 35: buf.alpha.registry.v1alpha1.UserService.ListUsers:output_type -> buf.alpha.registry.v1alpha1.ListUsersResponse + 14, // 36: buf.alpha.registry.v1alpha1.UserService.ListOrganizationUsers:output_type -> buf.alpha.registry.v1alpha1.ListOrganizationUsersResponse + 16, // 37: buf.alpha.registry.v1alpha1.UserService.DeleteUser:output_type -> buf.alpha.registry.v1alpha1.DeleteUserResponse + 18, // 38: buf.alpha.registry.v1alpha1.UserService.DeactivateUser:output_type -> buf.alpha.registry.v1alpha1.DeactivateUserResponse + 20, // 39: buf.alpha.registry.v1alpha1.UserService.UpdateUserServerRole:output_type -> buf.alpha.registry.v1alpha1.UpdateUserServerRoleResponse + 22, // 40: buf.alpha.registry.v1alpha1.UserService.CountUsers:output_type -> buf.alpha.registry.v1alpha1.CountUsersResponse + 24, // 41: buf.alpha.registry.v1alpha1.UserService.UpdateUserSettings:output_type -> buf.alpha.registry.v1alpha1.UpdateUserSettingsResponse + 26, // 42: buf.alpha.registry.v1alpha1.UserService.GetUserPluginPreferences:output_type -> buf.alpha.registry.v1alpha1.GetUserPluginPreferencesResponse + 28, // 43: buf.alpha.registry.v1alpha1.UserService.UpdateUserPluginPreferences:output_type -> buf.alpha.registry.v1alpha1.UpdateUserPluginPreferencesResponse + 32, // [32:44] is the sub-list for method output_type + 20, // [20:32] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_buf_alpha_registry_v1alpha1_user_proto_init() } @@ -1707,6 +2041,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { if File_buf_alpha_registry_v1alpha1_user_proto != nil { return } + file_buf_alpha_registry_v1alpha1_plugin_curation_proto_init() file_buf_alpha_registry_v1alpha1_role_proto_init() file_buf_alpha_registry_v1alpha1_verification_status_proto_init() if !protoimpl.UnsafeEnabled { @@ -1735,7 +2070,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserRequest); i { + switch v := v.(*UserPluginPreference); i { case 0: return &v.state case 1: @@ -1747,7 +2082,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateUserResponse); i { + switch v := v.(*CreateUserRequest); i { case 0: return &v.state case 1: @@ -1759,7 +2094,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserRequest); i { + switch v := v.(*CreateUserResponse); i { case 0: return &v.state case 1: @@ -1771,7 +2106,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserResponse); i { + switch v := v.(*GetUserRequest); i { case 0: return &v.state case 1: @@ -1783,7 +2118,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByUsernameRequest); i { + switch v := v.(*GetUserResponse); i { case 0: return &v.state case 1: @@ -1795,7 +2130,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByUsernameResponse); i { + switch v := v.(*GetUserByUsernameRequest); i { case 0: return &v.state case 1: @@ -1807,7 +2142,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListUsersRequest); i { + switch v := v.(*GetUserByUsernameResponse); i { case 0: return &v.state case 1: @@ -1819,7 +2154,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListUsersResponse); i { + switch v := v.(*ListUsersRequest); i { case 0: return &v.state case 1: @@ -1831,7 +2166,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListOrganizationUsersRequest); i { + switch v := v.(*ListUsersResponse); i { case 0: return &v.state case 1: @@ -1843,7 +2178,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListOrganizationUsersResponse); i { + switch v := v.(*ListOrganizationUsersRequest); i { case 0: return &v.state case 1: @@ -1855,7 +2190,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserRequest); i { + switch v := v.(*ListOrganizationUsersResponse); i { case 0: return &v.state case 1: @@ -1867,7 +2202,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResponse); i { + switch v := v.(*DeleteUserRequest); i { case 0: return &v.state case 1: @@ -1879,7 +2214,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeactivateUserRequest); i { + switch v := v.(*DeleteUserResponse); i { case 0: return &v.state case 1: @@ -1891,7 +2226,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeactivateUserResponse); i { + switch v := v.(*DeactivateUserRequest); i { case 0: return &v.state case 1: @@ -1903,7 +2238,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserServerRoleRequest); i { + switch v := v.(*DeactivateUserResponse); i { case 0: return &v.state case 1: @@ -1915,7 +2250,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserServerRoleResponse); i { + switch v := v.(*UpdateUserServerRoleRequest); i { case 0: return &v.state case 1: @@ -1927,7 +2262,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountUsersRequest); i { + switch v := v.(*UpdateUserServerRoleResponse); i { case 0: return &v.state case 1: @@ -1939,7 +2274,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountUsersResponse); i { + switch v := v.(*CountUsersRequest); i { case 0: return &v.state case 1: @@ -1951,7 +2286,7 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserSettingsRequest); i { + switch v := v.(*CountUsersResponse); i { case 0: return &v.state case 1: @@ -1963,6 +2298,18 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { } } file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserSettingsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateUserSettingsResponse); i { case 0: return &v.state @@ -1974,15 +2321,63 @@ func file_buf_alpha_registry_v1alpha1_user_proto_init() { return nil } } + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserPluginPreferencesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserPluginPreferencesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserPluginPreferencesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserPluginPreferencesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_buf_alpha_registry_v1alpha1_user_proto_msgTypes[21].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_buf_alpha_registry_v1alpha1_user_proto_rawDesc, NumEnums: 2, - NumMessages: 22, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/buf/alpha/registry/v1alpha1/user.proto b/proto/buf/alpha/registry/v1alpha1/user.proto index 7501a78318..6511bc15f9 100644 --- a/proto/buf/alpha/registry/v1alpha1/user.proto +++ b/proto/buf/alpha/registry/v1alpha1/user.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package buf.alpha.registry.v1alpha1; +import "buf/alpha/registry/v1alpha1/plugin_curation.proto"; import "buf/alpha/registry/v1alpha1/role.proto"; import "buf/alpha/registry/v1alpha1/verification_status.proto"; import "google/protobuf/timestamp.proto"; @@ -53,6 +54,19 @@ message OrganizationUser { OrganizationRoleSource organization_role_source = 4; } +// UserPluginPreference contains the user's preferred language and the +// list of plugins for that language, which they selected in the BSR's Generated SDKs UI flow. +// These preferences are stored in the database so the language and plugins +// are pre-selected when the user navigates back to the Generated SDKs page from any device or browser. +message UserPluginPreference { + // The id of the user. + string user_id = 1; + // The language that the user has indicidated as their preferred language for plugins. + PluginLanguage selected_language = 2; + // A list of plugin names selected by the user. + repeated string selected_plugins = 3; +} + enum UserState { USER_STATE_UNSPECIFIED = 0; USER_STATE_ACTIVE = 1; @@ -105,6 +119,14 @@ service UserService { } // UpdateUserSettings update the user settings including description. rpc UpdateUserSettings(UpdateUserSettingsRequest) returns (UpdateUserSettingsResponse); + // GetUserPluginPreferences returns the preferred language and plugins a user has selected in the BSR's Generated SDKs UI flow. + // If the user does not have a stored preference in the database this will return a CodeNotFound error and + // on the UI, the user will be prompted to select a language and plugins in the Generated SDKs flow. + rpc GetUserPluginPreferences(GetUserPluginPreferencesRequest) returns (GetUserPluginPreferencesResponse) { + option idempotency_level = NO_SIDE_EFFECTS; + } + // UpdateUserPluginPreferences updates the user plugin preferences. + rpc UpdateUserPluginPreferences(UpdateUserPluginPreferencesRequest) returns (UpdateUserPluginPreferencesResponse); } message CreateUserRequest { @@ -199,3 +221,19 @@ message UpdateUserSettingsRequest { } message UpdateUserSettingsResponse {} + +message GetUserPluginPreferencesRequest { + string user_id = 1; +} + +message GetUserPluginPreferencesResponse { + UserPluginPreference preference = 1; +} + +message UpdateUserPluginPreferencesRequest { + UserPluginPreference preference = 1; +} + +message UpdateUserPluginPreferencesResponse { + UserPluginPreference preference = 1; +}