Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(519)

Side by Side Diff: generated/googleapis/lib/classroom/v1.dart

Issue 1268013003: Api-roll 21: 2015-08-04 (Closed) Base URL: git@github.com:dart-lang/googleapis.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // This is a generated file (see the discoveryapis_generator project).
2
3 library googleapis.classroom.v1;
4
5 import 'dart:core' as core;
6 import 'dart:async' as async;
7 import 'dart:convert' as convert;
8
9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
10 import 'package:http/http.dart' as http;
11
12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show
13 ApiRequestError, DetailedApiRequestError;
14
15 const core.String USER_AGENT = 'dart-api-client classroom/v1';
16
17 /** Google Classroom API */
18 class ClassroomApi {
19 /** Manage your Google Classroom classes */
20 static const ClassroomCoursesScope = "https://www.googleapis.com/auth/classroo m.courses";
21
22 /** View your Google Classroom classes */
23 static const ClassroomCoursesReadonlyScope = "https://www.googleapis.com/auth/ classroom.courses.readonly";
24
25 /** View the email addresses of people in your classes */
26 static const ClassroomProfileEmailsScope = "https://www.googleapis.com/auth/cl assroom.profile.emails";
27
28 /** View the profile photos of people in your classes */
29 static const ClassroomProfilePhotosScope = "https://www.googleapis.com/auth/cl assroom.profile.photos";
30
31 /** Manage your Google Classroom class rosters */
32 static const ClassroomRostersScope = "https://www.googleapis.com/auth/classroo m.rosters";
33
34 /** View your Google Classroom class rosters */
35 static const ClassroomRostersReadonlyScope = "https://www.googleapis.com/auth/ classroom.rosters.readonly";
36
37
38 final commons.ApiRequester _requester;
39
40 CoursesResourceApi get courses => new CoursesResourceApi(_requester);
41 InvitationsResourceApi get invitations => new InvitationsResourceApi(_requeste r);
42 UserProfilesResourceApi get userProfiles => new UserProfilesResourceApi(_reque ster);
43
44 ClassroomApi(http.Client client, {core.String rootUrl: "https://classroom.goog leapis.com/", core.String servicePath: ""}) :
45 _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_A GENT);
46 }
47
48
49 class CoursesResourceApi {
50 final commons.ApiRequester _requester;
51
52 CoursesAliasesResourceApi get aliases => new CoursesAliasesResourceApi(_reques ter);
53 CoursesStudentsResourceApi get students => new CoursesStudentsResourceApi(_req uester);
54 CoursesTeachersResourceApi get teachers => new CoursesTeachersResourceApi(_req uester);
55
56 CoursesResourceApi(commons.ApiRequester client) :
57 _requester = client;
58
59 /**
60 * Creates a course. The user specified as the primary teacher in
61 * `primary_teacher_id` is the owner of the created course and added as a
62 * teacher. This method returns the following error codes: *
63 * `PERMISSION_DENIED` if the requesting user is not permitted to create
64 * courses. * `NOT_FOUND` if the primary teacher is not a valid user. *
65 * `ALREADY_EXISTS` if an alias was specified and already exists.
66 *
67 * [request] - The metadata request object.
68 *
69 * Request parameters:
70 *
71 * Completes with a [Course].
72 *
73 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
74 * error.
75 *
76 * If the used [http.Client] completes with an error when making a REST call,
77 * this method will complete with the same error.
78 */
79 async.Future<Course> create(Course request) {
80 var _url = null;
81 var _queryParams = new core.Map();
82 var _uploadMedia = null;
83 var _uploadOptions = null;
84 var _downloadOptions = commons.DownloadOptions.Metadata;
85 var _body = null;
86
87 if (request != null) {
88 _body = convert.JSON.encode((request).toJson());
89 }
90
91 _url = 'v1/courses';
92
93 var _response = _requester.request(_url,
94 "POST",
95 body: _body,
96 queryParams: _queryParams,
97 uploadOptions: _uploadOptions,
98 uploadMedia: _uploadMedia,
99 downloadOptions: _downloadOptions);
100 return _response.then((data) => new Course.fromJson(data));
101 }
102
103 /**
104 * Deletes a course. This method returns the following error codes: *
105 * `PERMISSION_DENIED` if the requesting user is not permitted to delete the
106 * requested course. * `NOT_FOUND` if no course exists with the requested ID.
107 *
108 * Request parameters:
109 *
110 * [id] - Identifier of the course to delete. This may either be the
111 * Classroom-assigned identifier or an
112 * [alias][google.classroom.v1.CourseAlias].
113 *
114 * Completes with a [Empty].
115 *
116 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
117 * error.
118 *
119 * If the used [http.Client] completes with an error when making a REST call,
120 * this method will complete with the same error.
121 */
122 async.Future<Empty> delete(core.String id) {
123 var _url = null;
124 var _queryParams = new core.Map();
125 var _uploadMedia = null;
126 var _uploadOptions = null;
127 var _downloadOptions = commons.DownloadOptions.Metadata;
128 var _body = null;
129
130 if (id == null) {
131 throw new core.ArgumentError("Parameter id is required.");
132 }
133
134 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$id');
135
136 var _response = _requester.request(_url,
137 "DELETE",
138 body: _body,
139 queryParams: _queryParams,
140 uploadOptions: _uploadOptions,
141 uploadMedia: _uploadMedia,
142 downloadOptions: _downloadOptions);
143 return _response.then((data) => new Empty.fromJson(data));
144 }
145
146 /**
147 * Returns a course. This method returns the following error codes: *
148 * `PERMISSION_DENIED` if the requesting user is not permitted to access the
149 * requested course. * `NOT_FOUND` if no course exists with the requested ID.
150 *
151 * Request parameters:
152 *
153 * [id] - Identifier of the course to return. This may either be the
154 * Classroom-assigned identifier or an
155 * [alias][google.classroom.v1.CourseAlias].
156 *
157 * Completes with a [Course].
158 *
159 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
160 * error.
161 *
162 * If the used [http.Client] completes with an error when making a REST call,
163 * this method will complete with the same error.
164 */
165 async.Future<Course> get(core.String id) {
166 var _url = null;
167 var _queryParams = new core.Map();
168 var _uploadMedia = null;
169 var _uploadOptions = null;
170 var _downloadOptions = commons.DownloadOptions.Metadata;
171 var _body = null;
172
173 if (id == null) {
174 throw new core.ArgumentError("Parameter id is required.");
175 }
176
177 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$id');
178
179 var _response = _requester.request(_url,
180 "GET",
181 body: _body,
182 queryParams: _queryParams,
183 uploadOptions: _uploadOptions,
184 uploadMedia: _uploadMedia,
185 downloadOptions: _downloadOptions);
186 return _response.then((data) => new Course.fromJson(data));
187 }
188
189 /**
190 * Returns a list of courses that the requesting user is permitted to view,
191 * restricted to those that match the request. This method returns the
192 * following error codes: * `INVALID_ARGUMENT` if the query argument is
193 * malformed. * `NOT_FOUND` if any users specified in the query arguments do
194 * not exist.
195 *
196 * Request parameters:
197 *
198 * [studentId] - Restricts returned courses to those having a student with the
199 * specified identifier, or an alias that identifies a student. The following
200 * aliases are supported: * the e-mail address of the user * the string
201 * literal `"me"`, indicating that the requesting user
202 *
203 * [teacherId] - Restricts returned courses to those having a teacher with the
204 * specified identifier, or an alias that identifies a teacher. The following
205 * aliases are supported: * the e-mail address of the user * the string
206 * literal `"me"`, indicating that the requesting user
207 *
208 * [pageSize] - Maximum number of items to return. Zero or unspecified
209 * indicates that the server may assign a maximum. The server may return fewer
210 * than the specified number of results.
211 *
212 * [pageToken] -
213 * [nextPageToken][google.classroom.v1.ListCoursesResponse.next_page_token]
214 * value returned from a previous
215 * [list][google.classroom.v1.Courses.ListCourses] call, indicating that the
216 * subsequent page of results should be returned. The
217 * [list][google.classroom.v1.Courses.ListCourses] request must be identical
218 * to the one which resulted in this token.
219 *
220 * Completes with a [ListCoursesResponse].
221 *
222 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
223 * error.
224 *
225 * If the used [http.Client] completes with an error when making a REST call,
226 * this method will complete with the same error.
227 */
228 async.Future<ListCoursesResponse> list({core.String studentId, core.String tea cherId, core.int pageSize, core.String pageToken}) {
229 var _url = null;
230 var _queryParams = new core.Map();
231 var _uploadMedia = null;
232 var _uploadOptions = null;
233 var _downloadOptions = commons.DownloadOptions.Metadata;
234 var _body = null;
235
236 if (studentId != null) {
237 _queryParams["studentId"] = [studentId];
238 }
239 if (teacherId != null) {
240 _queryParams["teacherId"] = [teacherId];
241 }
242 if (pageSize != null) {
243 _queryParams["pageSize"] = ["${pageSize}"];
244 }
245 if (pageToken != null) {
246 _queryParams["pageToken"] = [pageToken];
247 }
248
249 _url = 'v1/courses';
250
251 var _response = _requester.request(_url,
252 "GET",
253 body: _body,
254 queryParams: _queryParams,
255 uploadOptions: _uploadOptions,
256 uploadMedia: _uploadMedia,
257 downloadOptions: _downloadOptions);
258 return _response.then((data) => new ListCoursesResponse.fromJson(data));
259 }
260
261 /**
262 * Updates one or more fields a course. This method returns the following
263 * error codes: * `PERMISSION_DENIED` if the requesting user is not permitted
264 * to modify the requested course. * `NOT_FOUND` if no course exists with the
265 * requested ID. * `INVALID_ARGUMENT` if invalid fields are specified in the
266 * update mask or if no update mask is supplied.
267 *
268 * [request] - The metadata request object.
269 *
270 * Request parameters:
271 *
272 * [id] - Identifier of the course to update. This may either be the
273 * Classroom-assigned identifier or an
274 * [alias][google.classroom.v1.CourseAlias].
275 *
276 * [updateMask] - Mask which identifies which fields on the course to update.
277 * This field is required to do an update. The update will fail if invalid
278 * fields are specified. Valid fields are listed below: * `name` * `section` *
279 * `descriptionHeading` * `description` * `room` * `courseState` When set in a
280 * query parameter, this should be specified as `updateMask=,,...`
281 *
282 * Completes with a [Course].
283 *
284 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
285 * error.
286 *
287 * If the used [http.Client] completes with an error when making a REST call,
288 * this method will complete with the same error.
289 */
290 async.Future<Course> patch(Course request, core.String id, {core.String update Mask}) {
291 var _url = null;
292 var _queryParams = new core.Map();
293 var _uploadMedia = null;
294 var _uploadOptions = null;
295 var _downloadOptions = commons.DownloadOptions.Metadata;
296 var _body = null;
297
298 if (request != null) {
299 _body = convert.JSON.encode((request).toJson());
300 }
301 if (id == null) {
302 throw new core.ArgumentError("Parameter id is required.");
303 }
304 if (updateMask != null) {
305 _queryParams["updateMask"] = [updateMask];
306 }
307
308 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$id');
309
310 var _response = _requester.request(_url,
311 "PATCH",
312 body: _body,
313 queryParams: _queryParams,
314 uploadOptions: _uploadOptions,
315 uploadMedia: _uploadMedia,
316 downloadOptions: _downloadOptions);
317 return _response.then((data) => new Course.fromJson(data));
318 }
319
320 /**
321 * Updates a course. This method returns the following error codes: *
322 * `PERMISSION_DENIED` if the requesting user is not permitted to modify the
323 * requested course. * `NOT_FOUND` if no course exists with the requested ID.
324 *
325 * [request] - The metadata request object.
326 *
327 * Request parameters:
328 *
329 * [id] - Identifier of the course to update. This may either be the
330 * Classroom-assigned identifier or an
331 * [alias][google.classroom.v1.CourseAlias].
332 *
333 * Completes with a [Course].
334 *
335 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
336 * error.
337 *
338 * If the used [http.Client] completes with an error when making a REST call,
339 * this method will complete with the same error.
340 */
341 async.Future<Course> update(Course request, core.String id) {
342 var _url = null;
343 var _queryParams = new core.Map();
344 var _uploadMedia = null;
345 var _uploadOptions = null;
346 var _downloadOptions = commons.DownloadOptions.Metadata;
347 var _body = null;
348
349 if (request != null) {
350 _body = convert.JSON.encode((request).toJson());
351 }
352 if (id == null) {
353 throw new core.ArgumentError("Parameter id is required.");
354 }
355
356 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$id');
357
358 var _response = _requester.request(_url,
359 "PUT",
360 body: _body,
361 queryParams: _queryParams,
362 uploadOptions: _uploadOptions,
363 uploadMedia: _uploadMedia,
364 downloadOptions: _downloadOptions);
365 return _response.then((data) => new Course.fromJson(data));
366 }
367
368 }
369
370
371 class CoursesAliasesResourceApi {
372 final commons.ApiRequester _requester;
373
374 CoursesAliasesResourceApi(commons.ApiRequester client) :
375 _requester = client;
376
377 /**
378 * Creates an alias to a course. This method returns the following error
379 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
380 * create the alias. * `NOT_FOUND` if the course does not exist. *
381 * `ALREADY_EXISTS` if the alias already exists.
382 *
383 * [request] - The metadata request object.
384 *
385 * Request parameters:
386 *
387 * [courseId] - The identifier of the course to alias. This may either be the
388 * Classroom-assigned identifier or an
389 * [alias][google.classroom.v1.CourseAlias].
390 *
391 * Completes with a [CourseAlias].
392 *
393 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
394 * error.
395 *
396 * If the used [http.Client] completes with an error when making a REST call,
397 * this method will complete with the same error.
398 */
399 async.Future<CourseAlias> create(CourseAlias request, core.String courseId) {
400 var _url = null;
401 var _queryParams = new core.Map();
402 var _uploadMedia = null;
403 var _uploadOptions = null;
404 var _downloadOptions = commons.DownloadOptions.Metadata;
405 var _body = null;
406
407 if (request != null) {
408 _body = convert.JSON.encode((request).toJson());
409 }
410 if (courseId == null) {
411 throw new core.ArgumentError("Parameter courseId is required.");
412 }
413
414 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/aliase s';
415
416 var _response = _requester.request(_url,
417 "POST",
418 body: _body,
419 queryParams: _queryParams,
420 uploadOptions: _uploadOptions,
421 uploadMedia: _uploadMedia,
422 downloadOptions: _downloadOptions);
423 return _response.then((data) => new CourseAlias.fromJson(data));
424 }
425
426 /**
427 * Deletes an alias of a course. This method returns the following error
428 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
429 * remove the alias. * `NOT_FOUND` if the alias does not exist.
430 *
431 * Request parameters:
432 *
433 * [courseId] - The identifier of the course whose alias should be deleted.
434 * This may either be the Classroom-assigned identifier or an
435 * [alias][google.classroom.v1.CourseAlias].
436 *
437 * [alias] - The alias to delete. This may not be the Classroom-assigned
438 * identifier.
439 *
440 * Completes with a [Empty].
441 *
442 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
443 * error.
444 *
445 * If the used [http.Client] completes with an error when making a REST call,
446 * this method will complete with the same error.
447 */
448 async.Future<Empty> delete(core.String courseId, core.String alias) {
449 var _url = null;
450 var _queryParams = new core.Map();
451 var _uploadMedia = null;
452 var _uploadOptions = null;
453 var _downloadOptions = commons.DownloadOptions.Metadata;
454 var _body = null;
455
456 if (courseId == null) {
457 throw new core.ArgumentError("Parameter courseId is required.");
458 }
459 if (alias == null) {
460 throw new core.ArgumentError("Parameter alias is required.");
461 }
462
463 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/aliase s/' + commons.Escaper.ecapeVariable('$alias');
464
465 var _response = _requester.request(_url,
466 "DELETE",
467 body: _body,
468 queryParams: _queryParams,
469 uploadOptions: _uploadOptions,
470 uploadMedia: _uploadMedia,
471 downloadOptions: _downloadOptions);
472 return _response.then((data) => new Empty.fromJson(data));
473 }
474
475 /**
476 * Lists the aliases of a course. This method returns the following error
477 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
478 * access the course. * `NOT_FOUND` if the course does not exist.
479 *
480 * Request parameters:
481 *
482 * [courseId] - The identifier of the course. This may either be the
483 * Classroom-assigned identifier or an
484 * [alias][google.classroom.v1.CourseAlias].
485 *
486 * [pageSize] - Maximum number of items to return. Zero or unspecified
487 * indicates that the server may assign a maximum. The server may return fewer
488 * than the specified number of results.
489 *
490 * [pageToken] -
491 * [nextPageToken][google.classroom.v1.ListCourseAliasesResponse.next_page_tok en]
492 * value returned from a previous
493 * [list][google.classroom.v1.Courses.ListCourseAliases] call, indicating that
494 * the subsequent page of results should be returned. The
495 * [list][google.classroom.v1.Courses.ListCourseAliases] request must be
496 * identical to the one which resulted in this token.
497 *
498 * Completes with a [ListCourseAliasesResponse].
499 *
500 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
501 * error.
502 *
503 * If the used [http.Client] completes with an error when making a REST call,
504 * this method will complete with the same error.
505 */
506 async.Future<ListCourseAliasesResponse> list(core.String courseId, {core.int p ageSize, core.String pageToken}) {
507 var _url = null;
508 var _queryParams = new core.Map();
509 var _uploadMedia = null;
510 var _uploadOptions = null;
511 var _downloadOptions = commons.DownloadOptions.Metadata;
512 var _body = null;
513
514 if (courseId == null) {
515 throw new core.ArgumentError("Parameter courseId is required.");
516 }
517 if (pageSize != null) {
518 _queryParams["pageSize"] = ["${pageSize}"];
519 }
520 if (pageToken != null) {
521 _queryParams["pageToken"] = [pageToken];
522 }
523
524 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/aliase s';
525
526 var _response = _requester.request(_url,
527 "GET",
528 body: _body,
529 queryParams: _queryParams,
530 uploadOptions: _uploadOptions,
531 uploadMedia: _uploadMedia,
532 downloadOptions: _downloadOptions);
533 return _response.then((data) => new ListCourseAliasesResponse.fromJson(data) );
534 }
535
536 }
537
538
539 class CoursesStudentsResourceApi {
540 final commons.ApiRequester _requester;
541
542 CoursesStudentsResourceApi(commons.ApiRequester client) :
543 _requester = client;
544
545 /**
546 * Adds a user as a student of a course. This method returns the following
547 * error codes: * `PERMISSION_DENIED` if the requesting user is not permitted
548 * to create students in this course. * `NOT_FOUND` if the requested course ID
549 * does not exist. * `ALREADY_EXISTS` if the user is already a student or
550 * student in the course.
551 *
552 * [request] - The metadata request object.
553 *
554 * Request parameters:
555 *
556 * [courseId] - Identifier of the course to create the student in. This may
557 * either be the Classroom-assigned identifier or an alias.
558 *
559 * [enrollmentCode] - Enrollment code of the course to create the student in.
560 * This is required if [userId][google.classroom.v1.Student.user_id]
561 * corresponds to the requesting user; this may be omitted if the requesting
562 * user has administrative permissions to create students for any user.
563 *
564 * Completes with a [Student].
565 *
566 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
567 * error.
568 *
569 * If the used [http.Client] completes with an error when making a REST call,
570 * this method will complete with the same error.
571 */
572 async.Future<Student> create(Student request, core.String courseId, {core.Stri ng enrollmentCode}) {
573 var _url = null;
574 var _queryParams = new core.Map();
575 var _uploadMedia = null;
576 var _uploadOptions = null;
577 var _downloadOptions = commons.DownloadOptions.Metadata;
578 var _body = null;
579
580 if (request != null) {
581 _body = convert.JSON.encode((request).toJson());
582 }
583 if (courseId == null) {
584 throw new core.ArgumentError("Parameter courseId is required.");
585 }
586 if (enrollmentCode != null) {
587 _queryParams["enrollmentCode"] = [enrollmentCode];
588 }
589
590 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/studen ts';
591
592 var _response = _requester.request(_url,
593 "POST",
594 body: _body,
595 queryParams: _queryParams,
596 uploadOptions: _uploadOptions,
597 uploadMedia: _uploadMedia,
598 downloadOptions: _downloadOptions);
599 return _response.then((data) => new Student.fromJson(data));
600 }
601
602 /**
603 * Deletes a student of a course. This method returns the following error
604 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
605 * delete students of this course. * `NOT_FOUND` if no student of this course
606 * has the requested ID or if the course does not exist.
607 *
608 * Request parameters:
609 *
610 * [courseId] - Unique identifier of the course. This may either be the
611 * Classroom-assigned identifier or an alias.
612 *
613 * [userId] - Identifier of the student to delete, or an alias the identifies
614 * the user. The following aliases are supported: * the e-mail address of the
615 * user * the string literal `"me"`, indicating that the requesting user
616 *
617 * Completes with a [Empty].
618 *
619 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
620 * error.
621 *
622 * If the used [http.Client] completes with an error when making a REST call,
623 * this method will complete with the same error.
624 */
625 async.Future<Empty> delete(core.String courseId, core.String userId) {
626 var _url = null;
627 var _queryParams = new core.Map();
628 var _uploadMedia = null;
629 var _uploadOptions = null;
630 var _downloadOptions = commons.DownloadOptions.Metadata;
631 var _body = null;
632
633 if (courseId == null) {
634 throw new core.ArgumentError("Parameter courseId is required.");
635 }
636 if (userId == null) {
637 throw new core.ArgumentError("Parameter userId is required.");
638 }
639
640 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/studen ts/' + commons.Escaper.ecapeVariable('$userId');
641
642 var _response = _requester.request(_url,
643 "DELETE",
644 body: _body,
645 queryParams: _queryParams,
646 uploadOptions: _uploadOptions,
647 uploadMedia: _uploadMedia,
648 downloadOptions: _downloadOptions);
649 return _response.then((data) => new Empty.fromJson(data));
650 }
651
652 /**
653 * Returns a student of a course. This method returns the following error
654 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
655 * view students of this course. * `NOT_FOUND` if no student of this course
656 * has the requested ID or if the course does not exist.
657 *
658 * Request parameters:
659 *
660 * [courseId] - Unique identifier of the course. This may either be the
661 * Classroom-assigned identifier or an alias.
662 *
663 * [userId] - Identifier of the student to return, or an alias the identifies
664 * the user. The following aliases are supported: * the e-mail address of the
665 * user * the string literal `"me"`, indicating that the requesting user
666 *
667 * Completes with a [Student].
668 *
669 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
670 * error.
671 *
672 * If the used [http.Client] completes with an error when making a REST call,
673 * this method will complete with the same error.
674 */
675 async.Future<Student> get(core.String courseId, core.String userId) {
676 var _url = null;
677 var _queryParams = new core.Map();
678 var _uploadMedia = null;
679 var _uploadOptions = null;
680 var _downloadOptions = commons.DownloadOptions.Metadata;
681 var _body = null;
682
683 if (courseId == null) {
684 throw new core.ArgumentError("Parameter courseId is required.");
685 }
686 if (userId == null) {
687 throw new core.ArgumentError("Parameter userId is required.");
688 }
689
690 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/studen ts/' + commons.Escaper.ecapeVariable('$userId');
691
692 var _response = _requester.request(_url,
693 "GET",
694 body: _body,
695 queryParams: _queryParams,
696 uploadOptions: _uploadOptions,
697 uploadMedia: _uploadMedia,
698 downloadOptions: _downloadOptions);
699 return _response.then((data) => new Student.fromJson(data));
700 }
701
702 /**
703 * Returns a list of students of this course that the requester is permitted
704 * to view. Fails with `NOT_FOUND` if the course does not exist.
705 *
706 * Request parameters:
707 *
708 * [courseId] - Unique identifier of the course. This may either be the
709 * Classroom-assigned identifier or an alias.
710 *
711 * [pageSize] - Maximum number of items to return. Zero means no maximum. The
712 * server may return fewer than the specified number of results.
713 *
714 * [pageToken] -
715 * [nextPageToken][google.classroom.v1.ListStudentsResponse.next_page_token]
716 * value returned from a previous
717 * [list][google.classroom.v1.Users.ListStudents] call, indicating that the
718 * subsequent page of results should be returned. The
719 * [list][google.classroom.v1.Users.ListStudents] request must be identical to
720 * the one which resulted in this token.
721 *
722 * Completes with a [ListStudentsResponse].
723 *
724 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
725 * error.
726 *
727 * If the used [http.Client] completes with an error when making a REST call,
728 * this method will complete with the same error.
729 */
730 async.Future<ListStudentsResponse> list(core.String courseId, {core.int pageSi ze, core.String pageToken}) {
731 var _url = null;
732 var _queryParams = new core.Map();
733 var _uploadMedia = null;
734 var _uploadOptions = null;
735 var _downloadOptions = commons.DownloadOptions.Metadata;
736 var _body = null;
737
738 if (courseId == null) {
739 throw new core.ArgumentError("Parameter courseId is required.");
740 }
741 if (pageSize != null) {
742 _queryParams["pageSize"] = ["${pageSize}"];
743 }
744 if (pageToken != null) {
745 _queryParams["pageToken"] = [pageToken];
746 }
747
748 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/studen ts';
749
750 var _response = _requester.request(_url,
751 "GET",
752 body: _body,
753 queryParams: _queryParams,
754 uploadOptions: _uploadOptions,
755 uploadMedia: _uploadMedia,
756 downloadOptions: _downloadOptions);
757 return _response.then((data) => new ListStudentsResponse.fromJson(data));
758 }
759
760 }
761
762
763 class CoursesTeachersResourceApi {
764 final commons.ApiRequester _requester;
765
766 CoursesTeachersResourceApi(commons.ApiRequester client) :
767 _requester = client;
768
769 /**
770 * Creates a teacher of a course. This method returns the following error
771 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
772 * create teachers in this course. * `NOT_FOUND` if the requested course ID
773 * does not exist. * `ALREADY_EXISTS` if the user is already a teacher or
774 * student in the course.
775 *
776 * [request] - The metadata request object.
777 *
778 * Request parameters:
779 *
780 * [courseId] - Unique identifier of the course. This may either be the
781 * Classroom-assigned identifier or an alias.
782 *
783 * Completes with a [Teacher].
784 *
785 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
786 * error.
787 *
788 * If the used [http.Client] completes with an error when making a REST call,
789 * this method will complete with the same error.
790 */
791 async.Future<Teacher> create(Teacher request, core.String courseId) {
792 var _url = null;
793 var _queryParams = new core.Map();
794 var _uploadMedia = null;
795 var _uploadOptions = null;
796 var _downloadOptions = commons.DownloadOptions.Metadata;
797 var _body = null;
798
799 if (request != null) {
800 _body = convert.JSON.encode((request).toJson());
801 }
802 if (courseId == null) {
803 throw new core.ArgumentError("Parameter courseId is required.");
804 }
805
806 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/teache rs';
807
808 var _response = _requester.request(_url,
809 "POST",
810 body: _body,
811 queryParams: _queryParams,
812 uploadOptions: _uploadOptions,
813 uploadMedia: _uploadMedia,
814 downloadOptions: _downloadOptions);
815 return _response.then((data) => new Teacher.fromJson(data));
816 }
817
818 /**
819 * Deletes a teacher of a course. This method returns the following error
820 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
821 * delete teachers of this course. * `NOT_FOUND` if no teacher of this course
822 * has the requested ID or if the course does not exist. *
823 * `FAILED_PRECONDITION` if the requested ID belongs to the primary teacher of
824 * this course.
825 *
826 * Request parameters:
827 *
828 * [courseId] - Unique identifier of the course. This may either be the
829 * Classroom-assigned identifier or an alias.
830 *
831 * [userId] - Identifier of the teacher to delete, or an alias the identifies
832 * the user. the following aliases are supported: * the e-mail address of the
833 * user * the string literal `"me"`, indicating that the requesting user
834 *
835 * Completes with a [Empty].
836 *
837 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
838 * error.
839 *
840 * If the used [http.Client] completes with an error when making a REST call,
841 * this method will complete with the same error.
842 */
843 async.Future<Empty> delete(core.String courseId, core.String userId) {
844 var _url = null;
845 var _queryParams = new core.Map();
846 var _uploadMedia = null;
847 var _uploadOptions = null;
848 var _downloadOptions = commons.DownloadOptions.Metadata;
849 var _body = null;
850
851 if (courseId == null) {
852 throw new core.ArgumentError("Parameter courseId is required.");
853 }
854 if (userId == null) {
855 throw new core.ArgumentError("Parameter userId is required.");
856 }
857
858 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/teache rs/' + commons.Escaper.ecapeVariable('$userId');
859
860 var _response = _requester.request(_url,
861 "DELETE",
862 body: _body,
863 queryParams: _queryParams,
864 uploadOptions: _uploadOptions,
865 uploadMedia: _uploadMedia,
866 downloadOptions: _downloadOptions);
867 return _response.then((data) => new Empty.fromJson(data));
868 }
869
870 /**
871 * Returns a teacher of a course. This method returns the following error
872 * codes: * `PERMISSION_DENIED` if the requesting user is not permitted to
873 * view teachers of this course. * `NOT_FOUND` if no teacher of this course
874 * has the requested ID or if the course does not exist.
875 *
876 * Request parameters:
877 *
878 * [courseId] - Unique identifier of the course. This may either be the
879 * Classroom-assigned identifier or an alias.
880 *
881 * [userId] - Identifier of the teacher to return, or an alias the identifies
882 * the user. the following aliases are supported: * the e-mail address of the
883 * user * the string literal `"me"`, indicating that the requesting user
884 *
885 * Completes with a [Teacher].
886 *
887 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
888 * error.
889 *
890 * If the used [http.Client] completes with an error when making a REST call,
891 * this method will complete with the same error.
892 */
893 async.Future<Teacher> get(core.String courseId, core.String userId) {
894 var _url = null;
895 var _queryParams = new core.Map();
896 var _uploadMedia = null;
897 var _uploadOptions = null;
898 var _downloadOptions = commons.DownloadOptions.Metadata;
899 var _body = null;
900
901 if (courseId == null) {
902 throw new core.ArgumentError("Parameter courseId is required.");
903 }
904 if (userId == null) {
905 throw new core.ArgumentError("Parameter userId is required.");
906 }
907
908 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/teache rs/' + commons.Escaper.ecapeVariable('$userId');
909
910 var _response = _requester.request(_url,
911 "GET",
912 body: _body,
913 queryParams: _queryParams,
914 uploadOptions: _uploadOptions,
915 uploadMedia: _uploadMedia,
916 downloadOptions: _downloadOptions);
917 return _response.then((data) => new Teacher.fromJson(data));
918 }
919
920 /**
921 * Returns a list of teachers of this course that the requester is permitted
922 * to view. Fails with `NOT_FOUND` if the course does not exist.
923 *
924 * Request parameters:
925 *
926 * [courseId] - Unique identifier of the course. This may either be the
927 * Classroom-assigned identifier or an alias.
928 *
929 * [pageSize] - Maximum number of items to return. Zero means no maximum. The
930 * server may return fewer than the specified number of results.
931 *
932 * [pageToken] -
933 * [nextPageToken][google.classroom.v1.ListTeachersResponse.next_page_token]
934 * value returned from a previous
935 * [list][google.classroom.v1.Users.ListTeachers] call, indicating that the
936 * subsequent page of results should be returned. The
937 * [list][google.classroom.v1.Users.ListTeachers] request must be identical to
938 * the one which resulted in this token.
939 *
940 * Completes with a [ListTeachersResponse].
941 *
942 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
943 * error.
944 *
945 * If the used [http.Client] completes with an error when making a REST call,
946 * this method will complete with the same error.
947 */
948 async.Future<ListTeachersResponse> list(core.String courseId, {core.int pageSi ze, core.String pageToken}) {
949 var _url = null;
950 var _queryParams = new core.Map();
951 var _uploadMedia = null;
952 var _uploadOptions = null;
953 var _downloadOptions = commons.DownloadOptions.Metadata;
954 var _body = null;
955
956 if (courseId == null) {
957 throw new core.ArgumentError("Parameter courseId is required.");
958 }
959 if (pageSize != null) {
960 _queryParams["pageSize"] = ["${pageSize}"];
961 }
962 if (pageToken != null) {
963 _queryParams["pageToken"] = [pageToken];
964 }
965
966 _url = 'v1/courses/' + commons.Escaper.ecapeVariable('$courseId') + '/teache rs';
967
968 var _response = _requester.request(_url,
969 "GET",
970 body: _body,
971 queryParams: _queryParams,
972 uploadOptions: _uploadOptions,
973 uploadMedia: _uploadMedia,
974 downloadOptions: _downloadOptions);
975 return _response.then((data) => new ListTeachersResponse.fromJson(data));
976 }
977
978 }
979
980
981 class InvitationsResourceApi {
982 final commons.ApiRequester _requester;
983
984 InvitationsResourceApi(commons.ApiRequester client) :
985 _requester = client;
986
987 /**
988 * Accepts an invitation, removing it and adding the invited user to the
989 * teachers or students (as appropriate) of the specified course. Only the
990 * invited user may accept an invitation. This method returns the following
991 * error codes: * `PERMISSION_DENIED` if the requesting user is not permitted
992 * to accept the requested invitation. * `NOT_FOUND` if no invitation exists
993 * with the requested ID.
994 *
995 * Request parameters:
996 *
997 * [id] - Identifier of the invitation to accept.
998 *
999 * Completes with a [Empty].
1000 *
1001 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1002 * error.
1003 *
1004 * If the used [http.Client] completes with an error when making a REST call,
1005 * this method will complete with the same error.
1006 */
1007 async.Future<Empty> accept(core.String id) {
1008 var _url = null;
1009 var _queryParams = new core.Map();
1010 var _uploadMedia = null;
1011 var _uploadOptions = null;
1012 var _downloadOptions = commons.DownloadOptions.Metadata;
1013 var _body = null;
1014
1015 if (id == null) {
1016 throw new core.ArgumentError("Parameter id is required.");
1017 }
1018
1019 _url = 'v1/invitations/' + commons.Escaper.ecapeVariable('$id') + ':accept';
1020
1021 var _response = _requester.request(_url,
1022 "POST",
1023 body: _body,
1024 queryParams: _queryParams,
1025 uploadOptions: _uploadOptions,
1026 uploadMedia: _uploadMedia,
1027 downloadOptions: _downloadOptions);
1028 return _response.then((data) => new Empty.fromJson(data));
1029 }
1030
1031 /**
1032 * Creates a invitation. Only one invitation for a user and course may exist
1033 * at a time. Delete and recreate an invitation to make changes. This method
1034 * returns the following error codes: * `PERMISSION_DENIED` if the requesting
1035 * user is not permitted to create invitations for this course. * `NOT_FOUND`
1036 * if the course or the user does not exist. * `ALREADY_EXISTS` if an
1037 * invitation for the specified user and course already exists.
1038 *
1039 * [request] - The metadata request object.
1040 *
1041 * Request parameters:
1042 *
1043 * Completes with a [Invitation].
1044 *
1045 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1046 * error.
1047 *
1048 * If the used [http.Client] completes with an error when making a REST call,
1049 * this method will complete with the same error.
1050 */
1051 async.Future<Invitation> create(Invitation request) {
1052 var _url = null;
1053 var _queryParams = new core.Map();
1054 var _uploadMedia = null;
1055 var _uploadOptions = null;
1056 var _downloadOptions = commons.DownloadOptions.Metadata;
1057 var _body = null;
1058
1059 if (request != null) {
1060 _body = convert.JSON.encode((request).toJson());
1061 }
1062
1063 _url = 'v1/invitations';
1064
1065 var _response = _requester.request(_url,
1066 "POST",
1067 body: _body,
1068 queryParams: _queryParams,
1069 uploadOptions: _uploadOptions,
1070 uploadMedia: _uploadMedia,
1071 downloadOptions: _downloadOptions);
1072 return _response.then((data) => new Invitation.fromJson(data));
1073 }
1074
1075 /**
1076 * Deletes a invitation. This method returns the following error codes: *
1077 * `PERMISSION_DENIED` if the requesting user is not permitted to delete the
1078 * requested invitation. * `NOT_FOUND` if no invitation exists with the
1079 * requested ID.
1080 *
1081 * Request parameters:
1082 *
1083 * [id] - Identifier of the invitation to delete.
1084 *
1085 * Completes with a [Empty].
1086 *
1087 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1088 * error.
1089 *
1090 * If the used [http.Client] completes with an error when making a REST call,
1091 * this method will complete with the same error.
1092 */
1093 async.Future<Empty> delete(core.String id) {
1094 var _url = null;
1095 var _queryParams = new core.Map();
1096 var _uploadMedia = null;
1097 var _uploadOptions = null;
1098 var _downloadOptions = commons.DownloadOptions.Metadata;
1099 var _body = null;
1100
1101 if (id == null) {
1102 throw new core.ArgumentError("Parameter id is required.");
1103 }
1104
1105 _url = 'v1/invitations/' + commons.Escaper.ecapeVariable('$id');
1106
1107 var _response = _requester.request(_url,
1108 "DELETE",
1109 body: _body,
1110 queryParams: _queryParams,
1111 uploadOptions: _uploadOptions,
1112 uploadMedia: _uploadMedia,
1113 downloadOptions: _downloadOptions);
1114 return _response.then((data) => new Empty.fromJson(data));
1115 }
1116
1117 /**
1118 * Returns a invitation. This method returns the following error codes: *
1119 * `PERMISSION_DENIED` if the requesting user is not permitted to view the
1120 * requested invitation. * `NOT_FOUND` if no invitation exists with the
1121 * requested ID.
1122 *
1123 * Request parameters:
1124 *
1125 * [id] - Identifier of the invitation to return.
1126 *
1127 * Completes with a [Invitation].
1128 *
1129 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1130 * error.
1131 *
1132 * If the used [http.Client] completes with an error when making a REST call,
1133 * this method will complete with the same error.
1134 */
1135 async.Future<Invitation> get(core.String id) {
1136 var _url = null;
1137 var _queryParams = new core.Map();
1138 var _uploadMedia = null;
1139 var _uploadOptions = null;
1140 var _downloadOptions = commons.DownloadOptions.Metadata;
1141 var _body = null;
1142
1143 if (id == null) {
1144 throw new core.ArgumentError("Parameter id is required.");
1145 }
1146
1147 _url = 'v1/invitations/' + commons.Escaper.ecapeVariable('$id');
1148
1149 var _response = _requester.request(_url,
1150 "GET",
1151 body: _body,
1152 queryParams: _queryParams,
1153 uploadOptions: _uploadOptions,
1154 uploadMedia: _uploadMedia,
1155 downloadOptions: _downloadOptions);
1156 return _response.then((data) => new Invitation.fromJson(data));
1157 }
1158
1159 /**
1160 * Returns a list of invitations that the requesting user is permitted to
1161 * view, restricted to those that match the request. *Note:* At least one of
1162 * `user_id` or `course_id` must be supplied.
1163 *
1164 * Request parameters:
1165 *
1166 * [userId] - Restricts returned invitations to those for a specific user.
1167 * This may be the unique identifier for the user or an alias. The supported
1168 * aliases are: * the e-mail address of the user * the string literal `"me"`,
1169 * indicating the requesting user
1170 *
1171 * [courseId] - Restricts returned invitations to those for a course with the
1172 * specified identifier.
1173 *
1174 * [pageSize] - The maximum number of items to return. Zero means no maximum.
1175 * The server may return fewer than the specified number of results.
1176 *
1177 * [pageToken] -
1178 * [nextPageToken][google.classroom.v1.ListInvitationsRespnse.next_page_token]
1179 * value returned from a previous
1180 * [list][google.classroom.v1.Users.ListInvitations] call, indicating that the
1181 * subsequent page of results should be returned. The
1182 * [list][google.classroom.v1.Users.ListInvitations] request must be identical
1183 * to the one which resulted in this token.
1184 *
1185 * Completes with a [ListInvitationsResponse].
1186 *
1187 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1188 * error.
1189 *
1190 * If the used [http.Client] completes with an error when making a REST call,
1191 * this method will complete with the same error.
1192 */
1193 async.Future<ListInvitationsResponse> list({core.String userId, core.String co urseId, core.int pageSize, core.String pageToken}) {
1194 var _url = null;
1195 var _queryParams = new core.Map();
1196 var _uploadMedia = null;
1197 var _uploadOptions = null;
1198 var _downloadOptions = commons.DownloadOptions.Metadata;
1199 var _body = null;
1200
1201 if (userId != null) {
1202 _queryParams["userId"] = [userId];
1203 }
1204 if (courseId != null) {
1205 _queryParams["courseId"] = [courseId];
1206 }
1207 if (pageSize != null) {
1208 _queryParams["pageSize"] = ["${pageSize}"];
1209 }
1210 if (pageToken != null) {
1211 _queryParams["pageToken"] = [pageToken];
1212 }
1213
1214 _url = 'v1/invitations';
1215
1216 var _response = _requester.request(_url,
1217 "GET",
1218 body: _body,
1219 queryParams: _queryParams,
1220 uploadOptions: _uploadOptions,
1221 uploadMedia: _uploadMedia,
1222 downloadOptions: _downloadOptions);
1223 return _response.then((data) => new ListInvitationsResponse.fromJson(data));
1224 }
1225
1226 }
1227
1228
1229 class UserProfilesResourceApi {
1230 final commons.ApiRequester _requester;
1231
1232 UserProfilesResourceApi(commons.ApiRequester client) :
1233 _requester = client;
1234
1235 /**
1236 * Returns a user profile. This method returns the following error codes: *
1237 * `PERMISSION_DENIED` if the requesting user is not permitted to access this
1238 * user profile. * `NOT_FOUND` if the profile does not exist.
1239 *
1240 * Request parameters:
1241 *
1242 * [userId] - Identifier of the profile to return, or an alias the identifies
1243 * the user. The following aliases are supported: * the e-mail address of the
1244 * user * the string literal `"me"`, indicating the requesting user
1245 *
1246 * Completes with a [UserProfile].
1247 *
1248 * Completes with a [commons.ApiRequestError] if the API endpoint returned an
1249 * error.
1250 *
1251 * If the used [http.Client] completes with an error when making a REST call,
1252 * this method will complete with the same error.
1253 */
1254 async.Future<UserProfile> get(core.String userId) {
1255 var _url = null;
1256 var _queryParams = new core.Map();
1257 var _uploadMedia = null;
1258 var _uploadOptions = null;
1259 var _downloadOptions = commons.DownloadOptions.Metadata;
1260 var _body = null;
1261
1262 if (userId == null) {
1263 throw new core.ArgumentError("Parameter userId is required.");
1264 }
1265
1266 _url = 'v1/userProfiles/' + commons.Escaper.ecapeVariable('$userId');
1267
1268 var _response = _requester.request(_url,
1269 "GET",
1270 body: _body,
1271 queryParams: _queryParams,
1272 uploadOptions: _uploadOptions,
1273 uploadMedia: _uploadMedia,
1274 downloadOptions: _downloadOptions);
1275 return _response.then((data) => new UserProfile.fromJson(data));
1276 }
1277
1278 }
1279
1280
1281
1282 /** A Course in Classroom. */
1283 class Course {
1284 /** Absolute link to this course in the Classroom web UI. Read-only. */
1285 core.String alternateLink;
1286 /**
1287 * State of the course. If unspecified, the default state will be
1288 * `PROVISIONED`.
1289 * Possible string values are:
1290 * - "COURSE_STATE_UNSPECIFIED" : A COURSE_STATE_UNSPECIFIED.
1291 * - "ACTIVE" : A ACTIVE.
1292 * - "ARCHIVED" : A ARCHIVED.
1293 * - "PROVISIONED" : A PROVISIONED.
1294 * - "DECLINED" : A DECLINED.
1295 */
1296 core.String courseState;
1297 /**
1298 * Creation time of the course. Specifying this field in a course update mask
1299 * will result in an error. Read-only.
1300 */
1301 core.String creationTime;
1302 /**
1303 * Optional description. For example, "We'll be learning about about the
1304 * structure of living creatures from a combination of textbooks, guest
1305 * lectures, and lab work. Expect to be excited!" If set, this field must be a
1306 * valid UTF-8 string and no longer than 30,000 characters.
1307 */
1308 core.String description;
1309 /**
1310 * Optional heading for the description. For example, "Welcome to 10th Grade
1311 * Biology" If set, this field must be a valid UTF-8 string and no longer than
1312 * 3600 characters.
1313 */
1314 core.String descriptionHeading;
1315 /**
1316 * Enrollment code to use when joining this course. Specifying this field in a
1317 * course update mask will result in an error. Read-only.
1318 */
1319 core.String enrollmentCode;
1320 /**
1321 * Unique identifier for this course assigned by Classroom. You may optionally
1322 * set this to an [alias string][google.classroom.v1.CourseAlias] as part of
1323 * [creating a course][google.classroom.v1.Courses.CreateCourse], creating a
1324 * corresponding alias. The `ID` cannot be updated after a course is created.
1325 * Specifying this field in a course update mask will result in an error.
1326 */
1327 core.String id;
1328 /**
1329 * Name of the course. For example, "10th Grade Biology". This is required and
1330 * must be between 1 and 750 characters and a valid UTF-8 string.
1331 */
1332 core.String name;
1333 /**
1334 * The identifier of the owner (and primary teacher) of a course. When
1335 * specified as a parameter of CreateCourseRequest, this field is required. It
1336 * may be the numeric identifier for the user, or an alias that identifies the
1337 * owner. The following aliases are supported: * the e-mail address of the
1338 * user * the string literal `"me"`, indicating that the requesting user This
1339 * must be set in a CreateRequest; specifying this field in a course update
1340 * mask will result in an error.
1341 */
1342 core.String ownerId;
1343 /**
1344 * Optional room location. For example, "301" If set, this field must be a
1345 * valid UTF-8 string and no longer than 650 characters.
1346 */
1347 core.String room;
1348 /**
1349 * Section of the course For example, "Period 2". If set, this field must be a
1350 * valid UTF-8 string and no longer than 2800 characters.
1351 */
1352 core.String section;
1353 /**
1354 * Time of the most recent update to this course. Specifying this field in a
1355 * course update mask will result in an error. Read-only.
1356 */
1357 core.String updateTime;
1358
1359 Course();
1360
1361 Course.fromJson(core.Map _json) {
1362 if (_json.containsKey("alternateLink")) {
1363 alternateLink = _json["alternateLink"];
1364 }
1365 if (_json.containsKey("courseState")) {
1366 courseState = _json["courseState"];
1367 }
1368 if (_json.containsKey("creationTime")) {
1369 creationTime = _json["creationTime"];
1370 }
1371 if (_json.containsKey("description")) {
1372 description = _json["description"];
1373 }
1374 if (_json.containsKey("descriptionHeading")) {
1375 descriptionHeading = _json["descriptionHeading"];
1376 }
1377 if (_json.containsKey("enrollmentCode")) {
1378 enrollmentCode = _json["enrollmentCode"];
1379 }
1380 if (_json.containsKey("id")) {
1381 id = _json["id"];
1382 }
1383 if (_json.containsKey("name")) {
1384 name = _json["name"];
1385 }
1386 if (_json.containsKey("ownerId")) {
1387 ownerId = _json["ownerId"];
1388 }
1389 if (_json.containsKey("room")) {
1390 room = _json["room"];
1391 }
1392 if (_json.containsKey("section")) {
1393 section = _json["section"];
1394 }
1395 if (_json.containsKey("updateTime")) {
1396 updateTime = _json["updateTime"];
1397 }
1398 }
1399
1400 core.Map toJson() {
1401 var _json = new core.Map();
1402 if (alternateLink != null) {
1403 _json["alternateLink"] = alternateLink;
1404 }
1405 if (courseState != null) {
1406 _json["courseState"] = courseState;
1407 }
1408 if (creationTime != null) {
1409 _json["creationTime"] = creationTime;
1410 }
1411 if (description != null) {
1412 _json["description"] = description;
1413 }
1414 if (descriptionHeading != null) {
1415 _json["descriptionHeading"] = descriptionHeading;
1416 }
1417 if (enrollmentCode != null) {
1418 _json["enrollmentCode"] = enrollmentCode;
1419 }
1420 if (id != null) {
1421 _json["id"] = id;
1422 }
1423 if (name != null) {
1424 _json["name"] = name;
1425 }
1426 if (ownerId != null) {
1427 _json["ownerId"] = ownerId;
1428 }
1429 if (room != null) {
1430 _json["room"] = room;
1431 }
1432 if (section != null) {
1433 _json["section"] = section;
1434 }
1435 if (updateTime != null) {
1436 _json["updateTime"] = updateTime;
1437 }
1438 return _json;
1439 }
1440 }
1441
1442 /**
1443 * Alternative identifier for a course. An alias uniquely identifies a course.
1444 * It will be unique within one of the following scopes: * domain: A
1445 * domain-scoped alias is visible to all users within the alias creator's domain
1446 * and may only be created by a domain admin. A domain-scoped alias is often
1447 * used when a course has an identifier external to Classroom. * project: A
1448 * project-scoped alias is visible to any request from an application using the
1449 * Developer Console Project ID that created the alias and may be created by any
1450 * project. A project-scoped alias is often used when an application has
1451 * alternative identifiers. A random value can also be used to avoid duplicate
1452 * courses in the event of transmission failures, as retrying a request will
1453 * return ALREADY_EXISTS if a previous one has succeeded.
1454 */
1455 class CourseAlias {
1456 /**
1457 * Alias string. The format of the string indicated the desired alias scoping.
1458 * * "d:" indicates a domain-scoped alias. Example: d:math_101 * "p:"
1459 * indicates a project-scoped alias. Example: p:abc123 This field has a
1460 * maximum length of 256 characters.
1461 */
1462 core.String alias;
1463
1464 CourseAlias();
1465
1466 CourseAlias.fromJson(core.Map _json) {
1467 if (_json.containsKey("alias")) {
1468 alias = _json["alias"];
1469 }
1470 }
1471
1472 core.Map toJson() {
1473 var _json = new core.Map();
1474 if (alias != null) {
1475 _json["alias"] = alias;
1476 }
1477 return _json;
1478 }
1479 }
1480
1481 /**
1482 * A generic empty message that you can re-use to avoid defining duplicated
1483 * empty messages in your APIs. A typical example is to use it as the request or
1484 * the response type of an API method. For instance: service Foo { rpc
1485 * Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON
1486 * representation for `Empty` is empty JSON object `{}`.
1487 */
1488 class Empty {
1489
1490 Empty();
1491
1492 Empty.fromJson(core.Map _json) {
1493 }
1494
1495 core.Map toJson() {
1496 var _json = new core.Map();
1497 return _json;
1498 }
1499 }
1500
1501 /** Global user permission description. */
1502 class GlobalPermission {
1503 /**
1504 * Permission value.
1505 * Possible string values are:
1506 * - "PERMISSION_UNSPECIFIED" : A PERMISSION_UNSPECIFIED.
1507 * - "CREATE_COURSE" : A CREATE_COURSE.
1508 */
1509 core.String permission;
1510
1511 GlobalPermission();
1512
1513 GlobalPermission.fromJson(core.Map _json) {
1514 if (_json.containsKey("permission")) {
1515 permission = _json["permission"];
1516 }
1517 }
1518
1519 core.Map toJson() {
1520 var _json = new core.Map();
1521 if (permission != null) {
1522 _json["permission"] = permission;
1523 }
1524 return _json;
1525 }
1526 }
1527
1528 /** An invitation to join a course. */
1529 class Invitation {
1530 /** Identifier of the course to invite the user to. */
1531 core.String courseId;
1532 /** Unique identifier assigned by Classroom. Read-only */
1533 core.String id;
1534 /**
1535 * Role to invite the user to have. Must not be `COURSE_ROLE_UNSPECIFIED`.
1536 * Possible string values are:
1537 * - "COURSE_ROLE_UNSPECIFIED" : A COURSE_ROLE_UNSPECIFIED.
1538 * - "STUDENT" : A STUDENT.
1539 * - "TEACHER" : A TEACHER.
1540 */
1541 core.String role;
1542 /**
1543 * Identifier of the invited user. When specified as a parameter of a request,
1544 * this may be set to an alias that identifies the user to invite. The
1545 * supported aliases are: * the e-mail address of the user * the string
1546 * literal `"me"`, indicating that the requesting user
1547 */
1548 core.String userId;
1549
1550 Invitation();
1551
1552 Invitation.fromJson(core.Map _json) {
1553 if (_json.containsKey("courseId")) {
1554 courseId = _json["courseId"];
1555 }
1556 if (_json.containsKey("id")) {
1557 id = _json["id"];
1558 }
1559 if (_json.containsKey("role")) {
1560 role = _json["role"];
1561 }
1562 if (_json.containsKey("userId")) {
1563 userId = _json["userId"];
1564 }
1565 }
1566
1567 core.Map toJson() {
1568 var _json = new core.Map();
1569 if (courseId != null) {
1570 _json["courseId"] = courseId;
1571 }
1572 if (id != null) {
1573 _json["id"] = id;
1574 }
1575 if (role != null) {
1576 _json["role"] = role;
1577 }
1578 if (userId != null) {
1579 _json["userId"] = userId;
1580 }
1581 return _json;
1582 }
1583 }
1584
1585 /** Response when listing course aliases. */
1586 class ListCourseAliasesResponse {
1587 /** The course aliases. */
1588 core.List<CourseAlias> aliases;
1589 /**
1590 * Token identifying the next page of results to return. If empty, no further
1591 * results are available.
1592 */
1593 core.String nextPageToken;
1594
1595 ListCourseAliasesResponse();
1596
1597 ListCourseAliasesResponse.fromJson(core.Map _json) {
1598 if (_json.containsKey("aliases")) {
1599 aliases = _json["aliases"].map((value) => new CourseAlias.fromJson(value)) .toList();
1600 }
1601 if (_json.containsKey("nextPageToken")) {
1602 nextPageToken = _json["nextPageToken"];
1603 }
1604 }
1605
1606 core.Map toJson() {
1607 var _json = new core.Map();
1608 if (aliases != null) {
1609 _json["aliases"] = aliases.map((value) => (value).toJson()).toList();
1610 }
1611 if (nextPageToken != null) {
1612 _json["nextPageToken"] = nextPageToken;
1613 }
1614 return _json;
1615 }
1616 }
1617
1618 /** Response when listing courses. */
1619 class ListCoursesResponse {
1620 /** Courses that match the request. */
1621 core.List<Course> courses;
1622 /**
1623 * Token identifying the next page of results to return. If empty, no further
1624 * results are available.
1625 */
1626 core.String nextPageToken;
1627
1628 ListCoursesResponse();
1629
1630 ListCoursesResponse.fromJson(core.Map _json) {
1631 if (_json.containsKey("courses")) {
1632 courses = _json["courses"].map((value) => new Course.fromJson(value)).toLi st();
1633 }
1634 if (_json.containsKey("nextPageToken")) {
1635 nextPageToken = _json["nextPageToken"];
1636 }
1637 }
1638
1639 core.Map toJson() {
1640 var _json = new core.Map();
1641 if (courses != null) {
1642 _json["courses"] = courses.map((value) => (value).toJson()).toList();
1643 }
1644 if (nextPageToken != null) {
1645 _json["nextPageToken"] = nextPageToken;
1646 }
1647 return _json;
1648 }
1649 }
1650
1651 /** Response when listing invitations. */
1652 class ListInvitationsResponse {
1653 /** Invitations that match the request. */
1654 core.List<Invitation> invitations;
1655 /**
1656 * Token identifying the next page of results to return. If empty, no further
1657 * results are available.
1658 */
1659 core.String nextPageToken;
1660
1661 ListInvitationsResponse();
1662
1663 ListInvitationsResponse.fromJson(core.Map _json) {
1664 if (_json.containsKey("invitations")) {
1665 invitations = _json["invitations"].map((value) => new Invitation.fromJson( value)).toList();
1666 }
1667 if (_json.containsKey("nextPageToken")) {
1668 nextPageToken = _json["nextPageToken"];
1669 }
1670 }
1671
1672 core.Map toJson() {
1673 var _json = new core.Map();
1674 if (invitations != null) {
1675 _json["invitations"] = invitations.map((value) => (value).toJson()).toList ();
1676 }
1677 if (nextPageToken != null) {
1678 _json["nextPageToken"] = nextPageToken;
1679 }
1680 return _json;
1681 }
1682 }
1683
1684 /** Response when listing students. */
1685 class ListStudentsResponse {
1686 /**
1687 * Token identifying the next page of results to return. If empty, no further
1688 * results are available.
1689 */
1690 core.String nextPageToken;
1691 /** The students who match the list request. */
1692 core.List<Student> students;
1693
1694 ListStudentsResponse();
1695
1696 ListStudentsResponse.fromJson(core.Map _json) {
1697 if (_json.containsKey("nextPageToken")) {
1698 nextPageToken = _json["nextPageToken"];
1699 }
1700 if (_json.containsKey("students")) {
1701 students = _json["students"].map((value) => new Student.fromJson(value)).t oList();
1702 }
1703 }
1704
1705 core.Map toJson() {
1706 var _json = new core.Map();
1707 if (nextPageToken != null) {
1708 _json["nextPageToken"] = nextPageToken;
1709 }
1710 if (students != null) {
1711 _json["students"] = students.map((value) => (value).toJson()).toList();
1712 }
1713 return _json;
1714 }
1715 }
1716
1717 /** Response when listing teachers. */
1718 class ListTeachersResponse {
1719 /**
1720 * Token identifying the next page of results to return. If empty, no further
1721 * results are available.
1722 */
1723 core.String nextPageToken;
1724 /** The teachers who match the list request. */
1725 core.List<Teacher> teachers;
1726
1727 ListTeachersResponse();
1728
1729 ListTeachersResponse.fromJson(core.Map _json) {
1730 if (_json.containsKey("nextPageToken")) {
1731 nextPageToken = _json["nextPageToken"];
1732 }
1733 if (_json.containsKey("teachers")) {
1734 teachers = _json["teachers"].map((value) => new Teacher.fromJson(value)).t oList();
1735 }
1736 }
1737
1738 core.Map toJson() {
1739 var _json = new core.Map();
1740 if (nextPageToken != null) {
1741 _json["nextPageToken"] = nextPageToken;
1742 }
1743 if (teachers != null) {
1744 _json["teachers"] = teachers.map((value) => (value).toJson()).toList();
1745 }
1746 return _json;
1747 }
1748 }
1749
1750 /** Details of the user's name. */
1751 class Name {
1752 /** The user's last name. Read-only */
1753 core.String familyName;
1754 /**
1755 * The user's full name formed by concatenating the first and last name
1756 * values. Read-only
1757 */
1758 core.String fullName;
1759 /** The user's first name. Read-only */
1760 core.String givenName;
1761
1762 Name();
1763
1764 Name.fromJson(core.Map _json) {
1765 if (_json.containsKey("familyName")) {
1766 familyName = _json["familyName"];
1767 }
1768 if (_json.containsKey("fullName")) {
1769 fullName = _json["fullName"];
1770 }
1771 if (_json.containsKey("givenName")) {
1772 givenName = _json["givenName"];
1773 }
1774 }
1775
1776 core.Map toJson() {
1777 var _json = new core.Map();
1778 if (familyName != null) {
1779 _json["familyName"] = familyName;
1780 }
1781 if (fullName != null) {
1782 _json["fullName"] = fullName;
1783 }
1784 if (givenName != null) {
1785 _json["givenName"] = givenName;
1786 }
1787 return _json;
1788 }
1789 }
1790
1791 /** Student in a course. */
1792 class Student {
1793 /** Unique identifier of the course. Read-only */
1794 core.String courseId;
1795 /** Global user information for the student. Read-only */
1796 UserProfile profile;
1797 /**
1798 * The identifier of the user. When specified as a parameter of request, this
1799 * field may be set to an alias that identifies the student. The following are
1800 * supported: * the e-mail address of the user * the string literal `"me"`,
1801 * indicating that the requesting user
1802 */
1803 core.String userId;
1804
1805 Student();
1806
1807 Student.fromJson(core.Map _json) {
1808 if (_json.containsKey("courseId")) {
1809 courseId = _json["courseId"];
1810 }
1811 if (_json.containsKey("profile")) {
1812 profile = new UserProfile.fromJson(_json["profile"]);
1813 }
1814 if (_json.containsKey("userId")) {
1815 userId = _json["userId"];
1816 }
1817 }
1818
1819 core.Map toJson() {
1820 var _json = new core.Map();
1821 if (courseId != null) {
1822 _json["courseId"] = courseId;
1823 }
1824 if (profile != null) {
1825 _json["profile"] = (profile).toJson();
1826 }
1827 if (userId != null) {
1828 _json["userId"] = userId;
1829 }
1830 return _json;
1831 }
1832 }
1833
1834 /** Teacher of a course. */
1835 class Teacher {
1836 /** Unique identifier of the course. Read-only */
1837 core.String courseId;
1838 /** Global user information for the teacher. Read-only */
1839 UserProfile profile;
1840 /**
1841 * The identifier of the user. When specified as a parameter of request, this
1842 * field may be set to an alias that identifies the teacher. The following are
1843 * supported: * the e-mail address of the user * the string literal `"me"`,
1844 * indicating the requesting user
1845 */
1846 core.String userId;
1847
1848 Teacher();
1849
1850 Teacher.fromJson(core.Map _json) {
1851 if (_json.containsKey("courseId")) {
1852 courseId = _json["courseId"];
1853 }
1854 if (_json.containsKey("profile")) {
1855 profile = new UserProfile.fromJson(_json["profile"]);
1856 }
1857 if (_json.containsKey("userId")) {
1858 userId = _json["userId"];
1859 }
1860 }
1861
1862 core.Map toJson() {
1863 var _json = new core.Map();
1864 if (courseId != null) {
1865 _json["courseId"] = courseId;
1866 }
1867 if (profile != null) {
1868 _json["profile"] = (profile).toJson();
1869 }
1870 if (userId != null) {
1871 _json["userId"] = userId;
1872 }
1873 return _json;
1874 }
1875 }
1876
1877 /** Global information for a user. */
1878 class UserProfile {
1879 /** E-mail address of the user. Read-only */
1880 core.String emailAddress;
1881 /** Unique identifier of the user. Read-only */
1882 core.String id;
1883 /** Name of the user. Read-only */
1884 Name name;
1885 /** Global permissions of the user. Read-only */
1886 core.List<GlobalPermission> permissions;
1887 /** Url of user's profile photo. Read-only */
1888 core.String photoUrl;
1889
1890 UserProfile();
1891
1892 UserProfile.fromJson(core.Map _json) {
1893 if (_json.containsKey("emailAddress")) {
1894 emailAddress = _json["emailAddress"];
1895 }
1896 if (_json.containsKey("id")) {
1897 id = _json["id"];
1898 }
1899 if (_json.containsKey("name")) {
1900 name = new Name.fromJson(_json["name"]);
1901 }
1902 if (_json.containsKey("permissions")) {
1903 permissions = _json["permissions"].map((value) => new GlobalPermission.fro mJson(value)).toList();
1904 }
1905 if (_json.containsKey("photoUrl")) {
1906 photoUrl = _json["photoUrl"];
1907 }
1908 }
1909
1910 core.Map toJson() {
1911 var _json = new core.Map();
1912 if (emailAddress != null) {
1913 _json["emailAddress"] = emailAddress;
1914 }
1915 if (id != null) {
1916 _json["id"] = id;
1917 }
1918 if (name != null) {
1919 _json["name"] = (name).toJson();
1920 }
1921 if (permissions != null) {
1922 _json["permissions"] = permissions.map((value) => (value).toJson()).toList ();
1923 }
1924 if (photoUrl != null) {
1925 _json["photoUrl"] = photoUrl;
1926 }
1927 return _json;
1928 }
1929 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698