| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package monorail.v3; |
| |
| option go_package = "infra/monorailv2/api/v3/api_proto"; |
| |
| import "google/api/field_behavior.proto"; |
| import "google/api/resource.proto"; |
| import "api/v3/api_proto/user_objects.proto"; |
| import "google/protobuf/empty.proto"; |
| import "google/protobuf/field_mask.proto"; |
| |
| // ***ONLY CALL rpcs WITH `status: {ALPHA|STABLE}`*** |
| // rpcs without `status` are not ready. |
| |
| // Users service includes all methods needed for managing Users. |
| service Users { |
| // status: ALPHA |
| // Returns the requested User. |
| // |
| // Raises: |
| // NOT_FOUND is the user is not found. |
| // INVALID_ARGUMENT if the `name` is invalid. |
| rpc GetUser (GetUserRequest) returns (User) {} |
| |
| // status: ALPHA |
| // Returns all of the requested Users. |
| // |
| // Raises: |
| // NOT_FOUND if any users are not found. |
| // INVALID_ARGUMENT if any `names` are invalid. |
| rpc BatchGetUsers (BatchGetUsersRequest) returns (BatchGetUsersResponse) {} |
| |
| // status: NOT READY |
| // Updates a User. |
| // |
| // Raises: |
| // NOT_FOUND if the user is not found. |
| // PERMISSION_DENIED if the requester is not allowed to update the user. |
| // INVALID_ARGUMENT if required fields are missing or fields are invalid. |
| rpc UpdateUser (UpdateUserRequest) returns (User) {} |
| |
| // status: NOT READY |
| // Stars a given project for the requestor. |
| // |
| // Raises: |
| // NOT_FOUND if the requested project is not found. |
| // INVALID_ARGUMENT if the given `project` is not valid. |
| rpc StarProject (StarProjectRequest) returns (ProjectStar) {} |
| |
| // status: NOT READY |
| // Unstars a given project for the requestor. |
| // |
| // Raises: |
| // NOT_FOUND if the requested project is not found. |
| // INVALID_ARGUMENT if the given `project` is not valid. |
| rpc UnStarProject (UnStarProjectRequest) returns (google.protobuf.Empty) {} |
| |
| // status: NOT READY |
| // Lists all of a user's starred projects. |
| // |
| // Raises: |
| // NOT_FOUND if the requested user is not found. |
| // INVALID_ARGUMENT if the given `parent` is not valid. |
| rpc ListProjectStars (ListProjectStarsRequest) returns (ListProjectStarsResponse) {} |
| } |
| |
| |
| // The request message for Users.GetUser. |
| // Next available tag: 2 |
| message GetUserRequest { |
| // The name of the user to request. |
| string name = 1 [ |
| (google.api.resource_reference) = {type: "api.crbug.com/User"}, |
| (google.api.field_behavior) = REQUIRED ]; |
| } |
| |
| |
| // The request message for Users.BatchGetUsers. |
| // Next available tag: 2 |
| message BatchGetUsersRequest { |
| // The name of the users to request. At most 100 may be requested. |
| repeated string names = 1 [ |
| (google.api.resource_reference) = {type: "api.crbug.com/User"}, |
| (google.api.field_behavior) = REQUIRED ]; |
| } |
| |
| |
| // The response message for Users.BatchGetUsers. |
| // Next available tag: 2 |
| message BatchGetUsersResponse { |
| // The users that were requested. |
| repeated User users = 1; |
| } |
| |
| |
| // The request message for Users.UpdateUser. |
| // Next available tag: 3 |
| message UpdateUserRequest { |
| // The user's `name` field is used to identify the user to be updated. |
| User user = 1 [ |
| (google.api.field_behavior) = REQUIRED, |
| (google.api.resource_reference) = {type: "api.crbug.com/User"} ]; |
| // The list of fields to be updated. |
| google.protobuf.FieldMask update_mask = 2 [ (google.api.field_behavior) = REQUIRED ]; |
| } |
| |
| |
| // The request message for Users.StarProject. |
| // Next available tag: 2 |
| message StarProjectRequest { |
| // The resource name for the Project to star. |
| string project = 1 [ |
| (google.api.resource_reference) = {type: "api.crbug.com/Project"}, |
| (google.api.field_behavior) = REQUIRED ]; |
| } |
| |
| |
| // The request message for Users.UnStarProject. |
| // Next available tag: 2 |
| message UnStarProjectRequest { |
| // The resource name for the Project to unstar. |
| string project = 1 [ |
| (google.api.resource_reference) = {type: "api.crbug.com/Project"}, |
| (google.api.field_behavior) = REQUIRED ]; |
| } |
| |
| |
| // The request message for Users.ListProjectStars. |
| // Next available tag: 4 |
| message ListProjectStarsRequest { |
| // The resource name for the user having stars listed. |
| string parent = 1 [ |
| (google.api.resource_reference) = {type: "api.crbug.com/User"}, |
| (google.api.field_behavior) = REQUIRED ]; |
| // The maximum number of items to return. The service may return fewer than |
| // this value. |
| // If unspecified, at most 1000 items will be returned. |
| int32 page_size = 2; |
| // A page token, received from a previous `ListProjectStars` call. |
| // Provide this to retrieve the subsequent page. |
| // |
| // When paginating, all other parameters provided to `ListProjectStars` must |
| // match the call that provided the page token. |
| string page_token = 3; |
| } |
| |
| |
| // The response message for Users.ListProjectStars. |
| // Next available tag: 3 |
| message ListProjectStarsResponse { |
| // Data for each starred project. |
| repeated ProjectStar project_stars = 1; |
| // A token, which can be sent as `page_token` to retrieve the next page. |
| // If this field is omitted, there are no subsequent pages. |
| string next_page_token = 2; |
| } |