blob: 0e869484e73eb61fce863975e5286f736d877705 [file] [log] [blame]
Adrià Vilanova Martínezf19ea432024-01-23 20:20:52 +01001// Copyright 2020 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Copybara854996b2021-09-07 19:36:02 +00004
5syntax = "proto3";
6
7package monorail.v3;
8
Adrià Vilanova Martínezac4a6442022-05-15 19:05:13 +02009option go_package = "infra/monorailv2/api/v3/api_proto";
Copybara854996b2021-09-07 19:36:02 +000010
11import "google/api/field_behavior.proto";
12import "google/api/resource.proto";
13import "api/v3/api_proto/user_objects.proto";
14import "google/protobuf/empty.proto";
15import "google/protobuf/field_mask.proto";
16
17// ***ONLY CALL rpcs WITH `status: {ALPHA|STABLE}`***
18// rpcs without `status` are not ready.
19
20// Users service includes all methods needed for managing Users.
21service Users {
22 // status: ALPHA
23 // Returns the requested User.
24 //
25 // Raises:
26 // NOT_FOUND is the user is not found.
27 // INVALID_ARGUMENT if the `name` is invalid.
28 rpc GetUser (GetUserRequest) returns (User) {}
29
30 // status: ALPHA
31 // Returns all of the requested Users.
32 //
33 // Raises:
34 // NOT_FOUND if any users are not found.
35 // INVALID_ARGUMENT if any `names` are invalid.
36 rpc BatchGetUsers (BatchGetUsersRequest) returns (BatchGetUsersResponse) {}
37
38 // status: NOT READY
39 // Updates a User.
40 //
41 // Raises:
42 // NOT_FOUND if the user is not found.
43 // PERMISSION_DENIED if the requester is not allowed to update the user.
44 // INVALID_ARGUMENT if required fields are missing or fields are invalid.
45 rpc UpdateUser (UpdateUserRequest) returns (User) {}
46
47 // status: NOT READY
48 // Stars a given project for the requestor.
49 //
50 // Raises:
51 // NOT_FOUND if the requested project is not found.
52 // INVALID_ARGUMENT if the given `project` is not valid.
53 rpc StarProject (StarProjectRequest) returns (ProjectStar) {}
54
55 // status: NOT READY
56 // Unstars a given project for the requestor.
57 //
58 // Raises:
59 // NOT_FOUND if the requested project is not found.
60 // INVALID_ARGUMENT if the given `project` is not valid.
61 rpc UnStarProject (UnStarProjectRequest) returns (google.protobuf.Empty) {}
62
63 // status: NOT READY
64 // Lists all of a user's starred projects.
65 //
66 // Raises:
67 // NOT_FOUND if the requested user is not found.
68 // INVALID_ARGUMENT if the given `parent` is not valid.
69 rpc ListProjectStars (ListProjectStarsRequest) returns (ListProjectStarsResponse) {}
70}
71
72
73// The request message for Users.GetUser.
74// Next available tag: 2
75message GetUserRequest {
76 // The name of the user to request.
77 string name = 1 [
78 (google.api.resource_reference) = {type: "api.crbug.com/User"},
79 (google.api.field_behavior) = REQUIRED ];
80}
81
82
83// The request message for Users.BatchGetUsers.
84// Next available tag: 2
85message BatchGetUsersRequest {
86 // The name of the users to request. At most 100 may be requested.
87 repeated string names = 1 [
88 (google.api.resource_reference) = {type: "api.crbug.com/User"},
89 (google.api.field_behavior) = REQUIRED ];
90}
91
92
93// The response message for Users.BatchGetUsers.
94// Next available tag: 2
95message BatchGetUsersResponse {
96 // The users that were requested.
97 repeated User users = 1;
98}
99
100
101// The request message for Users.UpdateUser.
102// Next available tag: 3
103message UpdateUserRequest {
104 // The user's `name` field is used to identify the user to be updated.
105 User user = 1 [
106 (google.api.field_behavior) = REQUIRED,
107 (google.api.resource_reference) = {type: "api.crbug.com/User"} ];
108 // The list of fields to be updated.
109 google.protobuf.FieldMask update_mask = 2 [ (google.api.field_behavior) = REQUIRED ];
110}
111
112
113// The request message for Users.StarProject.
114// Next available tag: 2
115message StarProjectRequest {
116 // The resource name for the Project to star.
117 string project = 1 [
118 (google.api.resource_reference) = {type: "api.crbug.com/Project"},
119 (google.api.field_behavior) = REQUIRED ];
120}
121
122
123// The request message for Users.UnStarProject.
124// Next available tag: 2
125message UnStarProjectRequest {
126 // The resource name for the Project to unstar.
127 string project = 1 [
128 (google.api.resource_reference) = {type: "api.crbug.com/Project"},
129 (google.api.field_behavior) = REQUIRED ];
130}
131
132
133// The request message for Users.ListProjectStars.
134// Next available tag: 4
135message ListProjectStarsRequest {
136 // The resource name for the user having stars listed.
137 string parent = 1 [
138 (google.api.resource_reference) = {type: "api.crbug.com/User"},
139 (google.api.field_behavior) = REQUIRED ];
140 // The maximum number of items to return. The service may return fewer than
141 // this value.
142 // If unspecified, at most 1000 items will be returned.
143 int32 page_size = 2;
144 // A page token, received from a previous `ListProjectStars` call.
145 // Provide this to retrieve the subsequent page.
146 //
147 // When paginating, all other parameters provided to `ListProjectStars` must
148 // match the call that provided the page token.
149 string page_token = 3;
150}
151
152
153// The response message for Users.ListProjectStars.
154// Next available tag: 3
155message ListProjectStarsResponse {
156 // Data for each starred project.
157 repeated ProjectStar project_stars = 1;
158 // A token, which can be sent as `page_token` to retrieve the next page.
159 // If this field is omitted, there are no subsequent pages.
160 string next_page_token = 2;
161}