1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 Google LLC. 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker// 15*d5c09012SAndroid Build Coastguard Worker 16*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 17*d5c09012SAndroid Build Coastguard Worker 18*d5c09012SAndroid Build Coastguard Workerpackage google.example.library.v1; 19*d5c09012SAndroid Build Coastguard Worker 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 26*d5c09012SAndroid Build Coastguard Worker 27*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/example/library/v1;library"; 28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "LibraryProto"; 30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.example.library.v1"; 31*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Example\\Library\\V1"; 32*d5c09012SAndroid Build Coastguard Worker 33*d5c09012SAndroid Build Coastguard Worker// This API represents a simple digital library. It lets you manage Shelf 34*d5c09012SAndroid Build Coastguard Worker// resources and Book resources in the library. It defines the following 35*d5c09012SAndroid Build Coastguard Worker// resource model: 36*d5c09012SAndroid Build Coastguard Worker// 37*d5c09012SAndroid Build Coastguard Worker// - The API has a collection of [Shelf][google.example.library.v1.Shelf] 38*d5c09012SAndroid Build Coastguard Worker// resources, named `shelves/*` 39*d5c09012SAndroid Build Coastguard Worker// 40*d5c09012SAndroid Build Coastguard Worker// - Each Shelf has a collection of [Book][google.example.library.v1.Book] 41*d5c09012SAndroid Build Coastguard Worker// resources, named `shelves/*/books/*` 42*d5c09012SAndroid Build Coastguard Workerservice LibraryService { 43*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "library-example.googleapis.com"; 44*d5c09012SAndroid Build Coastguard Worker 45*d5c09012SAndroid Build Coastguard Worker // Creates a shelf, and returns the new Shelf. 46*d5c09012SAndroid Build Coastguard Worker rpc CreateShelf(CreateShelfRequest) returns (Shelf) { 47*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 48*d5c09012SAndroid Build Coastguard Worker post: "/v1/shelves" 49*d5c09012SAndroid Build Coastguard Worker body: "shelf" 50*d5c09012SAndroid Build Coastguard Worker }; 51*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "shelf"; 52*d5c09012SAndroid Build Coastguard Worker } 53*d5c09012SAndroid Build Coastguard Worker 54*d5c09012SAndroid Build Coastguard Worker // Gets a shelf. Returns NOT_FOUND if the shelf does not exist. 55*d5c09012SAndroid Build Coastguard Worker rpc GetShelf(GetShelfRequest) returns (Shelf) { 56*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 57*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=shelves/*}" 58*d5c09012SAndroid Build Coastguard Worker }; 59*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 60*d5c09012SAndroid Build Coastguard Worker } 61*d5c09012SAndroid Build Coastguard Worker 62*d5c09012SAndroid Build Coastguard Worker // Lists shelves. The order is unspecified but deterministic. Newly created 63*d5c09012SAndroid Build Coastguard Worker // shelves will not necessarily be added to the end of this list. 64*d5c09012SAndroid Build Coastguard Worker rpc ListShelves(ListShelvesRequest) returns (ListShelvesResponse) { 65*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 66*d5c09012SAndroid Build Coastguard Worker get: "/v1/shelves" 67*d5c09012SAndroid Build Coastguard Worker }; 68*d5c09012SAndroid Build Coastguard Worker } 69*d5c09012SAndroid Build Coastguard Worker 70*d5c09012SAndroid Build Coastguard Worker // Deletes a shelf. Returns NOT_FOUND if the shelf does not exist. 71*d5c09012SAndroid Build Coastguard Worker rpc DeleteShelf(DeleteShelfRequest) returns (google.protobuf.Empty) { 72*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 73*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=shelves/*}" 74*d5c09012SAndroid Build Coastguard Worker }; 75*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 76*d5c09012SAndroid Build Coastguard Worker } 77*d5c09012SAndroid Build Coastguard Worker 78*d5c09012SAndroid Build Coastguard Worker // Merges two shelves by adding all books from the shelf named 79*d5c09012SAndroid Build Coastguard Worker // `other_shelf_name` to shelf `name`, and deletes 80*d5c09012SAndroid Build Coastguard Worker // `other_shelf_name`. Returns the updated shelf. 81*d5c09012SAndroid Build Coastguard Worker // The book ids of the moved books may not be the same as the original books. 82*d5c09012SAndroid Build Coastguard Worker // 83*d5c09012SAndroid Build Coastguard Worker // Returns NOT_FOUND if either shelf does not exist. 84*d5c09012SAndroid Build Coastguard Worker // This call is a no-op if the specified shelves are the same. 85*d5c09012SAndroid Build Coastguard Worker rpc MergeShelves(MergeShelvesRequest) returns (Shelf) { 86*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 87*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=shelves/*}:merge" 88*d5c09012SAndroid Build Coastguard Worker body: "*" 89*d5c09012SAndroid Build Coastguard Worker }; 90*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,other_shelf"; 91*d5c09012SAndroid Build Coastguard Worker } 92*d5c09012SAndroid Build Coastguard Worker 93*d5c09012SAndroid Build Coastguard Worker // Creates a book, and returns the new Book. 94*d5c09012SAndroid Build Coastguard Worker rpc CreateBook(CreateBookRequest) returns (Book) { 95*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 96*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=shelves/*}/books" 97*d5c09012SAndroid Build Coastguard Worker body: "book" 98*d5c09012SAndroid Build Coastguard Worker }; 99*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,book"; 100*d5c09012SAndroid Build Coastguard Worker } 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Gets a book. Returns NOT_FOUND if the book does not exist. 103*d5c09012SAndroid Build Coastguard Worker rpc GetBook(GetBookRequest) returns (Book) { 104*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 105*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=shelves/*/books/*}" 106*d5c09012SAndroid Build Coastguard Worker }; 107*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 108*d5c09012SAndroid Build Coastguard Worker } 109*d5c09012SAndroid Build Coastguard Worker 110*d5c09012SAndroid Build Coastguard Worker // Lists books in a shelf. The order is unspecified but deterministic. Newly 111*d5c09012SAndroid Build Coastguard Worker // created books will not necessarily be added to the end of this list. 112*d5c09012SAndroid Build Coastguard Worker // Returns NOT_FOUND if the shelf does not exist. 113*d5c09012SAndroid Build Coastguard Worker rpc ListBooks(ListBooksRequest) returns (ListBooksResponse) { 114*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 115*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=shelves/*}/books" 116*d5c09012SAndroid Build Coastguard Worker }; 117*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 118*d5c09012SAndroid Build Coastguard Worker } 119*d5c09012SAndroid Build Coastguard Worker 120*d5c09012SAndroid Build Coastguard Worker // Deletes a book. Returns NOT_FOUND if the book does not exist. 121*d5c09012SAndroid Build Coastguard Worker rpc DeleteBook(DeleteBookRequest) returns (google.protobuf.Empty) { 122*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 123*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=shelves/*/books/*}" 124*d5c09012SAndroid Build Coastguard Worker }; 125*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 126*d5c09012SAndroid Build Coastguard Worker } 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // Updates a book. Returns INVALID_ARGUMENT if the name of the book 129*d5c09012SAndroid Build Coastguard Worker // is non-empty and does not equal the existing name. 130*d5c09012SAndroid Build Coastguard Worker rpc UpdateBook(UpdateBookRequest) returns (Book) { 131*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 132*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{book.name=shelves/*/books/*}" 133*d5c09012SAndroid Build Coastguard Worker body: "book" 134*d5c09012SAndroid Build Coastguard Worker }; 135*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "book,update_mask"; 136*d5c09012SAndroid Build Coastguard Worker } 137*d5c09012SAndroid Build Coastguard Worker 138*d5c09012SAndroid Build Coastguard Worker // Moves a book to another shelf, and returns the new book. The book 139*d5c09012SAndroid Build Coastguard Worker // id of the new book may not be the same as the original book. 140*d5c09012SAndroid Build Coastguard Worker rpc MoveBook(MoveBookRequest) returns (Book) { 141*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 142*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=shelves/*/books/*}:move" 143*d5c09012SAndroid Build Coastguard Worker body: "*" 144*d5c09012SAndroid Build Coastguard Worker }; 145*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,other_shelf_name"; 146*d5c09012SAndroid Build Coastguard Worker } 147*d5c09012SAndroid Build Coastguard Worker} 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker// A single book in the library. 150*d5c09012SAndroid Build Coastguard Workermessage Book { 151*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 152*d5c09012SAndroid Build Coastguard Worker type: "library-example.googleapis.com/Book", 153*d5c09012SAndroid Build Coastguard Worker pattern: "shelves/{shelf}/books/{book}" 154*d5c09012SAndroid Build Coastguard Worker }; 155*d5c09012SAndroid Build Coastguard Worker 156*d5c09012SAndroid Build Coastguard Worker // The resource name of the book. 157*d5c09012SAndroid Build Coastguard Worker // Book names have the form `shelves/{shelf_id}/books/{book_id}`. 158*d5c09012SAndroid Build Coastguard Worker // The name is ignored when creating a book. 159*d5c09012SAndroid Build Coastguard Worker string name = 1; 160*d5c09012SAndroid Build Coastguard Worker 161*d5c09012SAndroid Build Coastguard Worker // The name of the book author. 162*d5c09012SAndroid Build Coastguard Worker string author = 2; 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker // The title of the book. 165*d5c09012SAndroid Build Coastguard Worker string title = 3; 166*d5c09012SAndroid Build Coastguard Worker 167*d5c09012SAndroid Build Coastguard Worker // Value indicating whether the book has been read. 168*d5c09012SAndroid Build Coastguard Worker bool read = 4; 169*d5c09012SAndroid Build Coastguard Worker} 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker// A Shelf contains a collection of books with a theme. 172*d5c09012SAndroid Build Coastguard Workermessage Shelf { 173*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 174*d5c09012SAndroid Build Coastguard Worker type: "library-example.googleapis.com/Shelf", 175*d5c09012SAndroid Build Coastguard Worker pattern: "shelves/{shelf_id}" 176*d5c09012SAndroid Build Coastguard Worker }; 177*d5c09012SAndroid Build Coastguard Worker 178*d5c09012SAndroid Build Coastguard Worker // The resource name of the shelf. 179*d5c09012SAndroid Build Coastguard Worker // Shelf names have the form `shelves/{shelf_id}`. 180*d5c09012SAndroid Build Coastguard Worker // The name is ignored when creating a shelf. 181*d5c09012SAndroid Build Coastguard Worker string name = 1; 182*d5c09012SAndroid Build Coastguard Worker 183*d5c09012SAndroid Build Coastguard Worker // The theme of the shelf 184*d5c09012SAndroid Build Coastguard Worker string theme = 2; 185*d5c09012SAndroid Build Coastguard Worker} 186*d5c09012SAndroid Build Coastguard Worker 187*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.CreateShelf. 188*d5c09012SAndroid Build Coastguard Workermessage CreateShelfRequest { 189*d5c09012SAndroid Build Coastguard Worker // The shelf to create. 190*d5c09012SAndroid Build Coastguard Worker Shelf shelf = 1 [(google.api.field_behavior) = REQUIRED]; 191*d5c09012SAndroid Build Coastguard Worker} 192*d5c09012SAndroid Build Coastguard Worker 193*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.GetShelf. 194*d5c09012SAndroid Build Coastguard Workermessage GetShelfRequest { 195*d5c09012SAndroid Build Coastguard Worker // The name of the shelf to retrieve. 196*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 197*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 198*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 199*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 200*d5c09012SAndroid Build Coastguard Worker ]; 201*d5c09012SAndroid Build Coastguard Worker} 202*d5c09012SAndroid Build Coastguard Worker 203*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.ListShelves. 204*d5c09012SAndroid Build Coastguard Workermessage ListShelvesRequest { 205*d5c09012SAndroid Build Coastguard Worker // Requested page size. Server may return fewer shelves than requested. 206*d5c09012SAndroid Build Coastguard Worker // If unspecified, server will pick an appropriate default. 207*d5c09012SAndroid Build Coastguard Worker int32 page_size = 1; 208*d5c09012SAndroid Build Coastguard Worker 209*d5c09012SAndroid Build Coastguard Worker // A token identifying a page of results the server should return. 210*d5c09012SAndroid Build Coastguard Worker // Typically, this is the value of 211*d5c09012SAndroid Build Coastguard Worker // [ListShelvesResponse.next_page_token][google.example.library.v1.ListShelvesResponse.next_page_token] 212*d5c09012SAndroid Build Coastguard Worker // returned from the previous call to `ListShelves` method. 213*d5c09012SAndroid Build Coastguard Worker string page_token = 2; 214*d5c09012SAndroid Build Coastguard Worker} 215*d5c09012SAndroid Build Coastguard Worker 216*d5c09012SAndroid Build Coastguard Worker// Response message for LibraryService.ListShelves. 217*d5c09012SAndroid Build Coastguard Workermessage ListShelvesResponse { 218*d5c09012SAndroid Build Coastguard Worker // The list of shelves. 219*d5c09012SAndroid Build Coastguard Worker repeated Shelf shelves = 1; 220*d5c09012SAndroid Build Coastguard Worker 221*d5c09012SAndroid Build Coastguard Worker // A token to retrieve next page of results. 222*d5c09012SAndroid Build Coastguard Worker // Pass this value in the 223*d5c09012SAndroid Build Coastguard Worker // [ListShelvesRequest.page_token][google.example.library.v1.ListShelvesRequest.page_token] 224*d5c09012SAndroid Build Coastguard Worker // field in the subsequent call to `ListShelves` method to retrieve the next 225*d5c09012SAndroid Build Coastguard Worker // page of results. 226*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 227*d5c09012SAndroid Build Coastguard Worker} 228*d5c09012SAndroid Build Coastguard Worker 229*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.DeleteShelf. 230*d5c09012SAndroid Build Coastguard Workermessage DeleteShelfRequest { 231*d5c09012SAndroid Build Coastguard Worker // The name of the shelf to delete. 232*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 233*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 234*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 235*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 236*d5c09012SAndroid Build Coastguard Worker ]; 237*d5c09012SAndroid Build Coastguard Worker} 238*d5c09012SAndroid Build Coastguard Worker 239*d5c09012SAndroid Build Coastguard Worker// Describes the shelf being removed (other_shelf_name) and updated 240*d5c09012SAndroid Build Coastguard Worker// (name) in this merge. 241*d5c09012SAndroid Build Coastguard Workermessage MergeShelvesRequest { 242*d5c09012SAndroid Build Coastguard Worker // The name of the shelf we're adding books to. 243*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 244*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 245*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 246*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 247*d5c09012SAndroid Build Coastguard Worker ]; 248*d5c09012SAndroid Build Coastguard Worker 249*d5c09012SAndroid Build Coastguard Worker // The name of the shelf we're removing books from and deleting. 250*d5c09012SAndroid Build Coastguard Worker string other_shelf = 2 [ 251*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 252*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 253*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 254*d5c09012SAndroid Build Coastguard Worker ]; 255*d5c09012SAndroid Build Coastguard Worker} 256*d5c09012SAndroid Build Coastguard Worker 257*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.CreateBook. 258*d5c09012SAndroid Build Coastguard Workermessage CreateBookRequest { 259*d5c09012SAndroid Build Coastguard Worker // The name of the shelf in which the book is created. 260*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 261*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 262*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 263*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 264*d5c09012SAndroid Build Coastguard Worker ]; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // The book to create. 267*d5c09012SAndroid Build Coastguard Worker Book book = 2 [(google.api.field_behavior) = REQUIRED]; 268*d5c09012SAndroid Build Coastguard Worker} 269*d5c09012SAndroid Build Coastguard Worker 270*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.GetBook. 271*d5c09012SAndroid Build Coastguard Workermessage GetBookRequest { 272*d5c09012SAndroid Build Coastguard Worker // The name of the book to retrieve. 273*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 274*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 275*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "library-example.googleapis.com/Book" 276*d5c09012SAndroid Build Coastguard Worker ]; 277*d5c09012SAndroid Build Coastguard Worker} 278*d5c09012SAndroid Build Coastguard Worker 279*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.ListBooks. 280*d5c09012SAndroid Build Coastguard Workermessage ListBooksRequest { 281*d5c09012SAndroid Build Coastguard Worker // The name of the shelf whose books we'd like to list. 282*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 283*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 284*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 285*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 286*d5c09012SAndroid Build Coastguard Worker ]; 287*d5c09012SAndroid Build Coastguard Worker 288*d5c09012SAndroid Build Coastguard Worker // Requested page size. Server may return fewer books than requested. 289*d5c09012SAndroid Build Coastguard Worker // If unspecified, server will pick an appropriate default. 290*d5c09012SAndroid Build Coastguard Worker int32 page_size = 2; 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker // A token identifying a page of results the server should return. 293*d5c09012SAndroid Build Coastguard Worker // Typically, this is the value of 294*d5c09012SAndroid Build Coastguard Worker // [ListBooksResponse.next_page_token][google.example.library.v1.ListBooksResponse.next_page_token]. 295*d5c09012SAndroid Build Coastguard Worker // returned from the previous call to `ListBooks` method. 296*d5c09012SAndroid Build Coastguard Worker string page_token = 3; 297*d5c09012SAndroid Build Coastguard Worker} 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker// Response message for LibraryService.ListBooks. 300*d5c09012SAndroid Build Coastguard Workermessage ListBooksResponse { 301*d5c09012SAndroid Build Coastguard Worker // The list of books. 302*d5c09012SAndroid Build Coastguard Worker repeated Book books = 1; 303*d5c09012SAndroid Build Coastguard Worker 304*d5c09012SAndroid Build Coastguard Worker // A token to retrieve next page of results. 305*d5c09012SAndroid Build Coastguard Worker // Pass this value in the 306*d5c09012SAndroid Build Coastguard Worker // [ListBooksRequest.page_token][google.example.library.v1.ListBooksRequest.page_token] 307*d5c09012SAndroid Build Coastguard Worker // field in the subsequent call to `ListBooks` method to retrieve the next 308*d5c09012SAndroid Build Coastguard Worker // page of results. 309*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 310*d5c09012SAndroid Build Coastguard Worker} 311*d5c09012SAndroid Build Coastguard Worker 312*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.UpdateBook. 313*d5c09012SAndroid Build Coastguard Workermessage UpdateBookRequest { 314*d5c09012SAndroid Build Coastguard Worker // The name of the book to update. 315*d5c09012SAndroid Build Coastguard Worker Book book = 1 [(google.api.field_behavior) = REQUIRED]; 316*d5c09012SAndroid Build Coastguard Worker 317*d5c09012SAndroid Build Coastguard Worker // Required. Mask of fields to update. 318*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 2 319*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = REQUIRED]; 320*d5c09012SAndroid Build Coastguard Worker} 321*d5c09012SAndroid Build Coastguard Worker 322*d5c09012SAndroid Build Coastguard Worker// Request message for LibraryService.DeleteBook. 323*d5c09012SAndroid Build Coastguard Workermessage DeleteBookRequest { 324*d5c09012SAndroid Build Coastguard Worker // The name of the book to delete. 325*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 326*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 327*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "library-example.googleapis.com/Book" 328*d5c09012SAndroid Build Coastguard Worker ]; 329*d5c09012SAndroid Build Coastguard Worker} 330*d5c09012SAndroid Build Coastguard Worker 331*d5c09012SAndroid Build Coastguard Worker// Describes what book to move (name) and what shelf we're moving it 332*d5c09012SAndroid Build Coastguard Worker// to (other_shelf_name). 333*d5c09012SAndroid Build Coastguard Workermessage MoveBookRequest { 334*d5c09012SAndroid Build Coastguard Worker // The name of the book to move. 335*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 336*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 337*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "library-example.googleapis.com/Book" 338*d5c09012SAndroid Build Coastguard Worker ]; 339*d5c09012SAndroid Build Coastguard Worker 340*d5c09012SAndroid Build Coastguard Worker // The name of the destination shelf. 341*d5c09012SAndroid Build Coastguard Worker string other_shelf_name = 2 [ 342*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 343*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = 344*d5c09012SAndroid Build Coastguard Worker "library-example.googleapis.com/Shelf" 345*d5c09012SAndroid Build Coastguard Worker ]; 346*d5c09012SAndroid Build Coastguard Worker} 347