syntax = "proto3"; package slash.api.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/protobuf/field_mask.proto"; option go_package = "gen/api/v1"; service UserSettingService { // GetUserSetting returns the user setting. rpc GetUserSetting(GetUserSettingRequest) returns (GetUserSettingResponse) { option (google.api.http) = {get: "/api/v1/users/{id}/settings"}; option (google.api.method_signature) = "id"; } // UpdateUserSetting updates the user setting. rpc UpdateUserSetting(UpdateUserSettingRequest) returns (UpdateUserSettingResponse) { option (google.api.http) = { patch: "/api/v1/users/{id}/settings" body: "user_setting" }; option (google.api.method_signature) = "user_setting,update_mask"; } } message UserSetting { // id is the user id. int32 id = 1; UserSettingGeneral general = 2; } message UserSettingGeneral { string locale = 1; string color_theme = 2; } 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. google.protobuf.FieldMask update_mask = 3; } message UpdateUserSettingResponse { UserSetting user_setting = 1; }