google-api-client 0.9.6 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/api_names.yaml +15 -0
  4. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  5. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +75 -12
  6. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +25 -5
  7. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +6 -2
  8. data/generated/google/apis/adexchangeseller_v2_0.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/classes.rb +1 -1
  10. data/generated/google/apis/admin_directory_v1/representations.rb +1 -2
  11. data/generated/google/apis/adsense_v1_4.rb +1 -1
  12. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  13. data/generated/google/apis/analytics_v3.rb +1 -1
  14. data/generated/google/apis/analyticsreporting_v4.rb +37 -0
  15. data/generated/google/apis/analyticsreporting_v4/classes.rb +1385 -0
  16. data/generated/google/apis/analyticsreporting_v4/representations.rb +597 -0
  17. data/generated/google/apis/analyticsreporting_v4/service.rb +88 -0
  18. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  19. data/generated/google/apis/androidenterprise_v1/classes.rb +98 -2
  20. data/generated/google/apis/androidenterprise_v1/representations.rb +48 -0
  21. data/generated/google/apis/androidenterprise_v1/service.rb +63 -1
  22. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  23. data/generated/google/apis/androidpublisher_v2/classes.rb +268 -0
  24. data/generated/google/apis/androidpublisher_v2/representations.rb +142 -0
  25. data/generated/google/apis/androidpublisher_v2/service.rb +121 -0
  26. data/generated/google/apis/appstate_v1.rb +1 -1
  27. data/generated/google/apis/autoscaler_v1beta2.rb +1 -1
  28. data/generated/google/apis/autoscaler_v1beta2/classes.rb +10 -47
  29. data/generated/google/apis/autoscaler_v1beta2/representations.rb +1 -18
  30. data/generated/google/apis/autoscaler_v1beta2/service.rb +4 -4
  31. data/generated/google/apis/bigquery_v2.rb +1 -1
  32. data/generated/google/apis/bigquery_v2/classes.rb +97 -61
  33. data/generated/google/apis/bigquery_v2/representations.rb +23 -18
  34. data/generated/google/apis/calendar_v3.rb +1 -1
  35. data/generated/google/apis/classroom_v1.rb +23 -2
  36. data/generated/google/apis/classroom_v1/classes.rb +920 -6
  37. data/generated/google/apis/classroom_v1/representations.rb +419 -0
  38. data/generated/google/apis/classroom_v1/service.rb +507 -1
  39. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1/classes.rb +30 -23
  41. data/generated/google/apis/cloudbuild_v1/representations.rb +4 -3
  42. data/generated/google/apis/cloudbuild_v1/service.rb +25 -25
  43. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  44. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  45. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  46. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +55 -0
  47. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +40 -0
  48. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +35 -0
  49. data/generated/google/apis/cloudtrace_v1.rb +11 -3
  50. data/generated/google/apis/cloudtrace_v1/classes.rb +5 -5
  51. data/generated/google/apis/cloudtrace_v1/service.rb +8 -6
  52. data/generated/google/apis/compute_beta.rb +2 -2
  53. data/generated/google/apis/compute_beta/classes.rb +162 -32
  54. data/generated/google/apis/compute_beta/representations.rb +58 -0
  55. data/generated/google/apis/compute_beta/service.rb +392 -267
  56. data/generated/google/apis/compute_v1.rb +2 -2
  57. data/generated/google/apis/compute_v1/classes.rb +21 -9
  58. data/generated/google/apis/compute_v1/representations.rb +1 -0
  59. data/generated/google/apis/compute_v1/service.rb +291 -253
  60. data/generated/google/apis/container_v1.rb +1 -1
  61. data/generated/google/apis/container_v1/classes.rb +148 -0
  62. data/generated/google/apis/container_v1/representations.rb +55 -0
  63. data/generated/google/apis/container_v1/service.rb +161 -0
  64. data/generated/google/apis/content_v2.rb +1 -1
  65. data/generated/google/apis/content_v2/classes.rb +18 -6
  66. data/generated/google/apis/content_v2/representations.rb +1 -0
  67. data/generated/google/apis/customsearch_v1.rb +1 -1
  68. data/generated/google/apis/dataproc_v1.rb +2 -11
  69. data/generated/google/apis/dataproc_v1/classes.rb +0 -19
  70. data/generated/google/apis/dataproc_v1/representations.rb +0 -13
  71. data/generated/google/apis/dataproc_v1/service.rb +8 -87
  72. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  73. data/generated/google/apis/dfareporting_v2_3.rb +1 -1
  74. data/generated/google/apis/dfareporting_v2_3/classes.rb +41 -32
  75. data/generated/google/apis/discovery_v1.rb +2 -2
  76. data/generated/google/apis/discovery_v1/service.rb +2 -2
  77. data/generated/google/apis/dns_v1.rb +2 -3
  78. data/generated/google/apis/dns_v1/service.rb +1 -2
  79. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  80. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  81. data/generated/google/apis/drive_v2.rb +3 -2
  82. data/generated/google/apis/drive_v2/service.rb +2 -1
  83. data/generated/google/apis/drive_v3.rb +3 -2
  84. data/generated/google/apis/drive_v3/service.rb +2 -1
  85. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  86. data/generated/google/apis/games_management_v1management.rb +1 -1
  87. data/generated/google/apis/games_management_v1management/classes.rb +34 -0
  88. data/generated/google/apis/games_management_v1management/representations.rb +16 -0
  89. data/generated/google/apis/games_v1.rb +1 -1
  90. data/generated/google/apis/games_v1/classes.rb +34 -0
  91. data/generated/google/apis/games_v1/representations.rb +16 -0
  92. data/generated/google/apis/games_v1/service.rb +212 -53
  93. data/generated/google/apis/genomics_v1.rb +1 -1
  94. data/generated/google/apis/genomics_v1/classes.rb +18 -0
  95. data/generated/google/apis/genomics_v1/representations.rb +3 -0
  96. data/generated/google/apis/genomics_v1/service.rb +2 -2
  97. data/generated/google/apis/gmail_v1.rb +1 -1
  98. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  99. data/generated/google/apis/identitytoolkit_v3/classes.rb +19 -7
  100. data/generated/google/apis/identitytoolkit_v3/representations.rb +3 -1
  101. data/generated/google/apis/mybusiness_v3.rb +32 -0
  102. data/generated/google/apis/mybusiness_v3/classes.rb +1864 -0
  103. data/generated/google/apis/mybusiness_v3/representations.rb +741 -0
  104. data/generated/google/apis/mybusiness_v3/service.rb +960 -0
  105. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  106. data/generated/google/apis/plus_domains_v1.rb +2 -2
  107. data/generated/google/apis/plus_domains_v1/service.rb +1 -1
  108. data/generated/google/apis/plus_v1.rb +2 -2
  109. data/generated/google/apis/plus_v1/service.rb +1 -1
  110. data/generated/google/apis/prediction_v1_6.rb +4 -1
  111. data/generated/google/apis/proximitybeacon_v1beta1.rb +5 -2
  112. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +169 -22
  113. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +36 -1
  114. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +254 -39
  115. data/generated/google/apis/replicapool_v1beta2.rb +3 -3
  116. data/generated/google/apis/replicapool_v1beta2/service.rb +2 -2
  117. data/generated/google/apis/resourceviews_v1beta2.rb +1 -1
  118. data/generated/google/apis/script_v1.rb +6 -3
  119. data/generated/google/apis/script_v1/service.rb +2 -2
  120. data/generated/google/apis/sheets_v4.rb +43 -0
  121. data/generated/google/apis/sheets_v4/classes.rb +5425 -0
  122. data/generated/google/apis/sheets_v4/representations.rb +2070 -0
  123. data/generated/google/apis/sheets_v4/service.rb +402 -0
  124. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  125. data/generated/google/apis/sqladmin_v1beta4/classes.rb +19 -4
  126. data/generated/google/apis/sqladmin_v1beta4/representations.rb +3 -0
  127. data/generated/google/apis/storage_v1.rb +1 -1
  128. data/generated/google/apis/storage_v1/classes.rb +2 -1
  129. data/generated/google/apis/taskqueue_v1beta2.rb +2 -2
  130. data/generated/google/apis/taskqueue_v1beta2/service.rb +1 -1
  131. data/generated/google/apis/vision_v1.rb +4 -5
  132. data/generated/google/apis/vision_v1/classes.rb +69 -68
  133. data/generated/google/apis/vision_v1/representations.rb +13 -13
  134. data/generated/google/apis/vision_v1/service.rb +3 -4
  135. data/generated/google/apis/youtube_analytics_v1.rb +2 -2
  136. data/generated/google/apis/youtube_analytics_v1/service.rb +1 -1
  137. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  138. data/generated/google/apis/youtube_partner_v1/classes.rb +121 -0
  139. data/generated/google/apis/youtube_partner_v1/representations.rb +50 -0
  140. data/generated/google/apis/youtube_partner_v1/service.rb +40 -0
  141. data/generated/google/apis/youtube_v3.rb +1 -1
  142. data/generated/google/apis/youtube_v3/classes.rb +24 -0
  143. data/generated/google/apis/youtube_v3/representations.rb +4 -0
  144. data/generated/google/apis/youtubereporting_v1.rb +3 -3
  145. data/generated/google/apis/youtubereporting_v1/classes.rb +19 -0
  146. data/generated/google/apis/youtubereporting_v1/representations.rb +3 -0
  147. data/generated/google/apis/youtubereporting_v1/service.rb +3 -4
  148. data/lib/google/apis/version.rb +1 -1
  149. metadata +14 -2
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/google-apps/calendar/firstapp
26
26
  module CalendarV3
27
27
  VERSION = 'V3'
28
- REVISION = '20160410'
28
+ REVISION = '20160517'
29
29
 
30
30
  # Manage your calendars
31
31
  AUTH_CALENDAR = 'https://www.googleapis.com/auth/calendar'
@@ -20,12 +20,15 @@ module Google
20
20
  module Apis
21
21
  # Google Classroom API
22
22
  #
23
- # Google Classroom API
23
+ # Manages classes, rosters, and invitations in Google Classroom.
24
24
  #
25
25
  # @see https://developers.google.com/classroom/
26
26
  module ClassroomV1
27
27
  VERSION = 'V1'
28
- REVISION = '20151013'
28
+ REVISION = '20160517'
29
+
30
+ # View instructions for teacher-assigned work in your Google Classroom classes
31
+ AUTH_CLASSROOM_COURSE_WORK_READONLY = 'https://www.googleapis.com/auth/classroom.course-work.readonly'
29
32
 
30
33
  # Manage your Google Classroom classes
31
34
  AUTH_CLASSROOM_COURSES = 'https://www.googleapis.com/auth/classroom.courses'
@@ -33,6 +36,18 @@ module Google
33
36
  # View your Google Classroom classes
34
37
  AUTH_CLASSROOM_COURSES_READONLY = 'https://www.googleapis.com/auth/classroom.courses.readonly'
35
38
 
39
+ # Manage your course work and view your grades in Google Classroom
40
+ AUTH_CLASSROOM_COURSEWORK_ME = 'https://www.googleapis.com/auth/classroom.coursework.me'
41
+
42
+ # View your course work and grades in Google Classroom
43
+ AUTH_CLASSROOM_COURSEWORK_ME_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.me.readonly'
44
+
45
+ # 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
46
+ AUTH_CLASSROOM_COURSEWORK_STUDENTS = 'https://www.googleapis.com/auth/classroom.coursework.students'
47
+
48
+ # View course work and grades for students in the Google Classroom classes you teach or administer
49
+ AUTH_CLASSROOM_COURSEWORK_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.students.readonly'
50
+
36
51
  # View the email addresses of people in your classes
37
52
  AUTH_CLASSROOM_PROFILE_EMAILS = 'https://www.googleapis.com/auth/classroom.profile.emails'
38
53
 
@@ -44,6 +59,12 @@ module Google
44
59
 
45
60
  # View your Google Classroom class rosters
46
61
  AUTH_CLASSROOM_ROSTERS_READONLY = 'https://www.googleapis.com/auth/classroom.rosters.readonly'
62
+
63
+ # View your course work and grades in Google Classroom
64
+ AUTH_CLASSROOM_STUDENT_SUBMISSIONS_ME_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.me.readonly'
65
+
66
+ # View course work and grades for students in the Google Classroom classes you teach or administer
67
+ AUTH_CLASSROOM_STUDENT_SUBMISSIONS_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.students.readonly'
47
68
  end
48
69
  end
49
70
  end
@@ -30,7 +30,7 @@ module Google
30
30
  # may optionally set this identifier to an alias string in the request to create
31
31
  # a corresponding alias. The `id` is still assigned by Classroom and cannot be
32
32
  # updated after the course is created. Specifying this field in a course update
33
- # mask will result in an error.
33
+ # mask results in an error.
34
34
  # Corresponds to the JSON property `id`
35
35
  # @return [String]
36
36
  attr_accessor :id
@@ -72,26 +72,26 @@ module Google
72
72
  # create course request, this field is required. The identifier can be one of
73
73
  # the following: * the numeric identifier for the user * the email address of
74
74
  # the user * the string literal `"me"`, indicating the requesting user This must
75
- # be set in a create request. Specifying this field in a course update mask will
76
- # result in an `INVALID_ARGUMENT` error.
75
+ # be set in a create request. Specifying this field in a course update mask
76
+ # results in an `INVALID_ARGUMENT` error.
77
77
  # Corresponds to the JSON property `ownerId`
78
78
  # @return [String]
79
79
  attr_accessor :owner_id
80
80
 
81
81
  # Creation time of the course. Specifying this field in a course update mask
82
- # will result in an error. Read-only.
82
+ # results in an error. Read-only.
83
83
  # Corresponds to the JSON property `creationTime`
84
84
  # @return [String]
85
85
  attr_accessor :creation_time
86
86
 
87
87
  # Time of the most recent update to this course. Specifying this field in a
88
- # course update mask will result in an error. Read-only.
88
+ # course update mask results in an error. Read-only.
89
89
  # Corresponds to the JSON property `updateTime`
90
90
  # @return [String]
91
91
  attr_accessor :update_time
92
92
 
93
93
  # Enrollment code to use when joining this course. Specifying this field in a
94
- # course update mask will result in an error. Read-only.
94
+ # course update mask results in an error. Read-only.
95
95
  # Corresponds to the JSON property `enrollmentCode`
96
96
  # @return [String]
97
97
  attr_accessor :enrollment_code
@@ -106,6 +106,29 @@ module Google
106
106
  # @return [String]
107
107
  attr_accessor :alternate_link
108
108
 
109
+ # The email address of a Google group containing all teachers of the course.
110
+ # This group does not accept email and can only be used for permissions. Read-
111
+ # only.
112
+ # Corresponds to the JSON property `teacherGroupEmail`
113
+ # @return [String]
114
+ attr_accessor :teacher_group_email
115
+
116
+ # The email address of a Google group containing all members of the course. This
117
+ # group does not accept email and can only be used for permissions. Read-only.
118
+ # Corresponds to the JSON property `courseGroupEmail`
119
+ # @return [String]
120
+ attr_accessor :course_group_email
121
+
122
+ # Representation of a Google Drive folder.
123
+ # Corresponds to the JSON property `teacherFolder`
124
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
125
+ attr_accessor :teacher_folder
126
+
127
+ # Sets of materials that appear on the "about" page of this course. Read-only.
128
+ # Corresponds to the JSON property `courseMaterialSets`
129
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterialSet>]
130
+ attr_accessor :course_material_sets
131
+
109
132
  def initialize(**args)
110
133
  update!(**args)
111
134
  end
@@ -124,6 +147,249 @@ module Google
124
147
  @enrollment_code = args[:enrollment_code] if args.key?(:enrollment_code)
125
148
  @course_state = args[:course_state] if args.key?(:course_state)
126
149
  @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
150
+ @teacher_group_email = args[:teacher_group_email] if args.key?(:teacher_group_email)
151
+ @course_group_email = args[:course_group_email] if args.key?(:course_group_email)
152
+ @teacher_folder = args[:teacher_folder] if args.key?(:teacher_folder)
153
+ @course_material_sets = args[:course_material_sets] if args.key?(:course_material_sets)
154
+ end
155
+ end
156
+
157
+ # Representation of a Google Drive folder.
158
+ class DriveFolder
159
+ include Google::Apis::Core::Hashable
160
+
161
+ # Drive API resource ID.
162
+ # Corresponds to the JSON property `id`
163
+ # @return [String]
164
+ attr_accessor :id
165
+
166
+ # Title of the Drive folder. Read-only.
167
+ # Corresponds to the JSON property `title`
168
+ # @return [String]
169
+ attr_accessor :title
170
+
171
+ # URL that can be used to access the Drive folder. Read-only.
172
+ # Corresponds to the JSON property `alternateLink`
173
+ # @return [String]
174
+ attr_accessor :alternate_link
175
+
176
+ def initialize(**args)
177
+ update!(**args)
178
+ end
179
+
180
+ # Update properties of this object
181
+ def update!(**args)
182
+ @id = args[:id] if args.key?(:id)
183
+ @title = args[:title] if args.key?(:title)
184
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
185
+ end
186
+ end
187
+
188
+ # A set of materials that appears on the "About" page of the course. These
189
+ # materials might include a syllabus, schedule, or other background information
190
+ # relating to the course as a whole.
191
+ class CourseMaterialSet
192
+ include Google::Apis::Core::Hashable
193
+
194
+ # Title for this set.
195
+ # Corresponds to the JSON property `title`
196
+ # @return [String]
197
+ attr_accessor :title
198
+
199
+ # Materials attached to this set.
200
+ # Corresponds to the JSON property `materials`
201
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterial>]
202
+ attr_accessor :materials
203
+
204
+ def initialize(**args)
205
+ update!(**args)
206
+ end
207
+
208
+ # Update properties of this object
209
+ def update!(**args)
210
+ @title = args[:title] if args.key?(:title)
211
+ @materials = args[:materials] if args.key?(:materials)
212
+ end
213
+ end
214
+
215
+ # A material attached to a course as part of a material set.
216
+ class CourseMaterial
217
+ include Google::Apis::Core::Hashable
218
+
219
+ # Representation of a Google Drive file.
220
+ # Corresponds to the JSON property `driveFile`
221
+ # @return [Google::Apis::ClassroomV1::DriveFile]
222
+ attr_accessor :drive_file
223
+
224
+ # YouTube video item.
225
+ # Corresponds to the JSON property `youTubeVideo`
226
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
227
+ attr_accessor :you_tube_video
228
+
229
+ # URL item.
230
+ # Corresponds to the JSON property `link`
231
+ # @return [Google::Apis::ClassroomV1::Link]
232
+ attr_accessor :link
233
+
234
+ # Google Forms item.
235
+ # Corresponds to the JSON property `form`
236
+ # @return [Google::Apis::ClassroomV1::Form]
237
+ attr_accessor :form
238
+
239
+ def initialize(**args)
240
+ update!(**args)
241
+ end
242
+
243
+ # Update properties of this object
244
+ def update!(**args)
245
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
246
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
247
+ @link = args[:link] if args.key?(:link)
248
+ @form = args[:form] if args.key?(:form)
249
+ end
250
+ end
251
+
252
+ # Representation of a Google Drive file.
253
+ class DriveFile
254
+ include Google::Apis::Core::Hashable
255
+
256
+ # Drive API resource ID.
257
+ # Corresponds to the JSON property `id`
258
+ # @return [String]
259
+ attr_accessor :id
260
+
261
+ # Title of the Drive item. Read-only.
262
+ # Corresponds to the JSON property `title`
263
+ # @return [String]
264
+ attr_accessor :title
265
+
266
+ # URL that can be used to access the Drive item. Read-only.
267
+ # Corresponds to the JSON property `alternateLink`
268
+ # @return [String]
269
+ attr_accessor :alternate_link
270
+
271
+ # URL of a thumbnail image of the Drive item. Read-only.
272
+ # Corresponds to the JSON property `thumbnailUrl`
273
+ # @return [String]
274
+ attr_accessor :thumbnail_url
275
+
276
+ def initialize(**args)
277
+ update!(**args)
278
+ end
279
+
280
+ # Update properties of this object
281
+ def update!(**args)
282
+ @id = args[:id] if args.key?(:id)
283
+ @title = args[:title] if args.key?(:title)
284
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
285
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
286
+ end
287
+ end
288
+
289
+ # YouTube video item.
290
+ class YouTubeVideo
291
+ include Google::Apis::Core::Hashable
292
+
293
+ # YouTube API resource ID.
294
+ # Corresponds to the JSON property `id`
295
+ # @return [String]
296
+ attr_accessor :id
297
+
298
+ # Title of the YouTube video. Read-only.
299
+ # Corresponds to the JSON property `title`
300
+ # @return [String]
301
+ attr_accessor :title
302
+
303
+ # URL that can be used to view the YouTube video. Read-only.
304
+ # Corresponds to the JSON property `alternateLink`
305
+ # @return [String]
306
+ attr_accessor :alternate_link
307
+
308
+ # URL of a thumbnail image of the YouTube video. Read-only.
309
+ # Corresponds to the JSON property `thumbnailUrl`
310
+ # @return [String]
311
+ attr_accessor :thumbnail_url
312
+
313
+ def initialize(**args)
314
+ update!(**args)
315
+ end
316
+
317
+ # Update properties of this object
318
+ def update!(**args)
319
+ @id = args[:id] if args.key?(:id)
320
+ @title = args[:title] if args.key?(:title)
321
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
322
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
323
+ end
324
+ end
325
+
326
+ # URL item.
327
+ class Link
328
+ include Google::Apis::Core::Hashable
329
+
330
+ # URL to link to. This must be a valid UTF-8 string containing between 1 and
331
+ # 2024 characters.
332
+ # Corresponds to the JSON property `url`
333
+ # @return [String]
334
+ attr_accessor :url
335
+
336
+ # Title of the target of the URL. Read-only.
337
+ # Corresponds to the JSON property `title`
338
+ # @return [String]
339
+ attr_accessor :title
340
+
341
+ # URL of a thumbnail image of the target URL. Read-only.
342
+ # Corresponds to the JSON property `thumbnailUrl`
343
+ # @return [String]
344
+ attr_accessor :thumbnail_url
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ @url = args[:url] if args.key?(:url)
353
+ @title = args[:title] if args.key?(:title)
354
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
355
+ end
356
+ end
357
+
358
+ # Google Forms item.
359
+ class Form
360
+ include Google::Apis::Core::Hashable
361
+
362
+ # URL of the form.
363
+ # Corresponds to the JSON property `formUrl`
364
+ # @return [String]
365
+ attr_accessor :form_url
366
+
367
+ # URL of the form responses document. Only set if respsonses have been recorded
368
+ # and only when the requesting user is an editor of the form. Read-only.
369
+ # Corresponds to the JSON property `responseUrl`
370
+ # @return [String]
371
+ attr_accessor :response_url
372
+
373
+ # Title of the Form. Read-only.
374
+ # Corresponds to the JSON property `title`
375
+ # @return [String]
376
+ attr_accessor :title
377
+
378
+ # URL of a thumbnail image of the Form. Read-only.
379
+ # Corresponds to the JSON property `thumbnailUrl`
380
+ # @return [String]
381
+ attr_accessor :thumbnail_url
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @form_url = args[:form_url] if args.key?(:form_url)
390
+ @response_url = args[:response_url] if args.key?(:response_url)
391
+ @title = args[:title] if args.key?(:title)
392
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
127
393
  end
128
394
  end
129
395
 
@@ -470,6 +736,11 @@ module Google
470
736
  # @return [Google::Apis::ClassroomV1::UserProfile]
471
737
  attr_accessor :profile
472
738
 
739
+ # Representation of a Google Drive folder.
740
+ # Corresponds to the JSON property `studentWorkFolder`
741
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
742
+ attr_accessor :student_work_folder
743
+
473
744
  def initialize(**args)
474
745
  update!(**args)
475
746
  end
@@ -479,6 +750,7 @@ module Google
479
750
  @course_id = args[:course_id] if args.key?(:course_id)
480
751
  @user_id = args[:user_id] if args.key?(:user_id)
481
752
  @profile = args[:profile] if args.key?(:profile)
753
+ @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
482
754
  end
483
755
  end
484
756
 
@@ -507,6 +779,648 @@ module Google
507
779
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
508
780
  end
509
781
  end
782
+
783
+ # Course work created by a teacher for students of the course.
784
+ class CourseWork
785
+ include Google::Apis::Core::Hashable
786
+
787
+ # Identifier of the course. Read-only.
788
+ # Corresponds to the JSON property `courseId`
789
+ # @return [String]
790
+ attr_accessor :course_id
791
+
792
+ # Classroom-assigned identifier of this course work, unique per course. Read-
793
+ # only.
794
+ # Corresponds to the JSON property `id`
795
+ # @return [String]
796
+ attr_accessor :id
797
+
798
+ # Title of this course work. The title must be a valid UTF-8 string containing
799
+ # between 1 and 3000 characters.
800
+ # Corresponds to the JSON property `title`
801
+ # @return [String]
802
+ attr_accessor :title
803
+
804
+ # Optional description of this course work. If set, the description must be a
805
+ # valid UTF-8 string containing no more than 30,000 characters.
806
+ # Corresponds to the JSON property `description`
807
+ # @return [String]
808
+ attr_accessor :description
809
+
810
+ # Additional materials.
811
+ # Corresponds to the JSON property `materials`
812
+ # @return [Array<Google::Apis::ClassroomV1::Material>]
813
+ attr_accessor :materials
814
+
815
+ # Status of this course work.. If unspecified, the default state is `DRAFT`.
816
+ # Corresponds to the JSON property `state`
817
+ # @return [String]
818
+ attr_accessor :state
819
+
820
+ # Absolute link to this course work in the Classroom web UI. This is only
821
+ # populated if `state` is `PUBLISHED`. Read-only.
822
+ # Corresponds to the JSON property `alternateLink`
823
+ # @return [String]
824
+ attr_accessor :alternate_link
825
+
826
+ # Timestamp when this course work was created. Read-only.
827
+ # Corresponds to the JSON property `creationTime`
828
+ # @return [String]
829
+ attr_accessor :creation_time
830
+
831
+ # Timestamp of the most recent change to this course work. Read-only.
832
+ # Corresponds to the JSON property `updateTime`
833
+ # @return [String]
834
+ attr_accessor :update_time
835
+
836
+ # Represents a whole calendar date, e.g. date of birth. The time of day and time
837
+ # zone are either specified elsewhere or are not significant. The date is
838
+ # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
839
+ # year and month where the day is not significant, e.g. credit card expiration
840
+ # date. The year may be 0 to represent a month and day independent of year, e.g.
841
+ # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
842
+ # Timestamp`.
843
+ # Corresponds to the JSON property `dueDate`
844
+ # @return [Google::Apis::ClassroomV1::Date]
845
+ attr_accessor :due_date
846
+
847
+ # Represents a time of day. The date and time zone are either not significant or
848
+ # are specified elsewhere. An API may chose to allow leap seconds. Related types
849
+ # are google.type.Date and `google.protobuf.Timestamp`.
850
+ # Corresponds to the JSON property `dueTime`
851
+ # @return [Google::Apis::ClassroomV1::TimeOfDay]
852
+ attr_accessor :due_time
853
+
854
+ # Maximum grade for this course work. If zero or unspecified, this assignment is
855
+ # considered ungraded. This must be an integer value.
856
+ # Corresponds to the JSON property `maxPoints`
857
+ # @return [Float]
858
+ attr_accessor :max_points
859
+
860
+ # Type of this course work. The type is set when the course work is created and
861
+ # cannot be changed. When creating course work, this must be `ASSIGNMENT`.
862
+ # Corresponds to the JSON property `workType`
863
+ # @return [String]
864
+ attr_accessor :work_type
865
+
866
+ # Whether this course work item is associated with the Developer Console project
867
+ # making the request. See google.classroom.Work.CreateCourseWork for more
868
+ # details. Read-only.
869
+ # Corresponds to the JSON property `associatedWithDeveloper`
870
+ # @return [Boolean]
871
+ attr_accessor :associated_with_developer
872
+ alias_method :associated_with_developer?, :associated_with_developer
873
+
874
+ # Setting to determine when students are allowed to modify submissions. If
875
+ # unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
876
+ # Corresponds to the JSON property `submissionModificationMode`
877
+ # @return [String]
878
+ attr_accessor :submission_modification_mode
879
+
880
+ # Additional details for assignments.
881
+ # Corresponds to the JSON property `assignment`
882
+ # @return [Google::Apis::ClassroomV1::Assignment]
883
+ attr_accessor :assignment
884
+
885
+ # Additional details for multiple-choice questions.
886
+ # Corresponds to the JSON property `multipleChoiceQuestion`
887
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceQuestion]
888
+ attr_accessor :multiple_choice_question
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ @course_id = args[:course_id] if args.key?(:course_id)
897
+ @id = args[:id] if args.key?(:id)
898
+ @title = args[:title] if args.key?(:title)
899
+ @description = args[:description] if args.key?(:description)
900
+ @materials = args[:materials] if args.key?(:materials)
901
+ @state = args[:state] if args.key?(:state)
902
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
903
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
904
+ @update_time = args[:update_time] if args.key?(:update_time)
905
+ @due_date = args[:due_date] if args.key?(:due_date)
906
+ @due_time = args[:due_time] if args.key?(:due_time)
907
+ @max_points = args[:max_points] if args.key?(:max_points)
908
+ @work_type = args[:work_type] if args.key?(:work_type)
909
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
910
+ @submission_modification_mode = args[:submission_modification_mode] if args.key?(:submission_modification_mode)
911
+ @assignment = args[:assignment] if args.key?(:assignment)
912
+ @multiple_choice_question = args[:multiple_choice_question] if args.key?(:multiple_choice_question)
913
+ end
914
+ end
915
+
916
+ # Material attached to course work. When creating attachments, only the Link
917
+ # field may be specified.
918
+ class Material
919
+ include Google::Apis::Core::Hashable
920
+
921
+ # Drive file that is used as material for course work.
922
+ # Corresponds to the JSON property `driveFile`
923
+ # @return [Google::Apis::ClassroomV1::SharedDriveFile]
924
+ attr_accessor :drive_file
925
+
926
+ # YouTube video item.
927
+ # Corresponds to the JSON property `youtubeVideo`
928
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
929
+ attr_accessor :youtube_video
930
+
931
+ # URL item.
932
+ # Corresponds to the JSON property `link`
933
+ # @return [Google::Apis::ClassroomV1::Link]
934
+ attr_accessor :link
935
+
936
+ # Google Forms item.
937
+ # Corresponds to the JSON property `form`
938
+ # @return [Google::Apis::ClassroomV1::Form]
939
+ attr_accessor :form
940
+
941
+ def initialize(**args)
942
+ update!(**args)
943
+ end
944
+
945
+ # Update properties of this object
946
+ def update!(**args)
947
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
948
+ @youtube_video = args[:youtube_video] if args.key?(:youtube_video)
949
+ @link = args[:link] if args.key?(:link)
950
+ @form = args[:form] if args.key?(:form)
951
+ end
952
+ end
953
+
954
+ # Drive file that is used as material for course work.
955
+ class SharedDriveFile
956
+ include Google::Apis::Core::Hashable
957
+
958
+ # Representation of a Google Drive file.
959
+ # Corresponds to the JSON property `driveFile`
960
+ # @return [Google::Apis::ClassroomV1::DriveFile]
961
+ attr_accessor :drive_file
962
+
963
+ # Mechanism by which students access the Drive item.
964
+ # Corresponds to the JSON property `shareMode`
965
+ # @return [String]
966
+ attr_accessor :share_mode
967
+
968
+ def initialize(**args)
969
+ update!(**args)
970
+ end
971
+
972
+ # Update properties of this object
973
+ def update!(**args)
974
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
975
+ @share_mode = args[:share_mode] if args.key?(:share_mode)
976
+ end
977
+ end
978
+
979
+ # Represents a whole calendar date, e.g. date of birth. The time of day and time
980
+ # zone are either specified elsewhere or are not significant. The date is
981
+ # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
982
+ # year and month where the day is not significant, e.g. credit card expiration
983
+ # date. The year may be 0 to represent a month and day independent of year, e.g.
984
+ # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
985
+ # Timestamp`.
986
+ class Date
987
+ include Google::Apis::Core::Hashable
988
+
989
+ # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
990
+ # Corresponds to the JSON property `year`
991
+ # @return [Fixnum]
992
+ attr_accessor :year
993
+
994
+ # Month of year. Must be from 1 to 12.
995
+ # Corresponds to the JSON property `month`
996
+ # @return [Fixnum]
997
+ attr_accessor :month
998
+
999
+ # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if
1000
+ # specifying a year/month where the day is not significant.
1001
+ # Corresponds to the JSON property `day`
1002
+ # @return [Fixnum]
1003
+ attr_accessor :day
1004
+
1005
+ def initialize(**args)
1006
+ update!(**args)
1007
+ end
1008
+
1009
+ # Update properties of this object
1010
+ def update!(**args)
1011
+ @year = args[:year] if args.key?(:year)
1012
+ @month = args[:month] if args.key?(:month)
1013
+ @day = args[:day] if args.key?(:day)
1014
+ end
1015
+ end
1016
+
1017
+ # Represents a time of day. The date and time zone are either not significant or
1018
+ # are specified elsewhere. An API may chose to allow leap seconds. Related types
1019
+ # are google.type.Date and `google.protobuf.Timestamp`.
1020
+ class TimeOfDay
1021
+ include Google::Apis::Core::Hashable
1022
+
1023
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
1024
+ # allow the value "24:00:00" for scenarios like business closing time.
1025
+ # Corresponds to the JSON property `hours`
1026
+ # @return [Fixnum]
1027
+ attr_accessor :hours
1028
+
1029
+ # Minutes of hour of day. Must be from 0 to 59.
1030
+ # Corresponds to the JSON property `minutes`
1031
+ # @return [Fixnum]
1032
+ attr_accessor :minutes
1033
+
1034
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1035
+ # allow the value 60 if it allows leap-seconds.
1036
+ # Corresponds to the JSON property `seconds`
1037
+ # @return [Fixnum]
1038
+ attr_accessor :seconds
1039
+
1040
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1041
+ # Corresponds to the JSON property `nanos`
1042
+ # @return [Fixnum]
1043
+ attr_accessor :nanos
1044
+
1045
+ def initialize(**args)
1046
+ update!(**args)
1047
+ end
1048
+
1049
+ # Update properties of this object
1050
+ def update!(**args)
1051
+ @hours = args[:hours] if args.key?(:hours)
1052
+ @minutes = args[:minutes] if args.key?(:minutes)
1053
+ @seconds = args[:seconds] if args.key?(:seconds)
1054
+ @nanos = args[:nanos] if args.key?(:nanos)
1055
+ end
1056
+ end
1057
+
1058
+ # Additional details for assignments.
1059
+ class Assignment
1060
+ include Google::Apis::Core::Hashable
1061
+
1062
+ # Representation of a Google Drive folder.
1063
+ # Corresponds to the JSON property `studentWorkFolder`
1064
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
1065
+ attr_accessor :student_work_folder
1066
+
1067
+ def initialize(**args)
1068
+ update!(**args)
1069
+ end
1070
+
1071
+ # Update properties of this object
1072
+ def update!(**args)
1073
+ @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
1074
+ end
1075
+ end
1076
+
1077
+ # Additional details for multiple-choice questions.
1078
+ class MultipleChoiceQuestion
1079
+ include Google::Apis::Core::Hashable
1080
+
1081
+ # Possible choices.
1082
+ # Corresponds to the JSON property `choices`
1083
+ # @return [Array<String>]
1084
+ attr_accessor :choices
1085
+
1086
+ def initialize(**args)
1087
+ update!(**args)
1088
+ end
1089
+
1090
+ # Update properties of this object
1091
+ def update!(**args)
1092
+ @choices = args[:choices] if args.key?(:choices)
1093
+ end
1094
+ end
1095
+
1096
+ # Response when listing course work.
1097
+ class ListCourseWorkResponse
1098
+ include Google::Apis::Core::Hashable
1099
+
1100
+ # Course work items that match the request.
1101
+ # Corresponds to the JSON property `courseWork`
1102
+ # @return [Array<Google::Apis::ClassroomV1::CourseWork>]
1103
+ attr_accessor :course_work
1104
+
1105
+ # Token identifying the next page of results to return. If empty, no further
1106
+ # results are available.
1107
+ # Corresponds to the JSON property `nextPageToken`
1108
+ # @return [String]
1109
+ attr_accessor :next_page_token
1110
+
1111
+ def initialize(**args)
1112
+ update!(**args)
1113
+ end
1114
+
1115
+ # Update properties of this object
1116
+ def update!(**args)
1117
+ @course_work = args[:course_work] if args.key?(:course_work)
1118
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1119
+ end
1120
+ end
1121
+
1122
+ # Student submission for course work. StudentSubmission items are generated when
1123
+ # a CourseWork item is created. StudentSubmissions that have never been accessed
1124
+ # (i.e. with `state` = NEW) may not have a creation time or update time.
1125
+ class StudentSubmission
1126
+ include Google::Apis::Core::Hashable
1127
+
1128
+ # Identifier of the course. Read-only.
1129
+ # Corresponds to the JSON property `courseId`
1130
+ # @return [String]
1131
+ attr_accessor :course_id
1132
+
1133
+ # Identifier for the course work this corresponds to. Read-only.
1134
+ # Corresponds to the JSON property `courseWorkId`
1135
+ # @return [String]
1136
+ attr_accessor :course_work_id
1137
+
1138
+ # Classroom-assigned Identifier for the student submission. This is unique among
1139
+ # submissions for the relevant course work. Read-only.
1140
+ # Corresponds to the JSON property `id`
1141
+ # @return [String]
1142
+ attr_accessor :id
1143
+
1144
+ # Identifier for the student that owns this submission. Read-only.
1145
+ # Corresponds to the JSON property `userId`
1146
+ # @return [String]
1147
+ attr_accessor :user_id
1148
+
1149
+ # Creation time of this submission.. This may be unset if the student has not
1150
+ # accessed this item. Read-only.
1151
+ # Corresponds to the JSON property `creationTime`
1152
+ # @return [String]
1153
+ attr_accessor :creation_time
1154
+
1155
+ # Last update time of this submission. This may be unset if the student has not
1156
+ # accessed this item. Read-only.
1157
+ # Corresponds to the JSON property `updateTime`
1158
+ # @return [String]
1159
+ attr_accessor :update_time
1160
+
1161
+ # State of this submission. Read-only.
1162
+ # Corresponds to the JSON property `state`
1163
+ # @return [String]
1164
+ attr_accessor :state
1165
+
1166
+ # Whether this submission is late. Read-only.
1167
+ # Corresponds to the JSON property `late`
1168
+ # @return [Boolean]
1169
+ attr_accessor :late
1170
+ alias_method :late?, :late
1171
+
1172
+ # Optional pending grade. If unset, no grade was set. This must be an integer
1173
+ # value. This is only visible to and modifiable by course teachers.
1174
+ # Corresponds to the JSON property `draftGrade`
1175
+ # @return [Float]
1176
+ attr_accessor :draft_grade
1177
+
1178
+ # Optional grade. If unset, no grade was set. This must be an integer value.
1179
+ # This may be modified only by course teachers.
1180
+ # Corresponds to the JSON property `assignedGrade`
1181
+ # @return [Float]
1182
+ attr_accessor :assigned_grade
1183
+
1184
+ # Absolute link to the submission in the Classroom web UI. Read-only.
1185
+ # Corresponds to the JSON property `alternateLink`
1186
+ # @return [String]
1187
+ attr_accessor :alternate_link
1188
+
1189
+ # Type of course work this submission is for. Read-only.
1190
+ # Corresponds to the JSON property `courseWorkType`
1191
+ # @return [String]
1192
+ attr_accessor :course_work_type
1193
+
1194
+ # Whether this student submission is associated with the Developer Console
1195
+ # project making the request. See google.classroom.Work.CreateCourseWork for
1196
+ # more details. Read-only.
1197
+ # Corresponds to the JSON property `associatedWithDeveloper`
1198
+ # @return [Boolean]
1199
+ attr_accessor :associated_with_developer
1200
+ alias_method :associated_with_developer?, :associated_with_developer
1201
+
1202
+ # Student work for an assignment.
1203
+ # Corresponds to the JSON property `assignmentSubmission`
1204
+ # @return [Google::Apis::ClassroomV1::AssignmentSubmission]
1205
+ attr_accessor :assignment_submission
1206
+
1207
+ # Student work for a short answer question.
1208
+ # Corresponds to the JSON property `shortAnswerSubmission`
1209
+ # @return [Google::Apis::ClassroomV1::ShortAnswerSubmission]
1210
+ attr_accessor :short_answer_submission
1211
+
1212
+ # Student work for a multiple-choice question.
1213
+ # Corresponds to the JSON property `multipleChoiceSubmission`
1214
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceSubmission]
1215
+ attr_accessor :multiple_choice_submission
1216
+
1217
+ def initialize(**args)
1218
+ update!(**args)
1219
+ end
1220
+
1221
+ # Update properties of this object
1222
+ def update!(**args)
1223
+ @course_id = args[:course_id] if args.key?(:course_id)
1224
+ @course_work_id = args[:course_work_id] if args.key?(:course_work_id)
1225
+ @id = args[:id] if args.key?(:id)
1226
+ @user_id = args[:user_id] if args.key?(:user_id)
1227
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1228
+ @update_time = args[:update_time] if args.key?(:update_time)
1229
+ @state = args[:state] if args.key?(:state)
1230
+ @late = args[:late] if args.key?(:late)
1231
+ @draft_grade = args[:draft_grade] if args.key?(:draft_grade)
1232
+ @assigned_grade = args[:assigned_grade] if args.key?(:assigned_grade)
1233
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1234
+ @course_work_type = args[:course_work_type] if args.key?(:course_work_type)
1235
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
1236
+ @assignment_submission = args[:assignment_submission] if args.key?(:assignment_submission)
1237
+ @short_answer_submission = args[:short_answer_submission] if args.key?(:short_answer_submission)
1238
+ @multiple_choice_submission = args[:multiple_choice_submission] if args.key?(:multiple_choice_submission)
1239
+ end
1240
+ end
1241
+
1242
+ # Student work for an assignment.
1243
+ class AssignmentSubmission
1244
+ include Google::Apis::Core::Hashable
1245
+
1246
+ # Attachments added by the student. Drive files that correspond to materials
1247
+ # with a share mode of SUBMISSION_COPY may not exist yet if the student has not
1248
+ # accessed the assignment in Classroom. Some attachment metadata is only
1249
+ # populated if the requesting user has permission to access it. Identifier and
1250
+ # alternate_link fields are available, but others (e.g. title) may not be.
1251
+ # Corresponds to the JSON property `attachments`
1252
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1253
+ attr_accessor :attachments
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @attachments = args[:attachments] if args.key?(:attachments)
1262
+ end
1263
+ end
1264
+
1265
+ # Attachment added to student assignment work. When creating attachments, only
1266
+ # the Link field may be specified.
1267
+ class Attachment
1268
+ include Google::Apis::Core::Hashable
1269
+
1270
+ # Representation of a Google Drive file.
1271
+ # Corresponds to the JSON property `driveFile`
1272
+ # @return [Google::Apis::ClassroomV1::DriveFile]
1273
+ attr_accessor :drive_file
1274
+
1275
+ # YouTube video item.
1276
+ # Corresponds to the JSON property `youTubeVideo`
1277
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1278
+ attr_accessor :you_tube_video
1279
+
1280
+ # URL item.
1281
+ # Corresponds to the JSON property `link`
1282
+ # @return [Google::Apis::ClassroomV1::Link]
1283
+ attr_accessor :link
1284
+
1285
+ # Google Forms item.
1286
+ # Corresponds to the JSON property `form`
1287
+ # @return [Google::Apis::ClassroomV1::Form]
1288
+ attr_accessor :form
1289
+
1290
+ def initialize(**args)
1291
+ update!(**args)
1292
+ end
1293
+
1294
+ # Update properties of this object
1295
+ def update!(**args)
1296
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
1297
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
1298
+ @link = args[:link] if args.key?(:link)
1299
+ @form = args[:form] if args.key?(:form)
1300
+ end
1301
+ end
1302
+
1303
+ # Student work for a short answer question.
1304
+ class ShortAnswerSubmission
1305
+ include Google::Apis::Core::Hashable
1306
+
1307
+ # Student response to a short-answer question.
1308
+ # Corresponds to the JSON property `answer`
1309
+ # @return [String]
1310
+ attr_accessor :answer
1311
+
1312
+ def initialize(**args)
1313
+ update!(**args)
1314
+ end
1315
+
1316
+ # Update properties of this object
1317
+ def update!(**args)
1318
+ @answer = args[:answer] if args.key?(:answer)
1319
+ end
1320
+ end
1321
+
1322
+ # Student work for a multiple-choice question.
1323
+ class MultipleChoiceSubmission
1324
+ include Google::Apis::Core::Hashable
1325
+
1326
+ # Student's select choice.
1327
+ # Corresponds to the JSON property `answer`
1328
+ # @return [String]
1329
+ attr_accessor :answer
1330
+
1331
+ def initialize(**args)
1332
+ update!(**args)
1333
+ end
1334
+
1335
+ # Update properties of this object
1336
+ def update!(**args)
1337
+ @answer = args[:answer] if args.key?(:answer)
1338
+ end
1339
+ end
1340
+
1341
+ # Response when listing student submissions.
1342
+ class ListStudentSubmissionsResponse
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # Student work that matches the request.
1346
+ # Corresponds to the JSON property `studentSubmissions`
1347
+ # @return [Array<Google::Apis::ClassroomV1::StudentSubmission>]
1348
+ attr_accessor :student_submissions
1349
+
1350
+ # Token identifying the next page of results to return. If empty, no further
1351
+ # results are available.
1352
+ # Corresponds to the JSON property `nextPageToken`
1353
+ # @return [String]
1354
+ attr_accessor :next_page_token
1355
+
1356
+ def initialize(**args)
1357
+ update!(**args)
1358
+ end
1359
+
1360
+ # Update properties of this object
1361
+ def update!(**args)
1362
+ @student_submissions = args[:student_submissions] if args.key?(:student_submissions)
1363
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1364
+ end
1365
+ end
1366
+
1367
+ # Request to turn in a student submission.
1368
+ class TurnInStudentSubmissionRequest
1369
+ include Google::Apis::Core::Hashable
1370
+
1371
+ def initialize(**args)
1372
+ update!(**args)
1373
+ end
1374
+
1375
+ # Update properties of this object
1376
+ def update!(**args)
1377
+ end
1378
+ end
1379
+
1380
+ # Request to reclaim a student submission.
1381
+ class ReclaimStudentSubmissionRequest
1382
+ include Google::Apis::Core::Hashable
1383
+
1384
+ def initialize(**args)
1385
+ update!(**args)
1386
+ end
1387
+
1388
+ # Update properties of this object
1389
+ def update!(**args)
1390
+ end
1391
+ end
1392
+
1393
+ # Request to return a student submission.
1394
+ class ReturnStudentSubmissionRequest
1395
+ include Google::Apis::Core::Hashable
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ end
1404
+ end
1405
+
1406
+ # Request to modify the attachments of a student submission.
1407
+ class ModifyAttachmentsRequest
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ # Attachments to add. This may only contain link attachments.
1411
+ # Corresponds to the JSON property `addAttachments`
1412
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1413
+ attr_accessor :add_attachments
1414
+
1415
+ def initialize(**args)
1416
+ update!(**args)
1417
+ end
1418
+
1419
+ # Update properties of this object
1420
+ def update!(**args)
1421
+ @add_attachments = args[:add_attachments] if args.key?(:add_attachments)
1422
+ end
1423
+ end
510
1424
  end
511
1425
  end
512
1426
  end