1<?php
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18namespace Google\Service;
19
20use Google\Client;
21
22/**
23 * Service definition for Classroom (v1).
24 *
25 * <p>
26 * Manages classes, rosters, and invitations in Google Classroom.</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://developers.google.com/classroom/" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class Classroom extends \Google\Service
36{
37  /** View and manage announcements in Google Classroom. */
38  const CLASSROOM_ANNOUNCEMENTS =
39      "https://www.googleapis.com/auth/classroom.announcements";
40  /** View announcements in Google Classroom. */
41  const CLASSROOM_ANNOUNCEMENTS_READONLY =
42      "https://www.googleapis.com/auth/classroom.announcements.readonly";
43  /** See, edit, create, and permanently delete your Google Classroom classes. */
44  const CLASSROOM_COURSES =
45      "https://www.googleapis.com/auth/classroom.courses";
46  /** View your Google Classroom classes. */
47  const CLASSROOM_COURSES_READONLY =
48      "https://www.googleapis.com/auth/classroom.courses.readonly";
49  /** See, create and edit coursework items including assignments, questions, and grades. */
50  const CLASSROOM_COURSEWORK_ME =
51      "https://www.googleapis.com/auth/classroom.coursework.me";
52  /** View your course work and grades in Google Classroom. */
53  const CLASSROOM_COURSEWORK_ME_READONLY =
54      "https://www.googleapis.com/auth/classroom.coursework.me.readonly";
55  /** Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer. */
56  const CLASSROOM_COURSEWORK_STUDENTS =
57      "https://www.googleapis.com/auth/classroom.coursework.students";
58  /** View course work and grades for students in the Google Classroom classes you teach or administer. */
59  const CLASSROOM_COURSEWORK_STUDENTS_READONLY =
60      "https://www.googleapis.com/auth/classroom.coursework.students.readonly";
61  /** See, edit, and create classwork materials in Google Classroom. */
62  const CLASSROOM_COURSEWORKMATERIALS =
63      "https://www.googleapis.com/auth/classroom.courseworkmaterials";
64  /** See all classwork materials for your Google Classroom classes. */
65  const CLASSROOM_COURSEWORKMATERIALS_READONLY =
66      "https://www.googleapis.com/auth/classroom.courseworkmaterials.readonly";
67  /** View your Google Classroom guardians. */
68  const CLASSROOM_GUARDIANLINKS_ME_READONLY =
69      "https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly";
70  /** View and manage guardians for students in your Google Classroom classes. */
71  const CLASSROOM_GUARDIANLINKS_STUDENTS =
72      "https://www.googleapis.com/auth/classroom.guardianlinks.students";
73  /** View guardians for students in your Google Classroom classes. */
74  const CLASSROOM_GUARDIANLINKS_STUDENTS_READONLY =
75      "https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly";
76  /** View the email addresses of people in your classes. */
77  const CLASSROOM_PROFILE_EMAILS =
78      "https://www.googleapis.com/auth/classroom.profile.emails";
79  /** View the profile photos of people in your classes. */
80  const CLASSROOM_PROFILE_PHOTOS =
81      "https://www.googleapis.com/auth/classroom.profile.photos";
82  /** Receive notifications about your Google Classroom data. */
83  const CLASSROOM_PUSH_NOTIFICATIONS =
84      "https://www.googleapis.com/auth/classroom.push-notifications";
85  /** Manage your Google Classroom class rosters. */
86  const CLASSROOM_ROSTERS =
87      "https://www.googleapis.com/auth/classroom.rosters";
88  /** View your Google Classroom class rosters. */
89  const CLASSROOM_ROSTERS_READONLY =
90      "https://www.googleapis.com/auth/classroom.rosters.readonly";
91  /** View your course work and grades in Google Classroom. */
92  const CLASSROOM_STUDENT_SUBMISSIONS_ME_READONLY =
93      "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly";
94  /** View course work and grades for students in the Google Classroom classes you teach or administer. */
95  const CLASSROOM_STUDENT_SUBMISSIONS_STUDENTS_READONLY =
96      "https://www.googleapis.com/auth/classroom.student-submissions.students.readonly";
97  /** See, create, and edit topics in Google Classroom. */
98  const CLASSROOM_TOPICS =
99      "https://www.googleapis.com/auth/classroom.topics";
100  /** View topics in Google Classroom. */
101  const CLASSROOM_TOPICS_READONLY =
102      "https://www.googleapis.com/auth/classroom.topics.readonly";
103
104  public $courses;
105  public $courses_aliases;
106  public $courses_announcements;
107  public $courses_courseWork;
108  public $courses_courseWork_studentSubmissions;
109  public $courses_courseWorkMaterials;
110  public $courses_students;
111  public $courses_teachers;
112  public $courses_topics;
113  public $invitations;
114  public $registrations;
115  public $userProfiles;
116  public $userProfiles_guardianInvitations;
117  public $userProfiles_guardians;
118
119  /**
120   * Constructs the internal representation of the Classroom service.
121   *
122   * @param Client|array $clientOrConfig The client used to deliver requests, or a
123   *                                     config array to pass to a new Client instance.
124   * @param string $rootUrl The root URL used for requests to the service.
125   */
126  public function __construct($clientOrConfig = [], $rootUrl = null)
127  {
128    parent::__construct($clientOrConfig);
129    $this->rootUrl = $rootUrl ?: 'https://classroom.googleapis.com/';
130    $this->servicePath = '';
131    $this->batchPath = 'batch';
132    $this->version = 'v1';
133    $this->serviceName = 'classroom';
134
135    $this->courses = new Classroom\Resource\Courses(
136        $this,
137        $this->serviceName,
138        'courses',
139        [
140          'methods' => [
141            'create' => [
142              'path' => 'v1/courses',
143              'httpMethod' => 'POST',
144              'parameters' => [],
145            ],'delete' => [
146              'path' => 'v1/courses/{id}',
147              'httpMethod' => 'DELETE',
148              'parameters' => [
149                'id' => [
150                  'location' => 'path',
151                  'type' => 'string',
152                  'required' => true,
153                ],
154              ],
155            ],'get' => [
156              'path' => 'v1/courses/{id}',
157              'httpMethod' => 'GET',
158              'parameters' => [
159                'id' => [
160                  'location' => 'path',
161                  'type' => 'string',
162                  'required' => true,
163                ],
164              ],
165            ],'list' => [
166              'path' => 'v1/courses',
167              'httpMethod' => 'GET',
168              'parameters' => [
169                'courseStates' => [
170                  'location' => 'query',
171                  'type' => 'string',
172                  'repeated' => true,
173                ],
174                'pageSize' => [
175                  'location' => 'query',
176                  'type' => 'integer',
177                ],
178                'pageToken' => [
179                  'location' => 'query',
180                  'type' => 'string',
181                ],
182                'studentId' => [
183                  'location' => 'query',
184                  'type' => 'string',
185                ],
186                'teacherId' => [
187                  'location' => 'query',
188                  'type' => 'string',
189                ],
190              ],
191            ],'patch' => [
192              'path' => 'v1/courses/{id}',
193              'httpMethod' => 'PATCH',
194              'parameters' => [
195                'id' => [
196                  'location' => 'path',
197                  'type' => 'string',
198                  'required' => true,
199                ],
200                'updateMask' => [
201                  'location' => 'query',
202                  'type' => 'string',
203                ],
204              ],
205            ],'update' => [
206              'path' => 'v1/courses/{id}',
207              'httpMethod' => 'PUT',
208              'parameters' => [
209                'id' => [
210                  'location' => 'path',
211                  'type' => 'string',
212                  'required' => true,
213                ],
214              ],
215            ],
216          ]
217        ]
218    );
219    $this->courses_aliases = new Classroom\Resource\CoursesAliases(
220        $this,
221        $this->serviceName,
222        'aliases',
223        [
224          'methods' => [
225            'create' => [
226              'path' => 'v1/courses/{courseId}/aliases',
227              'httpMethod' => 'POST',
228              'parameters' => [
229                'courseId' => [
230                  'location' => 'path',
231                  'type' => 'string',
232                  'required' => true,
233                ],
234              ],
235            ],'delete' => [
236              'path' => 'v1/courses/{courseId}/aliases/{alias}',
237              'httpMethod' => 'DELETE',
238              'parameters' => [
239                'courseId' => [
240                  'location' => 'path',
241                  'type' => 'string',
242                  'required' => true,
243                ],
244                'alias' => [
245                  'location' => 'path',
246                  'type' => 'string',
247                  'required' => true,
248                ],
249              ],
250            ],'list' => [
251              'path' => 'v1/courses/{courseId}/aliases',
252              'httpMethod' => 'GET',
253              'parameters' => [
254                'courseId' => [
255                  'location' => 'path',
256                  'type' => 'string',
257                  'required' => true,
258                ],
259                'pageSize' => [
260                  'location' => 'query',
261                  'type' => 'integer',
262                ],
263                'pageToken' => [
264                  'location' => 'query',
265                  'type' => 'string',
266                ],
267              ],
268            ],
269          ]
270        ]
271    );
272    $this->courses_announcements = new Classroom\Resource\CoursesAnnouncements(
273        $this,
274        $this->serviceName,
275        'announcements',
276        [
277          'methods' => [
278            'create' => [
279              'path' => 'v1/courses/{courseId}/announcements',
280              'httpMethod' => 'POST',
281              'parameters' => [
282                'courseId' => [
283                  'location' => 'path',
284                  'type' => 'string',
285                  'required' => true,
286                ],
287              ],
288            ],'delete' => [
289              'path' => 'v1/courses/{courseId}/announcements/{id}',
290              'httpMethod' => 'DELETE',
291              'parameters' => [
292                'courseId' => [
293                  'location' => 'path',
294                  'type' => 'string',
295                  'required' => true,
296                ],
297                'id' => [
298                  'location' => 'path',
299                  'type' => 'string',
300                  'required' => true,
301                ],
302              ],
303            ],'get' => [
304              'path' => 'v1/courses/{courseId}/announcements/{id}',
305              'httpMethod' => 'GET',
306              'parameters' => [
307                'courseId' => [
308                  'location' => 'path',
309                  'type' => 'string',
310                  'required' => true,
311                ],
312                'id' => [
313                  'location' => 'path',
314                  'type' => 'string',
315                  'required' => true,
316                ],
317              ],
318            ],'list' => [
319              'path' => 'v1/courses/{courseId}/announcements',
320              'httpMethod' => 'GET',
321              'parameters' => [
322                'courseId' => [
323                  'location' => 'path',
324                  'type' => 'string',
325                  'required' => true,
326                ],
327                'announcementStates' => [
328                  'location' => 'query',
329                  'type' => 'string',
330                  'repeated' => true,
331                ],
332                'orderBy' => [
333                  'location' => 'query',
334                  'type' => 'string',
335                ],
336                'pageSize' => [
337                  'location' => 'query',
338                  'type' => 'integer',
339                ],
340                'pageToken' => [
341                  'location' => 'query',
342                  'type' => 'string',
343                ],
344              ],
345            ],'modifyAssignees' => [
346              'path' => 'v1/courses/{courseId}/announcements/{id}:modifyAssignees',
347              'httpMethod' => 'POST',
348              'parameters' => [
349                'courseId' => [
350                  'location' => 'path',
351                  'type' => 'string',
352                  'required' => true,
353                ],
354                'id' => [
355                  'location' => 'path',
356                  'type' => 'string',
357                  'required' => true,
358                ],
359              ],
360            ],'patch' => [
361              'path' => 'v1/courses/{courseId}/announcements/{id}',
362              'httpMethod' => 'PATCH',
363              'parameters' => [
364                'courseId' => [
365                  'location' => 'path',
366                  'type' => 'string',
367                  'required' => true,
368                ],
369                'id' => [
370                  'location' => 'path',
371                  'type' => 'string',
372                  'required' => true,
373                ],
374                'updateMask' => [
375                  'location' => 'query',
376                  'type' => 'string',
377                ],
378              ],
379            ],
380          ]
381        ]
382    );
383    $this->courses_courseWork = new Classroom\Resource\CoursesCourseWork(
384        $this,
385        $this->serviceName,
386        'courseWork',
387        [
388          'methods' => [
389            'create' => [
390              'path' => 'v1/courses/{courseId}/courseWork',
391              'httpMethod' => 'POST',
392              'parameters' => [
393                'courseId' => [
394                  'location' => 'path',
395                  'type' => 'string',
396                  'required' => true,
397                ],
398              ],
399            ],'delete' => [
400              'path' => 'v1/courses/{courseId}/courseWork/{id}',
401              'httpMethod' => 'DELETE',
402              'parameters' => [
403                'courseId' => [
404                  'location' => 'path',
405                  'type' => 'string',
406                  'required' => true,
407                ],
408                'id' => [
409                  'location' => 'path',
410                  'type' => 'string',
411                  'required' => true,
412                ],
413              ],
414            ],'get' => [
415              'path' => 'v1/courses/{courseId}/courseWork/{id}',
416              'httpMethod' => 'GET',
417              'parameters' => [
418                'courseId' => [
419                  'location' => 'path',
420                  'type' => 'string',
421                  'required' => true,
422                ],
423                'id' => [
424                  'location' => 'path',
425                  'type' => 'string',
426                  'required' => true,
427                ],
428              ],
429            ],'list' => [
430              'path' => 'v1/courses/{courseId}/courseWork',
431              'httpMethod' => 'GET',
432              'parameters' => [
433                'courseId' => [
434                  'location' => 'path',
435                  'type' => 'string',
436                  'required' => true,
437                ],
438                'courseWorkStates' => [
439                  'location' => 'query',
440                  'type' => 'string',
441                  'repeated' => true,
442                ],
443                'orderBy' => [
444                  'location' => 'query',
445                  'type' => 'string',
446                ],
447                'pageSize' => [
448                  'location' => 'query',
449                  'type' => 'integer',
450                ],
451                'pageToken' => [
452                  'location' => 'query',
453                  'type' => 'string',
454                ],
455              ],
456            ],'modifyAssignees' => [
457              'path' => 'v1/courses/{courseId}/courseWork/{id}:modifyAssignees',
458              'httpMethod' => 'POST',
459              'parameters' => [
460                'courseId' => [
461                  'location' => 'path',
462                  'type' => 'string',
463                  'required' => true,
464                ],
465                'id' => [
466                  'location' => 'path',
467                  'type' => 'string',
468                  'required' => true,
469                ],
470              ],
471            ],'patch' => [
472              'path' => 'v1/courses/{courseId}/courseWork/{id}',
473              'httpMethod' => 'PATCH',
474              'parameters' => [
475                'courseId' => [
476                  'location' => 'path',
477                  'type' => 'string',
478                  'required' => true,
479                ],
480                'id' => [
481                  'location' => 'path',
482                  'type' => 'string',
483                  'required' => true,
484                ],
485                'updateMask' => [
486                  'location' => 'query',
487                  'type' => 'string',
488                ],
489              ],
490            ],
491          ]
492        ]
493    );
494    $this->courses_courseWork_studentSubmissions = new Classroom\Resource\CoursesCourseWorkStudentSubmissions(
495        $this,
496        $this->serviceName,
497        'studentSubmissions',
498        [
499          'methods' => [
500            'get' => [
501              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}',
502              'httpMethod' => 'GET',
503              'parameters' => [
504                'courseId' => [
505                  'location' => 'path',
506                  'type' => 'string',
507                  'required' => true,
508                ],
509                'courseWorkId' => [
510                  'location' => 'path',
511                  'type' => 'string',
512                  'required' => true,
513                ],
514                'id' => [
515                  'location' => 'path',
516                  'type' => 'string',
517                  'required' => true,
518                ],
519              ],
520            ],'list' => [
521              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions',
522              'httpMethod' => 'GET',
523              'parameters' => [
524                'courseId' => [
525                  'location' => 'path',
526                  'type' => 'string',
527                  'required' => true,
528                ],
529                'courseWorkId' => [
530                  'location' => 'path',
531                  'type' => 'string',
532                  'required' => true,
533                ],
534                'late' => [
535                  'location' => 'query',
536                  'type' => 'string',
537                ],
538                'pageSize' => [
539                  'location' => 'query',
540                  'type' => 'integer',
541                ],
542                'pageToken' => [
543                  'location' => 'query',
544                  'type' => 'string',
545                ],
546                'states' => [
547                  'location' => 'query',
548                  'type' => 'string',
549                  'repeated' => true,
550                ],
551                'userId' => [
552                  'location' => 'query',
553                  'type' => 'string',
554                ],
555              ],
556            ],'modifyAttachments' => [
557              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:modifyAttachments',
558              'httpMethod' => 'POST',
559              'parameters' => [
560                'courseId' => [
561                  'location' => 'path',
562                  'type' => 'string',
563                  'required' => true,
564                ],
565                'courseWorkId' => [
566                  'location' => 'path',
567                  'type' => 'string',
568                  'required' => true,
569                ],
570                'id' => [
571                  'location' => 'path',
572                  'type' => 'string',
573                  'required' => true,
574                ],
575              ],
576            ],'patch' => [
577              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}',
578              'httpMethod' => 'PATCH',
579              'parameters' => [
580                'courseId' => [
581                  'location' => 'path',
582                  'type' => 'string',
583                  'required' => true,
584                ],
585                'courseWorkId' => [
586                  'location' => 'path',
587                  'type' => 'string',
588                  'required' => true,
589                ],
590                'id' => [
591                  'location' => 'path',
592                  'type' => 'string',
593                  'required' => true,
594                ],
595                'updateMask' => [
596                  'location' => 'query',
597                  'type' => 'string',
598                ],
599              ],
600            ],'reclaim' => [
601              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:reclaim',
602              'httpMethod' => 'POST',
603              'parameters' => [
604                'courseId' => [
605                  'location' => 'path',
606                  'type' => 'string',
607                  'required' => true,
608                ],
609                'courseWorkId' => [
610                  'location' => 'path',
611                  'type' => 'string',
612                  'required' => true,
613                ],
614                'id' => [
615                  'location' => 'path',
616                  'type' => 'string',
617                  'required' => true,
618                ],
619              ],
620            ],'return' => [
621              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:return',
622              'httpMethod' => 'POST',
623              'parameters' => [
624                'courseId' => [
625                  'location' => 'path',
626                  'type' => 'string',
627                  'required' => true,
628                ],
629                'courseWorkId' => [
630                  'location' => 'path',
631                  'type' => 'string',
632                  'required' => true,
633                ],
634                'id' => [
635                  'location' => 'path',
636                  'type' => 'string',
637                  'required' => true,
638                ],
639              ],
640            ],'turnIn' => [
641              'path' => 'v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{id}:turnIn',
642              'httpMethod' => 'POST',
643              'parameters' => [
644                'courseId' => [
645                  'location' => 'path',
646                  'type' => 'string',
647                  'required' => true,
648                ],
649                'courseWorkId' => [
650                  'location' => 'path',
651                  'type' => 'string',
652                  'required' => true,
653                ],
654                'id' => [
655                  'location' => 'path',
656                  'type' => 'string',
657                  'required' => true,
658                ],
659              ],
660            ],
661          ]
662        ]
663    );
664    $this->courses_courseWorkMaterials = new Classroom\Resource\CoursesCourseWorkMaterials(
665        $this,
666        $this->serviceName,
667        'courseWorkMaterials',
668        [
669          'methods' => [
670            'create' => [
671              'path' => 'v1/courses/{courseId}/courseWorkMaterials',
672              'httpMethod' => 'POST',
673              'parameters' => [
674                'courseId' => [
675                  'location' => 'path',
676                  'type' => 'string',
677                  'required' => true,
678                ],
679              ],
680            ],'delete' => [
681              'path' => 'v1/courses/{courseId}/courseWorkMaterials/{id}',
682              'httpMethod' => 'DELETE',
683              'parameters' => [
684                'courseId' => [
685                  'location' => 'path',
686                  'type' => 'string',
687                  'required' => true,
688                ],
689                'id' => [
690                  'location' => 'path',
691                  'type' => 'string',
692                  'required' => true,
693                ],
694              ],
695            ],'get' => [
696              'path' => 'v1/courses/{courseId}/courseWorkMaterials/{id}',
697              'httpMethod' => 'GET',
698              'parameters' => [
699                'courseId' => [
700                  'location' => 'path',
701                  'type' => 'string',
702                  'required' => true,
703                ],
704                'id' => [
705                  'location' => 'path',
706                  'type' => 'string',
707                  'required' => true,
708                ],
709              ],
710            ],'list' => [
711              'path' => 'v1/courses/{courseId}/courseWorkMaterials',
712              'httpMethod' => 'GET',
713              'parameters' => [
714                'courseId' => [
715                  'location' => 'path',
716                  'type' => 'string',
717                  'required' => true,
718                ],
719                'courseWorkMaterialStates' => [
720                  'location' => 'query',
721                  'type' => 'string',
722                  'repeated' => true,
723                ],
724                'materialDriveId' => [
725                  'location' => 'query',
726                  'type' => 'string',
727                ],
728                'materialLink' => [
729                  'location' => 'query',
730                  'type' => 'string',
731                ],
732                'orderBy' => [
733                  'location' => 'query',
734                  'type' => 'string',
735                ],
736                'pageSize' => [
737                  'location' => 'query',
738                  'type' => 'integer',
739                ],
740                'pageToken' => [
741                  'location' => 'query',
742                  'type' => 'string',
743                ],
744              ],
745            ],'patch' => [
746              'path' => 'v1/courses/{courseId}/courseWorkMaterials/{id}',
747              'httpMethod' => 'PATCH',
748              'parameters' => [
749                'courseId' => [
750                  'location' => 'path',
751                  'type' => 'string',
752                  'required' => true,
753                ],
754                'id' => [
755                  'location' => 'path',
756                  'type' => 'string',
757                  'required' => true,
758                ],
759                'updateMask' => [
760                  'location' => 'query',
761                  'type' => 'string',
762                ],
763              ],
764            ],
765          ]
766        ]
767    );
768    $this->courses_students = new Classroom\Resource\CoursesStudents(
769        $this,
770        $this->serviceName,
771        'students',
772        [
773          'methods' => [
774            'create' => [
775              'path' => 'v1/courses/{courseId}/students',
776              'httpMethod' => 'POST',
777              'parameters' => [
778                'courseId' => [
779                  'location' => 'path',
780                  'type' => 'string',
781                  'required' => true,
782                ],
783                'enrollmentCode' => [
784                  'location' => 'query',
785                  'type' => 'string',
786                ],
787              ],
788            ],'delete' => [
789              'path' => 'v1/courses/{courseId}/students/{userId}',
790              'httpMethod' => 'DELETE',
791              'parameters' => [
792                'courseId' => [
793                  'location' => 'path',
794                  'type' => 'string',
795                  'required' => true,
796                ],
797                'userId' => [
798                  'location' => 'path',
799                  'type' => 'string',
800                  'required' => true,
801                ],
802              ],
803            ],'get' => [
804              'path' => 'v1/courses/{courseId}/students/{userId}',
805              'httpMethod' => 'GET',
806              'parameters' => [
807                'courseId' => [
808                  'location' => 'path',
809                  'type' => 'string',
810                  'required' => true,
811                ],
812                'userId' => [
813                  'location' => 'path',
814                  'type' => 'string',
815                  'required' => true,
816                ],
817              ],
818            ],'list' => [
819              'path' => 'v1/courses/{courseId}/students',
820              'httpMethod' => 'GET',
821              'parameters' => [
822                'courseId' => [
823                  'location' => 'path',
824                  'type' => 'string',
825                  'required' => true,
826                ],
827                'pageSize' => [
828                  'location' => 'query',
829                  'type' => 'integer',
830                ],
831                'pageToken' => [
832                  'location' => 'query',
833                  'type' => 'string',
834                ],
835              ],
836            ],
837          ]
838        ]
839    );
840    $this->courses_teachers = new Classroom\Resource\CoursesTeachers(
841        $this,
842        $this->serviceName,
843        'teachers',
844        [
845          'methods' => [
846            'create' => [
847              'path' => 'v1/courses/{courseId}/teachers',
848              'httpMethod' => 'POST',
849              'parameters' => [
850                'courseId' => [
851                  'location' => 'path',
852                  'type' => 'string',
853                  'required' => true,
854                ],
855              ],
856            ],'delete' => [
857              'path' => 'v1/courses/{courseId}/teachers/{userId}',
858              'httpMethod' => 'DELETE',
859              'parameters' => [
860                'courseId' => [
861                  'location' => 'path',
862                  'type' => 'string',
863                  'required' => true,
864                ],
865                'userId' => [
866                  'location' => 'path',
867                  'type' => 'string',
868                  'required' => true,
869                ],
870              ],
871            ],'get' => [
872              'path' => 'v1/courses/{courseId}/teachers/{userId}',
873              'httpMethod' => 'GET',
874              'parameters' => [
875                'courseId' => [
876                  'location' => 'path',
877                  'type' => 'string',
878                  'required' => true,
879                ],
880                'userId' => [
881                  'location' => 'path',
882                  'type' => 'string',
883                  'required' => true,
884                ],
885              ],
886            ],'list' => [
887              'path' => 'v1/courses/{courseId}/teachers',
888              'httpMethod' => 'GET',
889              'parameters' => [
890                'courseId' => [
891                  'location' => 'path',
892                  'type' => 'string',
893                  'required' => true,
894                ],
895                'pageSize' => [
896                  'location' => 'query',
897                  'type' => 'integer',
898                ],
899                'pageToken' => [
900                  'location' => 'query',
901                  'type' => 'string',
902                ],
903              ],
904            ],
905          ]
906        ]
907    );
908    $this->courses_topics = new Classroom\Resource\CoursesTopics(
909        $this,
910        $this->serviceName,
911        'topics',
912        [
913          'methods' => [
914            'create' => [
915              'path' => 'v1/courses/{courseId}/topics',
916              'httpMethod' => 'POST',
917              'parameters' => [
918                'courseId' => [
919                  'location' => 'path',
920                  'type' => 'string',
921                  'required' => true,
922                ],
923              ],
924            ],'delete' => [
925              'path' => 'v1/courses/{courseId}/topics/{id}',
926              'httpMethod' => 'DELETE',
927              'parameters' => [
928                'courseId' => [
929                  'location' => 'path',
930                  'type' => 'string',
931                  'required' => true,
932                ],
933                'id' => [
934                  'location' => 'path',
935                  'type' => 'string',
936                  'required' => true,
937                ],
938              ],
939            ],'get' => [
940              'path' => 'v1/courses/{courseId}/topics/{id}',
941              'httpMethod' => 'GET',
942              'parameters' => [
943                'courseId' => [
944                  'location' => 'path',
945                  'type' => 'string',
946                  'required' => true,
947                ],
948                'id' => [
949                  'location' => 'path',
950                  'type' => 'string',
951                  'required' => true,
952                ],
953              ],
954            ],'list' => [
955              'path' => 'v1/courses/{courseId}/topics',
956              'httpMethod' => 'GET',
957              'parameters' => [
958                'courseId' => [
959                  'location' => 'path',
960                  'type' => 'string',
961                  'required' => true,
962                ],
963                'pageSize' => [
964                  'location' => 'query',
965                  'type' => 'integer',
966                ],
967                'pageToken' => [
968                  'location' => 'query',
969                  'type' => 'string',
970                ],
971              ],
972            ],'patch' => [
973              'path' => 'v1/courses/{courseId}/topics/{id}',
974              'httpMethod' => 'PATCH',
975              'parameters' => [
976                'courseId' => [
977                  'location' => 'path',
978                  'type' => 'string',
979                  'required' => true,
980                ],
981                'id' => [
982                  'location' => 'path',
983                  'type' => 'string',
984                  'required' => true,
985                ],
986                'updateMask' => [
987                  'location' => 'query',
988                  'type' => 'string',
989                ],
990              ],
991            ],
992          ]
993        ]
994    );
995    $this->invitations = new Classroom\Resource\Invitations(
996        $this,
997        $this->serviceName,
998        'invitations',
999        [
1000          'methods' => [
1001            'accept' => [
1002              'path' => 'v1/invitations/{id}:accept',
1003              'httpMethod' => 'POST',
1004              'parameters' => [
1005                'id' => [
1006                  'location' => 'path',
1007                  'type' => 'string',
1008                  'required' => true,
1009                ],
1010              ],
1011            ],'create' => [
1012              'path' => 'v1/invitations',
1013              'httpMethod' => 'POST',
1014              'parameters' => [],
1015            ],'delete' => [
1016              'path' => 'v1/invitations/{id}',
1017              'httpMethod' => 'DELETE',
1018              'parameters' => [
1019                'id' => [
1020                  'location' => 'path',
1021                  'type' => 'string',
1022                  'required' => true,
1023                ],
1024              ],
1025            ],'get' => [
1026              'path' => 'v1/invitations/{id}',
1027              'httpMethod' => 'GET',
1028              'parameters' => [
1029                'id' => [
1030                  'location' => 'path',
1031                  'type' => 'string',
1032                  'required' => true,
1033                ],
1034              ],
1035            ],'list' => [
1036              'path' => 'v1/invitations',
1037              'httpMethod' => 'GET',
1038              'parameters' => [
1039                'courseId' => [
1040                  'location' => 'query',
1041                  'type' => 'string',
1042                ],
1043                'pageSize' => [
1044                  'location' => 'query',
1045                  'type' => 'integer',
1046                ],
1047                'pageToken' => [
1048                  'location' => 'query',
1049                  'type' => 'string',
1050                ],
1051                'userId' => [
1052                  'location' => 'query',
1053                  'type' => 'string',
1054                ],
1055              ],
1056            ],
1057          ]
1058        ]
1059    );
1060    $this->registrations = new Classroom\Resource\Registrations(
1061        $this,
1062        $this->serviceName,
1063        'registrations',
1064        [
1065          'methods' => [
1066            'create' => [
1067              'path' => 'v1/registrations',
1068              'httpMethod' => 'POST',
1069              'parameters' => [],
1070            ],'delete' => [
1071              'path' => 'v1/registrations/{registrationId}',
1072              'httpMethod' => 'DELETE',
1073              'parameters' => [
1074                'registrationId' => [
1075                  'location' => 'path',
1076                  'type' => 'string',
1077                  'required' => true,
1078                ],
1079              ],
1080            ],
1081          ]
1082        ]
1083    );
1084    $this->userProfiles = new Classroom\Resource\UserProfiles(
1085        $this,
1086        $this->serviceName,
1087        'userProfiles',
1088        [
1089          'methods' => [
1090            'get' => [
1091              'path' => 'v1/userProfiles/{userId}',
1092              'httpMethod' => 'GET',
1093              'parameters' => [
1094                'userId' => [
1095                  'location' => 'path',
1096                  'type' => 'string',
1097                  'required' => true,
1098                ],
1099              ],
1100            ],
1101          ]
1102        ]
1103    );
1104    $this->userProfiles_guardianInvitations = new Classroom\Resource\UserProfilesGuardianInvitations(
1105        $this,
1106        $this->serviceName,
1107        'guardianInvitations',
1108        [
1109          'methods' => [
1110            'create' => [
1111              'path' => 'v1/userProfiles/{studentId}/guardianInvitations',
1112              'httpMethod' => 'POST',
1113              'parameters' => [
1114                'studentId' => [
1115                  'location' => 'path',
1116                  'type' => 'string',
1117                  'required' => true,
1118                ],
1119              ],
1120            ],'get' => [
1121              'path' => 'v1/userProfiles/{studentId}/guardianInvitations/{invitationId}',
1122              'httpMethod' => 'GET',
1123              'parameters' => [
1124                'studentId' => [
1125                  'location' => 'path',
1126                  'type' => 'string',
1127                  'required' => true,
1128                ],
1129                'invitationId' => [
1130                  'location' => 'path',
1131                  'type' => 'string',
1132                  'required' => true,
1133                ],
1134              ],
1135            ],'list' => [
1136              'path' => 'v1/userProfiles/{studentId}/guardianInvitations',
1137              'httpMethod' => 'GET',
1138              'parameters' => [
1139                'studentId' => [
1140                  'location' => 'path',
1141                  'type' => 'string',
1142                  'required' => true,
1143                ],
1144                'invitedEmailAddress' => [
1145                  'location' => 'query',
1146                  'type' => 'string',
1147                ],
1148                'pageSize' => [
1149                  'location' => 'query',
1150                  'type' => 'integer',
1151                ],
1152                'pageToken' => [
1153                  'location' => 'query',
1154                  'type' => 'string',
1155                ],
1156                'states' => [
1157                  'location' => 'query',
1158                  'type' => 'string',
1159                  'repeated' => true,
1160                ],
1161              ],
1162            ],'patch' => [
1163              'path' => 'v1/userProfiles/{studentId}/guardianInvitations/{invitationId}',
1164              'httpMethod' => 'PATCH',
1165              'parameters' => [
1166                'studentId' => [
1167                  'location' => 'path',
1168                  'type' => 'string',
1169                  'required' => true,
1170                ],
1171                'invitationId' => [
1172                  'location' => 'path',
1173                  'type' => 'string',
1174                  'required' => true,
1175                ],
1176                'updateMask' => [
1177                  'location' => 'query',
1178                  'type' => 'string',
1179                ],
1180              ],
1181            ],
1182          ]
1183        ]
1184    );
1185    $this->userProfiles_guardians = new Classroom\Resource\UserProfilesGuardians(
1186        $this,
1187        $this->serviceName,
1188        'guardians',
1189        [
1190          'methods' => [
1191            'delete' => [
1192              'path' => 'v1/userProfiles/{studentId}/guardians/{guardianId}',
1193              'httpMethod' => 'DELETE',
1194              'parameters' => [
1195                'studentId' => [
1196                  'location' => 'path',
1197                  'type' => 'string',
1198                  'required' => true,
1199                ],
1200                'guardianId' => [
1201                  'location' => 'path',
1202                  'type' => 'string',
1203                  'required' => true,
1204                ],
1205              ],
1206            ],'get' => [
1207              'path' => 'v1/userProfiles/{studentId}/guardians/{guardianId}',
1208              'httpMethod' => 'GET',
1209              'parameters' => [
1210                'studentId' => [
1211                  'location' => 'path',
1212                  'type' => 'string',
1213                  'required' => true,
1214                ],
1215                'guardianId' => [
1216                  'location' => 'path',
1217                  'type' => 'string',
1218                  'required' => true,
1219                ],
1220              ],
1221            ],'list' => [
1222              'path' => 'v1/userProfiles/{studentId}/guardians',
1223              'httpMethod' => 'GET',
1224              'parameters' => [
1225                'studentId' => [
1226                  'location' => 'path',
1227                  'type' => 'string',
1228                  'required' => true,
1229                ],
1230                'invitedEmailAddress' => [
1231                  'location' => 'query',
1232                  'type' => 'string',
1233                ],
1234                'pageSize' => [
1235                  'location' => 'query',
1236                  'type' => 'integer',
1237                ],
1238                'pageToken' => [
1239                  'location' => 'query',
1240                  'type' => 'string',
1241                ],
1242              ],
1243            ],
1244          ]
1245        ]
1246    );
1247  }
1248}
1249
1250// Adding a class alias for backwards compatibility with the previous class name.
1251class_alias(Classroom::class, 'Google_Service_Classroom');
1252