go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/internal/bugs/monorail/api_proto/users.proto (about)

     1  // 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.
     4  
     5  syntax = "proto3";
     6  
     7  package monorail.v3;
     8  
     9  option go_package = "go.chromium.org/luci/analysis/internal/bugs/monorail/api_proto";
    10  
    11  import "google/api/field_behavior.proto";
    12  import "google/api/resource.proto";
    13  import "go.chromium.org/luci/analysis/internal/bugs/monorail/api_proto/user_objects.proto";
    14  import "google/protobuf/empty.proto";
    15  import "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.
    21  service 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
    75  message 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
    85  message 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
    95  message 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
   103  message 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
   115  message 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
   125  message 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
   135  message 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
   155  message 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  }