xref: /aosp_15_r20/external/googleapis/google/example/library/v1/library.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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