syntax = "proto3"; package slash.api.v2; import "google/api/annotations.proto"; import "google/api/client.proto"; option go_package = "gen/api/v2"; service UserSettingService { // GetUserSetting returns the user setting. rpc GetUserSetting(GetUserSettingRequest) returns (GetUserSettingResponse) { option (google.api.http) = {get: "/api/v2/users/{id}/settings"}; option (google.api.method_signature) = "id"; } // UpdateUserSetting updates the user setting. rpc UpdateUserSetting(UpdateUserSettingRequest) returns (UpdateUserSettingResponse) { option (google.api.http) = { post: "/api/v2/users/{id}/settings" body: "*" }; option (google.api.method_signature) = "id"; } } message UserSetting { // id is the user id. int32 id = 1; enum Locale { LOCALE_UNSPECIFIED = 0; LOCALE_EN = 1; LOCALE_ZH = 2; } // locale is the user locale. Locale locale = 2; enum ColorTheme { COLOR_THEME_UNSPECIFIED = 0; COLOR_THEME_SYSTEM = 1; COLOR_THEME_LIGHT = 2; COLOR_THEME_DARK = 3; } // color_theme is the user color theme. ColorTheme color_theme = 3; } message GetUserSettingRequest { // id is the user id. int32 id = 1; } message GetUserSettingResponse { UserSetting user_setting = 1; } message UpdateUserSettingRequest { // id is the user id. int32 id = 1; // user_setting is the user setting to update. UserSetting user_setting = 2; // update_mask is the field mask to update. repeated string update_mask = 3; } message UpdateUserSettingResponse { UserSetting user_setting = 1; }