google-api-client 0.10.1 → 0.10.2

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 (176) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/api_names.yaml +395 -0
  4. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  5. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +254 -254
  6. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +65 -65
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +220 -220
  8. data/generated/google/apis/admin_directory_v1.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/classes.rb +106 -0
  10. data/generated/google/apis/admin_directory_v1/representations.rb +37 -0
  11. data/generated/google/apis/admin_reports_v1.rb +3 -3
  12. data/generated/google/apis/admin_reports_v1/service.rb +6 -6
  13. data/generated/google/apis/adsense_v1_4.rb +1 -1
  14. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  15. data/generated/google/apis/analytics_v3.rb +1 -1
  16. data/generated/google/apis/analytics_v3/service.rb +39 -0
  17. data/generated/google/apis/analyticsreporting_v4/classes.rb +920 -920
  18. data/generated/google/apis/analyticsreporting_v4/representations.rb +197 -197
  19. data/generated/google/apis/analyticsreporting_v4/service.rb +4 -4
  20. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  21. data/generated/google/apis/androidenterprise_v1/classes.rb +8 -13
  22. data/generated/google/apis/androidenterprise_v1/service.rb +3 -3
  23. data/generated/google/apis/appengine_v1beta5.rb +1 -1
  24. data/generated/google/apis/appengine_v1beta5/classes.rb +115 -5
  25. data/generated/google/apis/appengine_v1beta5/representations.rb +37 -0
  26. data/generated/google/apis/appengine_v1beta5/service.rb +12 -9
  27. data/generated/google/apis/appstate_v1.rb +1 -1
  28. data/generated/google/apis/bigquery_v2.rb +1 -1
  29. data/generated/google/apis/bigquery_v2/classes.rb +32 -37
  30. data/generated/google/apis/bigquery_v2/service.rb +10 -2
  31. data/generated/google/apis/calendar_v3.rb +1 -1
  32. data/generated/google/apis/calendar_v3/classes.rb +205 -0
  33. data/generated/google/apis/calendar_v3/representations.rb +97 -0
  34. data/generated/google/apis/classroom_v1.rb +22 -25
  35. data/generated/google/apis/classroom_v1/classes.rb +998 -907
  36. data/generated/google/apis/classroom_v1/representations.rb +240 -240
  37. data/generated/google/apis/classroom_v1/service.rb +1269 -1061
  38. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  39. data/generated/google/apis/cloudbuild_v1/classes.rb +164 -163
  40. data/generated/google/apis/cloudbuild_v1/representations.rb +31 -31
  41. data/generated/google/apis/cloudbuild_v1/service.rb +114 -114
  42. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  43. data/generated/google/apis/clouddebugger_v2/classes.rb +687 -687
  44. data/generated/google/apis/clouddebugger_v2/representations.rb +147 -147
  45. data/generated/google/apis/clouddebugger_v2/service.rb +132 -132
  46. data/generated/google/apis/cloudkms_v1.rb +1 -1
  47. data/generated/google/apis/cloudkms_v1/classes.rb +231 -248
  48. data/generated/google/apis/cloudkms_v1/representations.rb +74 -74
  49. data/generated/google/apis/cloudkms_v1/service.rb +228 -228
  50. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  51. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  52. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +738 -128
  53. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +245 -23
  54. data/generated/google/apis/cloudresourcemanager_v1/service.rb +1293 -249
  55. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +4 -4
  56. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +982 -372
  57. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +293 -71
  58. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +626 -277
  59. data/generated/google/apis/cloudtrace_v1.rb +1 -1
  60. data/generated/google/apis/cloudtrace_v1/classes.rb +19 -19
  61. data/generated/google/apis/cloudtrace_v1/representations.rb +2 -2
  62. data/generated/google/apis/cloudtrace_v1/service.rb +30 -30
  63. data/generated/google/apis/compute_beta.rb +1 -1
  64. data/generated/google/apis/compute_beta/classes.rb +116 -0
  65. data/generated/google/apis/compute_beta/representations.rb +48 -0
  66. data/generated/google/apis/compute_beta/service.rb +46 -1
  67. data/generated/google/apis/compute_v1.rb +1 -1
  68. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  69. data/generated/google/apis/dataflow_v1b3/classes.rb +3276 -3320
  70. data/generated/google/apis/dataflow_v1b3/representations.rb +779 -781
  71. data/generated/google/apis/dataflow_v1b3/service.rb +225 -225
  72. data/generated/google/apis/dataproc_v1.rb +1 -1
  73. data/generated/google/apis/dataproc_v1/classes.rb +1221 -1207
  74. data/generated/google/apis/dataproc_v1/representations.rb +255 -253
  75. data/generated/google/apis/dataproc_v1/service.rb +100 -100
  76. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  77. data/generated/google/apis/deploymentmanager_v2/classes.rb +5 -5
  78. data/generated/google/apis/dns_v1.rb +1 -1
  79. data/generated/google/apis/dns_v2beta1.rb +1 -1
  80. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  81. data/generated/google/apis/drive_v2.rb +1 -1
  82. data/generated/google/apis/drive_v2/classes.rb +3 -1
  83. data/generated/google/apis/drive_v3.rb +1 -1
  84. data/generated/google/apis/drive_v3/classes.rb +3 -1
  85. data/generated/google/apis/fusiontables_v2.rb +1 -1
  86. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  87. data/generated/google/apis/games_management_v1management.rb +1 -1
  88. data/generated/google/apis/games_v1.rb +1 -1
  89. data/generated/google/apis/genomics_v1.rb +7 -7
  90. data/generated/google/apis/genomics_v1/classes.rb +959 -959
  91. data/generated/google/apis/genomics_v1/representations.rb +238 -238
  92. data/generated/google/apis/genomics_v1/service.rb +996 -996
  93. data/generated/google/apis/iam_v1.rb +1 -1
  94. data/generated/google/apis/iam_v1/classes.rb +440 -440
  95. data/generated/google/apis/iam_v1/representations.rb +94 -94
  96. data/generated/google/apis/iam_v1/service.rb +170 -173
  97. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  98. data/generated/google/apis/identitytoolkit_v3/classes.rb +55 -0
  99. data/generated/google/apis/identitytoolkit_v3/representations.rb +8 -0
  100. data/generated/google/apis/kgsearch_v1/service.rb +4 -4
  101. data/generated/google/apis/language_v1beta1.rb +1 -1
  102. data/generated/google/apis/language_v1beta1/classes.rb +427 -427
  103. data/generated/google/apis/language_v1beta1/representations.rb +113 -113
  104. data/generated/google/apis/language_v1beta1/service.rb +25 -24
  105. data/generated/google/apis/licensing_v1.rb +2 -2
  106. data/generated/google/apis/licensing_v1/classes.rb +14 -2
  107. data/generated/google/apis/licensing_v1/representations.rb +2 -0
  108. data/generated/google/apis/licensing_v1/service.rb +1 -1
  109. data/generated/google/apis/logging_v2beta1.rb +1 -1
  110. data/generated/google/apis/logging_v2beta1/classes.rb +864 -864
  111. data/generated/google/apis/logging_v2beta1/representations.rb +168 -168
  112. data/generated/google/apis/logging_v2beta1/service.rb +261 -261
  113. data/generated/google/apis/manufacturers_v1.rb +1 -1
  114. data/generated/google/apis/manufacturers_v1/classes.rb +452 -105
  115. data/generated/google/apis/manufacturers_v1/representations.rb +138 -18
  116. data/generated/google/apis/manufacturers_v1/service.rb +11 -11
  117. data/generated/google/apis/mirror_v1.rb +1 -1
  118. data/generated/google/apis/monitoring_v3.rb +7 -7
  119. data/generated/google/apis/monitoring_v3/classes.rb +668 -670
  120. data/generated/google/apis/monitoring_v3/representations.rb +140 -140
  121. data/generated/google/apis/monitoring_v3/service.rb +208 -208
  122. data/generated/google/apis/partners_v2.rb +1 -1
  123. data/generated/google/apis/partners_v2/classes.rb +505 -505
  124. data/generated/google/apis/partners_v2/representations.rb +118 -118
  125. data/generated/google/apis/partners_v2/service.rb +275 -275
  126. data/generated/google/apis/people_v1.rb +1 -1
  127. data/generated/google/apis/people_v1/classes.rb +1037 -1031
  128. data/generated/google/apis/people_v1/representations.rb +247 -246
  129. data/generated/google/apis/people_v1/service.rb +20 -20
  130. data/generated/google/apis/plus_domains_v1.rb +1 -1
  131. data/generated/google/apis/plus_v1.rb +1 -1
  132. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  133. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +392 -392
  134. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +93 -93
  135. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +381 -381
  136. data/generated/google/apis/pubsub_v1.rb +4 -4
  137. data/generated/google/apis/pubsub_v1/classes.rb +131 -132
  138. data/generated/google/apis/pubsub_v1/representations.rb +35 -35
  139. data/generated/google/apis/pubsub_v1/service.rb +399 -408
  140. data/generated/google/apis/reseller_v1.rb +1 -1
  141. data/generated/google/apis/reseller_v1/classes.rb +9 -0
  142. data/generated/google/apis/reseller_v1/representations.rb +1 -0
  143. data/generated/google/apis/script_v1.rb +9 -9
  144. data/generated/google/apis/script_v1/classes.rb +110 -110
  145. data/generated/google/apis/script_v1/representations.rb +26 -26
  146. data/generated/google/apis/sheets_v4.rb +4 -4
  147. data/generated/google/apis/sheets_v4/classes.rb +4329 -4329
  148. data/generated/google/apis/sheets_v4/representations.rb +856 -856
  149. data/generated/google/apis/sheets_v4/service.rb +106 -106
  150. data/generated/google/apis/slides_v1.rb +4 -4
  151. data/generated/google/apis/slides_v1/classes.rb +2923 -2841
  152. data/generated/google/apis/slides_v1/representations.rb +722 -691
  153. data/generated/google/apis/slides_v1/service.rb +58 -15
  154. data/generated/google/apis/speech_v1beta1.rb +1 -1
  155. data/generated/google/apis/speech_v1beta1/classes.rb +191 -191
  156. data/generated/google/apis/speech_v1beta1/representations.rb +57 -57
  157. data/generated/google/apis/speech_v1beta1/service.rb +70 -70
  158. data/generated/google/apis/storage_v1.rb +1 -1
  159. data/generated/google/apis/storage_v1/classes.rb +151 -0
  160. data/generated/google/apis/storage_v1/representations.rb +45 -0
  161. data/generated/google/apis/storage_v1/service.rb +248 -0
  162. data/generated/google/apis/vision_v1.rb +1 -1
  163. data/generated/google/apis/vision_v1/classes.rb +1227 -1221
  164. data/generated/google/apis/vision_v1/representations.rb +217 -215
  165. data/generated/google/apis/webmasters_v3.rb +1 -1
  166. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  167. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  168. data/generated/google/apis/youtube_partner_v1/classes.rb +78 -0
  169. data/generated/google/apis/youtube_partner_v1/representations.rb +34 -0
  170. data/generated/google/apis/youtube_partner_v1/service.rb +40 -0
  171. data/generated/google/apis/youtubereporting_v1.rb +4 -4
  172. data/generated/google/apis/youtubereporting_v1/classes.rb +65 -65
  173. data/generated/google/apis/youtubereporting_v1/representations.rb +18 -18
  174. data/generated/google/apis/youtubereporting_v1/service.rb +111 -111
  175. data/lib/google/apis/version.rb +1 -1
  176. metadata +2 -2
@@ -22,118 +22,187 @@ module Google
22
22
  module Apis
23
23
  module ClassroomV1
24
24
 
25
- # A Course in Classroom.
26
- class Course
25
+ # Attachment added to student assignment work.
26
+ # When creating attachments, setting the `form` field is not supported.
27
+ class Attachment
27
28
  include Google::Apis::Core::Hashable
28
29
 
29
- # Identifier for this course assigned by Classroom. When creating a course, you
30
- # may optionally set this identifier to an alias string in the request to create
31
- # a corresponding alias. The `id` is still assigned by Classroom and cannot be
32
- # updated after the course is created. Specifying this field in a course update
33
- # mask results in an error.
34
- # Corresponds to the JSON property `id`
35
- # @return [String]
36
- attr_accessor :id
30
+ # Representation of a Google Drive file.
31
+ # Corresponds to the JSON property `driveFile`
32
+ # @return [Google::Apis::ClassroomV1::DriveFile]
33
+ attr_accessor :drive_file
37
34
 
38
- # Name of the course. For example, "10th Grade Biology". The name is required.
39
- # It must be between 1 and 750 characters and a valid UTF-8 string.
40
- # Corresponds to the JSON property `name`
41
- # @return [String]
42
- attr_accessor :name
35
+ # YouTube video item.
36
+ # Corresponds to the JSON property `youTubeVideo`
37
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
38
+ attr_accessor :you_tube_video
43
39
 
44
- # Section of the course. For example, "Period 2". If set, this field must be a
45
- # valid UTF-8 string and no longer than 2800 characters.
46
- # Corresponds to the JSON property `section`
40
+ # URL item.
41
+ # Corresponds to the JSON property `link`
42
+ # @return [Google::Apis::ClassroomV1::Link]
43
+ attr_accessor :link
44
+
45
+ # Google Forms item.
46
+ # Corresponds to the JSON property `form`
47
+ # @return [Google::Apis::ClassroomV1::Form]
48
+ attr_accessor :form
49
+
50
+ def initialize(**args)
51
+ update!(**args)
52
+ end
53
+
54
+ # Update properties of this object
55
+ def update!(**args)
56
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
57
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
58
+ @link = args[:link] if args.key?(:link)
59
+ @form = args[:form] if args.key?(:form)
60
+ end
61
+ end
62
+
63
+ # Response when listing guardian invitations.
64
+ class ListGuardianInvitationsResponse
65
+ include Google::Apis::Core::Hashable
66
+
67
+ # Token identifying the next page of results to return. If empty, no further
68
+ # results are available.
69
+ # Corresponds to the JSON property `nextPageToken`
47
70
  # @return [String]
48
- attr_accessor :section
71
+ attr_accessor :next_page_token
49
72
 
50
- # Optional heading for the description. For example, "Welcome to 10th Grade
51
- # Biology." If set, this field must be a valid UTF-8 string and no longer than
52
- # 3600 characters.
53
- # Corresponds to the JSON property `descriptionHeading`
73
+ # Guardian invitations that matched the list request.
74
+ # Corresponds to the JSON property `guardianInvitations`
75
+ # @return [Array<Google::Apis::ClassroomV1::GuardianInvitation>]
76
+ attr_accessor :guardian_invitations
77
+
78
+ def initialize(**args)
79
+ update!(**args)
80
+ end
81
+
82
+ # Update properties of this object
83
+ def update!(**args)
84
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
85
+ @guardian_invitations = args[:guardian_invitations] if args.key?(:guardian_invitations)
86
+ end
87
+ end
88
+
89
+ # Course work created by a teacher for students of the course.
90
+ class CourseWork
91
+ include Google::Apis::Core::Hashable
92
+
93
+ # Classroom-assigned identifier of this course work, unique per course.
94
+ # Read-only.
95
+ # Corresponds to the JSON property `id`
54
96
  # @return [String]
55
- attr_accessor :description_heading
97
+ attr_accessor :id
56
98
 
57
- # Optional description. For example, "We'll be learning about the structure of
58
- # living creatures from a combination of textbooks, guest lectures, and lab work.
59
- # Expect to be excited!" If set, this field must be a valid UTF-8 string and no
60
- # longer than 30,000 characters.
99
+ # Optional description of this course work.
100
+ # If set, the description must be a valid UTF-8 string containing no more
101
+ # than 30,000 characters.
61
102
  # Corresponds to the JSON property `description`
62
103
  # @return [String]
63
104
  attr_accessor :description
64
105
 
65
- # Optional room location. For example, "301". If set, this field must be a valid
66
- # UTF-8 string and no longer than 650 characters.
67
- # Corresponds to the JSON property `room`
68
- # @return [String]
69
- attr_accessor :room
70
-
71
- # The identifier of the owner of a course. When specified as a parameter of a
72
- # create course request, this field is required. The identifier can be one of
73
- # the following: * the numeric identifier for the user * the email address of
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
76
- # results in an `INVALID_ARGUMENT` error.
77
- # Corresponds to the JSON property `ownerId`
106
+ # Setting to determine when students are allowed to modify submissions.
107
+ # If unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
108
+ # Corresponds to the JSON property `submissionModificationMode`
78
109
  # @return [String]
79
- attr_accessor :owner_id
110
+ attr_accessor :submission_modification_mode
80
111
 
81
- # Creation time of the course. Specifying this field in a course update mask
82
- # results in an error. Read-only.
83
- # Corresponds to the JSON property `creationTime`
84
- # @return [String]
85
- attr_accessor :creation_time
112
+ # Whether this course work item is associated with the Developer Console
113
+ # project making the request.
114
+ # See google.classroom.Work.CreateCourseWork for more
115
+ # details.
116
+ # Read-only.
117
+ # Corresponds to the JSON property `associatedWithDeveloper`
118
+ # @return [Boolean]
119
+ attr_accessor :associated_with_developer
120
+ alias_method :associated_with_developer?, :associated_with_developer
86
121
 
87
- # Time of the most recent update to this course. Specifying this field in a
88
- # course update mask results in an error. Read-only.
122
+ # Timestamp of the most recent change to this course work.
123
+ # Read-only.
89
124
  # Corresponds to the JSON property `updateTime`
90
125
  # @return [String]
91
126
  attr_accessor :update_time
92
127
 
93
- # Enrollment code to use when joining this course. Specifying this field in a
94
- # course update mask results in an error. Read-only.
95
- # Corresponds to the JSON property `enrollmentCode`
96
- # @return [String]
97
- attr_accessor :enrollment_code
98
-
99
- # State of the course. If unspecified, the default state is `PROVISIONED`.
100
- # Corresponds to the JSON property `courseState`
128
+ # Title of this course work.
129
+ # The title must be a valid UTF-8 string containing between 1 and 3000
130
+ # characters.
131
+ # Corresponds to the JSON property `title`
101
132
  # @return [String]
102
- attr_accessor :course_state
133
+ attr_accessor :title
103
134
 
104
- # Absolute link to this course in the Classroom web UI. Read-only.
135
+ # Absolute link to this course work in the Classroom web UI.
136
+ # This is only populated if `state` is `PUBLISHED`.
137
+ # Read-only.
105
138
  # Corresponds to the JSON property `alternateLink`
106
139
  # @return [String]
107
140
  attr_accessor :alternate_link
108
141
 
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`
142
+ # Type of this course work.
143
+ # The type is set when the course work is created and cannot be changed.
144
+ # Corresponds to the JSON property `workType`
113
145
  # @return [String]
114
- attr_accessor :teacher_group_email
146
+ attr_accessor :work_type
115
147
 
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`
148
+ # Additional materials.
149
+ # CourseWork must have no more than 20 material items.
150
+ # Corresponds to the JSON property `materials`
151
+ # @return [Array<Google::Apis::ClassroomV1::Material>]
152
+ attr_accessor :materials
153
+
154
+ # Status of this course work.
155
+ # If unspecified, the default state is `DRAFT`.
156
+ # Corresponds to the JSON property `state`
119
157
  # @return [String]
120
- attr_accessor :course_group_email
158
+ attr_accessor :state
121
159
 
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
160
+ # Represents a whole calendar date, e.g. date of birth. The time of day and
161
+ # time zone are either specified elsewhere or are not significant. The date
162
+ # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
163
+ # represent a year and month where the day is not significant, e.g. credit card
164
+ # expiration date. The year may be 0 to represent a month and day independent
165
+ # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
166
+ # and `google.protobuf.Timestamp`.
167
+ # Corresponds to the JSON property `dueDate`
168
+ # @return [Google::Apis::ClassroomV1::Date]
169
+ attr_accessor :due_date
126
170
 
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
171
+ # Additional details for multiple-choice questions.
172
+ # Corresponds to the JSON property `multipleChoiceQuestion`
173
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceQuestion]
174
+ attr_accessor :multiple_choice_question
131
175
 
132
- # Whether or not guardian notifications are enabled for this course. Read-only.
133
- # Corresponds to the JSON property `guardiansEnabled`
134
- # @return [Boolean]
135
- attr_accessor :guardians_enabled
136
- alias_method :guardians_enabled?, :guardians_enabled
176
+ # Timestamp when this course work was created.
177
+ # Read-only.
178
+ # Corresponds to the JSON property `creationTime`
179
+ # @return [String]
180
+ attr_accessor :creation_time
181
+
182
+ # Identifier of the course.
183
+ # Read-only.
184
+ # Corresponds to the JSON property `courseId`
185
+ # @return [String]
186
+ attr_accessor :course_id
187
+
188
+ # Maximum grade for this course work.
189
+ # If zero or unspecified, this assignment is considered ungraded.
190
+ # This must be a non-negative integer value.
191
+ # Corresponds to the JSON property `maxPoints`
192
+ # @return [Float]
193
+ attr_accessor :max_points
194
+
195
+ # Additional details for assignments.
196
+ # Corresponds to the JSON property `assignment`
197
+ # @return [Google::Apis::ClassroomV1::Assignment]
198
+ attr_accessor :assignment
199
+
200
+ # Represents a time of day. The date and time zone are either not significant
201
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
202
+ # types are google.type.Date and `google.protobuf.Timestamp`.
203
+ # Corresponds to the JSON property `dueTime`
204
+ # @return [Google::Apis::ClassroomV1::TimeOfDay]
205
+ attr_accessor :due_time
137
206
 
138
207
  def initialize(**args)
139
208
  update!(**args)
@@ -142,71 +211,85 @@ module Google
142
211
  # Update properties of this object
143
212
  def update!(**args)
144
213
  @id = args[:id] if args.key?(:id)
145
- @name = args[:name] if args.key?(:name)
146
- @section = args[:section] if args.key?(:section)
147
- @description_heading = args[:description_heading] if args.key?(:description_heading)
148
214
  @description = args[:description] if args.key?(:description)
149
- @room = args[:room] if args.key?(:room)
150
- @owner_id = args[:owner_id] if args.key?(:owner_id)
151
- @creation_time = args[:creation_time] if args.key?(:creation_time)
215
+ @submission_modification_mode = args[:submission_modification_mode] if args.key?(:submission_modification_mode)
216
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
152
217
  @update_time = args[:update_time] if args.key?(:update_time)
153
- @enrollment_code = args[:enrollment_code] if args.key?(:enrollment_code)
154
- @course_state = args[:course_state] if args.key?(:course_state)
218
+ @title = args[:title] if args.key?(:title)
155
219
  @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
156
- @teacher_group_email = args[:teacher_group_email] if args.key?(:teacher_group_email)
157
- @course_group_email = args[:course_group_email] if args.key?(:course_group_email)
158
- @teacher_folder = args[:teacher_folder] if args.key?(:teacher_folder)
159
- @course_material_sets = args[:course_material_sets] if args.key?(:course_material_sets)
160
- @guardians_enabled = args[:guardians_enabled] if args.key?(:guardians_enabled)
220
+ @work_type = args[:work_type] if args.key?(:work_type)
221
+ @materials = args[:materials] if args.key?(:materials)
222
+ @state = args[:state] if args.key?(:state)
223
+ @due_date = args[:due_date] if args.key?(:due_date)
224
+ @multiple_choice_question = args[:multiple_choice_question] if args.key?(:multiple_choice_question)
225
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
226
+ @course_id = args[:course_id] if args.key?(:course_id)
227
+ @max_points = args[:max_points] if args.key?(:max_points)
228
+ @assignment = args[:assignment] if args.key?(:assignment)
229
+ @due_time = args[:due_time] if args.key?(:due_time)
161
230
  end
162
231
  end
163
232
 
164
- # Representation of a Google Drive folder.
165
- class DriveFolder
233
+ # Representation of a Google Drive file.
234
+ class DriveFile
166
235
  include Google::Apis::Core::Hashable
167
236
 
168
- # Drive API resource ID.
169
- # Corresponds to the JSON property `id`
237
+ # URL of a thumbnail image of the Drive item.
238
+ # Read-only.
239
+ # Corresponds to the JSON property `thumbnailUrl`
170
240
  # @return [String]
171
- attr_accessor :id
241
+ attr_accessor :thumbnail_url
172
242
 
173
- # Title of the Drive folder. Read-only.
243
+ # Title of the Drive item.
244
+ # Read-only.
174
245
  # Corresponds to the JSON property `title`
175
246
  # @return [String]
176
247
  attr_accessor :title
177
248
 
178
- # URL that can be used to access the Drive folder. Read-only.
249
+ # URL that can be used to access the Drive item.
250
+ # Read-only.
179
251
  # Corresponds to the JSON property `alternateLink`
180
252
  # @return [String]
181
253
  attr_accessor :alternate_link
182
254
 
255
+ # Drive API resource ID.
256
+ # Corresponds to the JSON property `id`
257
+ # @return [String]
258
+ attr_accessor :id
259
+
183
260
  def initialize(**args)
184
261
  update!(**args)
185
262
  end
186
263
 
187
264
  # Update properties of this object
188
265
  def update!(**args)
189
- @id = args[:id] if args.key?(:id)
266
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
190
267
  @title = args[:title] if args.key?(:title)
191
268
  @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
269
+ @id = args[:id] if args.key?(:id)
192
270
  end
193
271
  end
194
272
 
195
- # A set of materials that appears on the "About" page of the course. These
196
- # materials might include a syllabus, schedule, or other background information
197
- # relating to the course as a whole.
198
- class CourseMaterialSet
273
+ # Representation of a Google Drive folder.
274
+ class DriveFolder
199
275
  include Google::Apis::Core::Hashable
200
276
 
201
- # Title for this set.
277
+ # Title of the Drive folder.
278
+ # Read-only.
202
279
  # Corresponds to the JSON property `title`
203
280
  # @return [String]
204
281
  attr_accessor :title
205
282
 
206
- # Materials attached to this set.
207
- # Corresponds to the JSON property `materials`
208
- # @return [Array<Google::Apis::ClassroomV1::CourseMaterial>]
209
- attr_accessor :materials
283
+ # URL that can be used to access the Drive folder.
284
+ # Read-only.
285
+ # Corresponds to the JSON property `alternateLink`
286
+ # @return [String]
287
+ attr_accessor :alternate_link
288
+
289
+ # Drive API resource ID.
290
+ # Corresponds to the JSON property `id`
291
+ # @return [String]
292
+ attr_accessor :id
210
293
 
211
294
  def initialize(**args)
212
295
  update!(**args)
@@ -215,33 +298,25 @@ module Google
215
298
  # Update properties of this object
216
299
  def update!(**args)
217
300
  @title = args[:title] if args.key?(:title)
218
- @materials = args[:materials] if args.key?(:materials)
301
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
302
+ @id = args[:id] if args.key?(:id)
219
303
  end
220
304
  end
221
305
 
222
- # A material attached to a course as part of a material set.
223
- class CourseMaterial
306
+ # Response when listing course aliases.
307
+ class ListCourseAliasesResponse
224
308
  include Google::Apis::Core::Hashable
225
309
 
226
- # Representation of a Google Drive file.
227
- # Corresponds to the JSON property `driveFile`
228
- # @return [Google::Apis::ClassroomV1::DriveFile]
229
- attr_accessor :drive_file
230
-
231
- # YouTube video item.
232
- # Corresponds to the JSON property `youTubeVideo`
233
- # @return [Google::Apis::ClassroomV1::YouTubeVideo]
234
- attr_accessor :you_tube_video
235
-
236
- # URL item.
237
- # Corresponds to the JSON property `link`
238
- # @return [Google::Apis::ClassroomV1::Link]
239
- attr_accessor :link
310
+ # Token identifying the next page of results to return. If empty, no further
311
+ # results are available.
312
+ # Corresponds to the JSON property `nextPageToken`
313
+ # @return [String]
314
+ attr_accessor :next_page_token
240
315
 
241
- # Google Forms item.
242
- # Corresponds to the JSON property `form`
243
- # @return [Google::Apis::ClassroomV1::Form]
244
- attr_accessor :form
316
+ # The course aliases.
317
+ # Corresponds to the JSON property `aliases`
318
+ # @return [Array<Google::Apis::ClassroomV1::CourseAlias>]
319
+ attr_accessor :aliases
245
320
 
246
321
  def initialize(**args)
247
322
  update!(**args)
@@ -249,36 +324,19 @@ module Google
249
324
 
250
325
  # Update properties of this object
251
326
  def update!(**args)
252
- @drive_file = args[:drive_file] if args.key?(:drive_file)
253
- @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
254
- @link = args[:link] if args.key?(:link)
255
- @form = args[:form] if args.key?(:form)
327
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
328
+ @aliases = args[:aliases] if args.key?(:aliases)
256
329
  end
257
330
  end
258
331
 
259
- # Representation of a Google Drive file.
260
- class DriveFile
332
+ # Student work for a short answer question.
333
+ class ShortAnswerSubmission
261
334
  include Google::Apis::Core::Hashable
262
335
 
263
- # Drive API resource ID.
264
- # Corresponds to the JSON property `id`
265
- # @return [String]
266
- attr_accessor :id
267
-
268
- # Title of the Drive item. Read-only.
269
- # Corresponds to the JSON property `title`
270
- # @return [String]
271
- attr_accessor :title
272
-
273
- # URL that can be used to access the Drive item. Read-only.
274
- # Corresponds to the JSON property `alternateLink`
275
- # @return [String]
276
- attr_accessor :alternate_link
277
-
278
- # URL of a thumbnail image of the Drive item. Read-only.
279
- # Corresponds to the JSON property `thumbnailUrl`
336
+ # Student response to a short-answer question.
337
+ # Corresponds to the JSON property `answer`
280
338
  # @return [String]
281
- attr_accessor :thumbnail_url
339
+ attr_accessor :answer
282
340
 
283
341
  def initialize(**args)
284
342
  update!(**args)
@@ -286,36 +344,33 @@ module Google
286
344
 
287
345
  # Update properties of this object
288
346
  def update!(**args)
289
- @id = args[:id] if args.key?(:id)
290
- @title = args[:title] if args.key?(:title)
291
- @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
292
- @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
347
+ @answer = args[:answer] if args.key?(:answer)
293
348
  end
294
349
  end
295
350
 
296
- # YouTube video item.
297
- class YouTubeVideo
351
+ # A material attached to a course as part of a material set.
352
+ class CourseMaterial
298
353
  include Google::Apis::Core::Hashable
299
354
 
300
- # YouTube API resource ID.
301
- # Corresponds to the JSON property `id`
302
- # @return [String]
303
- attr_accessor :id
355
+ # Representation of a Google Drive file.
356
+ # Corresponds to the JSON property `driveFile`
357
+ # @return [Google::Apis::ClassroomV1::DriveFile]
358
+ attr_accessor :drive_file
304
359
 
305
- # Title of the YouTube video. Read-only.
306
- # Corresponds to the JSON property `title`
307
- # @return [String]
308
- attr_accessor :title
360
+ # YouTube video item.
361
+ # Corresponds to the JSON property `youTubeVideo`
362
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
363
+ attr_accessor :you_tube_video
309
364
 
310
- # URL that can be used to view the YouTube video. Read-only.
311
- # Corresponds to the JSON property `alternateLink`
312
- # @return [String]
313
- attr_accessor :alternate_link
365
+ # URL item.
366
+ # Corresponds to the JSON property `link`
367
+ # @return [Google::Apis::ClassroomV1::Link]
368
+ attr_accessor :link
314
369
 
315
- # URL of a thumbnail image of the YouTube video. Read-only.
316
- # Corresponds to the JSON property `thumbnailUrl`
317
- # @return [String]
318
- attr_accessor :thumbnail_url
370
+ # Google Forms item.
371
+ # Corresponds to the JSON property `form`
372
+ # @return [Google::Apis::ClassroomV1::Form]
373
+ attr_accessor :form
319
374
 
320
375
  def initialize(**args)
321
376
  update!(**args)
@@ -323,32 +378,21 @@ module Google
323
378
 
324
379
  # Update properties of this object
325
380
  def update!(**args)
326
- @id = args[:id] if args.key?(:id)
327
- @title = args[:title] if args.key?(:title)
328
- @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
329
- @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
381
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
382
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
383
+ @link = args[:link] if args.key?(:link)
384
+ @form = args[:form] if args.key?(:form)
330
385
  end
331
386
  end
332
387
 
333
- # URL item.
334
- class Link
388
+ # Student work for a multiple-choice question.
389
+ class MultipleChoiceSubmission
335
390
  include Google::Apis::Core::Hashable
336
391
 
337
- # URL to link to. This must be a valid UTF-8 string containing between 1 and
338
- # 2024 characters.
339
- # Corresponds to the JSON property `url`
340
- # @return [String]
341
- attr_accessor :url
342
-
343
- # Title of the target of the URL. Read-only.
344
- # Corresponds to the JSON property `title`
345
- # @return [String]
346
- attr_accessor :title
347
-
348
- # URL of a thumbnail image of the target URL. Read-only.
349
- # Corresponds to the JSON property `thumbnailUrl`
392
+ # Student's select choice.
393
+ # Corresponds to the JSON property `answer`
350
394
  # @return [String]
351
- attr_accessor :thumbnail_url
395
+ attr_accessor :answer
352
396
 
353
397
  def initialize(**args)
354
398
  update!(**args)
@@ -356,81 +400,92 @@ module Google
356
400
 
357
401
  # Update properties of this object
358
402
  def update!(**args)
359
- @url = args[:url] if args.key?(:url)
360
- @title = args[:title] if args.key?(:title)
361
- @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
403
+ @answer = args[:answer] if args.key?(:answer)
362
404
  end
363
405
  end
364
406
 
365
- # Google Forms item.
366
- class Form
407
+ # URL item.
408
+ class Link
367
409
  include Google::Apis::Core::Hashable
368
410
 
369
- # URL of the form.
370
- # Corresponds to the JSON property `formUrl`
411
+ # URL to link to.
412
+ # This must be a valid UTF-8 string containing between 1 and 2024 characters.
413
+ # Corresponds to the JSON property `url`
371
414
  # @return [String]
372
- attr_accessor :form_url
415
+ attr_accessor :url
373
416
 
374
- # URL of the form responses document. Only set if respsonses have been recorded
375
- # and only when the requesting user is an editor of the form. Read-only.
376
- # Corresponds to the JSON property `responseUrl`
417
+ # URL of a thumbnail image of the target URL.
418
+ # Read-only.
419
+ # Corresponds to the JSON property `thumbnailUrl`
377
420
  # @return [String]
378
- attr_accessor :response_url
421
+ attr_accessor :thumbnail_url
379
422
 
380
- # Title of the Form. Read-only.
423
+ # Title of the target of the URL.
424
+ # Read-only.
381
425
  # Corresponds to the JSON property `title`
382
426
  # @return [String]
383
427
  attr_accessor :title
384
428
 
385
- # URL of a thumbnail image of the Form. Read-only.
386
- # Corresponds to the JSON property `thumbnailUrl`
387
- # @return [String]
388
- attr_accessor :thumbnail_url
389
-
390
429
  def initialize(**args)
391
430
  update!(**args)
392
431
  end
393
432
 
394
433
  # Update properties of this object
395
434
  def update!(**args)
396
- @form_url = args[:form_url] if args.key?(:form_url)
397
- @response_url = args[:response_url] if args.key?(:response_url)
398
- @title = args[:title] if args.key?(:title)
435
+ @url = args[:url] if args.key?(:url)
399
436
  @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
437
+ @title = args[:title] if args.key?(:title)
400
438
  end
401
439
  end
402
440
 
403
- # A generic empty message that you can re-use to avoid defining duplicated empty
404
- # messages in your APIs. A typical example is to use it as the request or the
405
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
406
- # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
407
- # `Empty` is empty JSON object ````.
408
- class Empty
441
+ # Request to modify the attachments of a student submission.
442
+ class ModifyAttachmentsRequest
409
443
  include Google::Apis::Core::Hashable
410
444
 
445
+ # Attachments to add.
446
+ # A student submission may not have more than 20 attachments.
447
+ # Form attachments are not supported.
448
+ # Corresponds to the JSON property `addAttachments`
449
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
450
+ attr_accessor :add_attachments
451
+
411
452
  def initialize(**args)
412
453
  update!(**args)
413
454
  end
414
455
 
415
456
  # Update properties of this object
416
457
  def update!(**args)
458
+ @add_attachments = args[:add_attachments] if args.key?(:add_attachments)
417
459
  end
418
460
  end
419
461
 
420
- # Response when listing courses.
421
- class ListCoursesResponse
462
+ # Represents a time of day. The date and time zone are either not significant
463
+ # or are specified elsewhere. An API may choose to allow leap seconds. Related
464
+ # types are google.type.Date and `google.protobuf.Timestamp`.
465
+ class TimeOfDay
422
466
  include Google::Apis::Core::Hashable
423
467
 
424
- # Courses that match the list request.
425
- # Corresponds to the JSON property `courses`
426
- # @return [Array<Google::Apis::ClassroomV1::Course>]
427
- attr_accessor :courses
468
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
469
+ # Corresponds to the JSON property `nanos`
470
+ # @return [Fixnum]
471
+ attr_accessor :nanos
428
472
 
429
- # Token identifying the next page of results to return. If empty, no further
430
- # results are available.
431
- # Corresponds to the JSON property `nextPageToken`
432
- # @return [String]
433
- attr_accessor :next_page_token
473
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
474
+ # to allow the value "24:00:00" for scenarios like business closing time.
475
+ # Corresponds to the JSON property `hours`
476
+ # @return [Fixnum]
477
+ attr_accessor :hours
478
+
479
+ # Minutes of hour of day. Must be from 0 to 59.
480
+ # Corresponds to the JSON property `minutes`
481
+ # @return [Fixnum]
482
+ attr_accessor :minutes
483
+
484
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
485
+ # allow the value 60 if it allows leap-seconds.
486
+ # Corresponds to the JSON property `seconds`
487
+ # @return [Fixnum]
488
+ attr_accessor :seconds
434
489
 
435
490
  def initialize(**args)
436
491
  update!(**args)
@@ -438,32 +493,41 @@ module Google
438
493
 
439
494
  # Update properties of this object
440
495
  def update!(**args)
441
- @courses = args[:courses] if args.key?(:courses)
442
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
496
+ @nanos = args[:nanos] if args.key?(:nanos)
497
+ @hours = args[:hours] if args.key?(:hours)
498
+ @minutes = args[:minutes] if args.key?(:minutes)
499
+ @seconds = args[:seconds] if args.key?(:seconds)
443
500
  end
444
501
  end
445
502
 
446
- # Alternative identifier for a course. An alias uniquely identifies a course. It
447
- # must be unique within one of the following scopes: * domain: A domain-scoped
448
- # alias is visible to all users within the alias creator's domain and can be
449
- # created only by a domain admin. A domain-scoped alias is often used when a
450
- # course has an identifier external to Classroom. * project: A project-scoped
451
- # alias is visible to any request from an application using the Developer
452
- # Console project ID that created the alias and can be created by any project. A
453
- # project-scoped alias is often used when an application has alternative
454
- # identifiers. A random value can also be used to avoid duplicate courses in the
455
- # event of transmission failures, as retrying a request will return `
456
- # ALREADY_EXISTS` if a previous one has succeeded.
457
- class CourseAlias
503
+ # Google Forms item.
504
+ class Form
458
505
  include Google::Apis::Core::Hashable
459
506
 
460
- # Alias string. The format of the string indicates the desired alias scoping. * `
461
- # d:` indicates a domain-scoped alias. Example: `d:math_101` * `p:` indicates a
462
- # project-scoped alias. Example: `p:abc123` This field has a maximum length of
463
- # 256 characters.
464
- # Corresponds to the JSON property `alias`
507
+ # URL of a thumbnail image of the Form.
508
+ # Read-only.
509
+ # Corresponds to the JSON property `thumbnailUrl`
465
510
  # @return [String]
466
- attr_accessor :alias
511
+ attr_accessor :thumbnail_url
512
+
513
+ # URL of the form.
514
+ # Corresponds to the JSON property `formUrl`
515
+ # @return [String]
516
+ attr_accessor :form_url
517
+
518
+ # Title of the Form.
519
+ # Read-only.
520
+ # Corresponds to the JSON property `title`
521
+ # @return [String]
522
+ attr_accessor :title
523
+
524
+ # URL of the form responses document.
525
+ # Only set if respsonses have been recorded and only when the
526
+ # requesting user is an editor of the form.
527
+ # Read-only.
528
+ # Corresponds to the JSON property `responseUrl`
529
+ # @return [String]
530
+ attr_accessor :response_url
467
531
 
468
532
  def initialize(**args)
469
533
  update!(**args)
@@ -471,24 +535,21 @@ module Google
471
535
 
472
536
  # Update properties of this object
473
537
  def update!(**args)
474
- @alias = args[:alias] if args.key?(:alias)
538
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
539
+ @form_url = args[:form_url] if args.key?(:form_url)
540
+ @title = args[:title] if args.key?(:title)
541
+ @response_url = args[:response_url] if args.key?(:response_url)
475
542
  end
476
543
  end
477
544
 
478
- # Response when listing course aliases.
479
- class ListCourseAliasesResponse
545
+ # Additional details for multiple-choice questions.
546
+ class MultipleChoiceQuestion
480
547
  include Google::Apis::Core::Hashable
481
548
 
482
- # The course aliases.
483
- # Corresponds to the JSON property `aliases`
484
- # @return [Array<Google::Apis::ClassroomV1::CourseAlias>]
485
- attr_accessor :aliases
486
-
487
- # Token identifying the next page of results to return. If empty, no further
488
- # results are available.
489
- # Corresponds to the JSON property `nextPageToken`
490
- # @return [String]
491
- attr_accessor :next_page_token
549
+ # Possible choices.
550
+ # Corresponds to the JSON property `choices`
551
+ # @return [Array<String>]
552
+ attr_accessor :choices
492
553
 
493
554
  def initialize(**args)
494
555
  update!(**args)
@@ -496,25 +557,25 @@ module Google
496
557
 
497
558
  # Update properties of this object
498
559
  def update!(**args)
499
- @aliases = args[:aliases] if args.key?(:aliases)
500
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
560
+ @choices = args[:choices] if args.key?(:choices)
501
561
  end
502
562
  end
503
563
 
504
- # Response when listing guardian invitations.
505
- class ListGuardianInvitationsResponse
564
+ # A set of materials that appears on the "About" page of the course.
565
+ # These materials might include a syllabus, schedule, or other background
566
+ # information relating to the course as a whole.
567
+ class CourseMaterialSet
506
568
  include Google::Apis::Core::Hashable
507
569
 
508
- # Guardian invitations that matched the list request.
509
- # Corresponds to the JSON property `guardianInvitations`
510
- # @return [Array<Google::Apis::ClassroomV1::GuardianInvitation>]
511
- attr_accessor :guardian_invitations
570
+ # Materials attached to this set.
571
+ # Corresponds to the JSON property `materials`
572
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterial>]
573
+ attr_accessor :materials
512
574
 
513
- # Token identifying the next page of results to return. If empty, no further
514
- # results are available.
515
- # Corresponds to the JSON property `nextPageToken`
575
+ # Title for this set.
576
+ # Corresponds to the JSON property `title`
516
577
  # @return [String]
517
- attr_accessor :next_page_token
578
+ attr_accessor :title
518
579
 
519
580
  def initialize(**args)
520
581
  update!(**args)
@@ -522,84 +583,170 @@ module Google
522
583
 
523
584
  # Update properties of this object
524
585
  def update!(**args)
525
- @guardian_invitations = args[:guardian_invitations] if args.key?(:guardian_invitations)
526
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
586
+ @materials = args[:materials] if args.key?(:materials)
587
+ @title = args[:title] if args.key?(:title)
527
588
  end
528
589
  end
529
590
 
530
- # An invitation to become the guardian of a specified user, sent to a specified
531
- # email address.
532
- class GuardianInvitation
591
+ # Student submission for course work.
592
+ # StudentSubmission items are generated when a CourseWork item is created.
593
+ # StudentSubmissions that have never been accessed (i.e. with `state` = NEW)
594
+ # may not have a creation time or update time.
595
+ class StudentSubmission
533
596
  include Google::Apis::Core::Hashable
534
597
 
535
- # ID of the student (in standard format)
536
- # Corresponds to the JSON property `studentId`
598
+ # Classroom-assigned Identifier for the student submission.
599
+ # This is unique among submissions for the relevant course work.
600
+ # Read-only.
601
+ # Corresponds to the JSON property `id`
537
602
  # @return [String]
538
- attr_accessor :student_id
603
+ attr_accessor :id
539
604
 
540
- # Unique identifier for this invitation. Read-only.
541
- # Corresponds to the JSON property `invitationId`
605
+ # Type of course work this submission is for.
606
+ # Read-only.
607
+ # Corresponds to the JSON property `courseWorkType`
542
608
  # @return [String]
543
- attr_accessor :invitation_id
609
+ attr_accessor :course_work_type
544
610
 
545
- # Email address that the invitation was sent to. This field is only visible to
546
- # domain administrators.
547
- # Corresponds to the JSON property `invitedEmailAddress`
548
- # @return [String]
549
- attr_accessor :invited_email_address
611
+ # Optional grade. If unset, no grade was set.
612
+ # This must be a non-negative integer value.
613
+ # This may be modified only by course teachers.
614
+ # Corresponds to the JSON property `assignedGrade`
615
+ # @return [Float]
616
+ attr_accessor :assigned_grade
550
617
 
551
- # The state that this invitation is in.
552
- # Corresponds to the JSON property `state`
553
- # @return [String]
554
- attr_accessor :state
618
+ # Whether this student submission is associated with the Developer Console
619
+ # project making the request.
620
+ # See google.classroom.Work.CreateCourseWork for more
621
+ # details.
622
+ # Read-only.
623
+ # Corresponds to the JSON property `associatedWithDeveloper`
624
+ # @return [Boolean]
625
+ attr_accessor :associated_with_developer
626
+ alias_method :associated_with_developer?, :associated_with_developer
627
+
628
+ # Last update time of this submission.
629
+ # This may be unset if the student has not accessed this item.
630
+ # Read-only.
631
+ # Corresponds to the JSON property `updateTime`
632
+ # @return [String]
633
+ attr_accessor :update_time
634
+
635
+ # Absolute link to the submission in the Classroom web UI.
636
+ # Read-only.
637
+ # Corresponds to the JSON property `alternateLink`
638
+ # @return [String]
639
+ attr_accessor :alternate_link
640
+
641
+ # Optional pending grade. If unset, no grade was set.
642
+ # This must be a non-negative integer value.
643
+ # This is only visible to and modifiable by course teachers.
644
+ # Corresponds to the JSON property `draftGrade`
645
+ # @return [Float]
646
+ attr_accessor :draft_grade
647
+
648
+ # Identifier for the student that owns this submission.
649
+ # Read-only.
650
+ # Corresponds to the JSON property `userId`
651
+ # @return [String]
652
+ attr_accessor :user_id
653
+
654
+ # Student work for a multiple-choice question.
655
+ # Corresponds to the JSON property `multipleChoiceSubmission`
656
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceSubmission]
657
+ attr_accessor :multiple_choice_submission
658
+
659
+ # State of this submission.
660
+ # Read-only.
661
+ # Corresponds to the JSON property `state`
662
+ # @return [String]
663
+ attr_accessor :state
664
+
665
+ # Student work for an assignment.
666
+ # Corresponds to the JSON property `assignmentSubmission`
667
+ # @return [Google::Apis::ClassroomV1::AssignmentSubmission]
668
+ attr_accessor :assignment_submission
555
669
 
556
- # The time that this invitation was created. Read-only.
670
+ # Creation time of this submission.
671
+ # This may be unset if the student has not accessed this item.
672
+ # Read-only.
557
673
  # Corresponds to the JSON property `creationTime`
558
674
  # @return [String]
559
675
  attr_accessor :creation_time
560
676
 
677
+ # Identifier of the course.
678
+ # Read-only.
679
+ # Corresponds to the JSON property `courseId`
680
+ # @return [String]
681
+ attr_accessor :course_id
682
+
683
+ # Student work for a short answer question.
684
+ # Corresponds to the JSON property `shortAnswerSubmission`
685
+ # @return [Google::Apis::ClassroomV1::ShortAnswerSubmission]
686
+ attr_accessor :short_answer_submission
687
+
688
+ # Whether this submission is late.
689
+ # Read-only.
690
+ # Corresponds to the JSON property `late`
691
+ # @return [Boolean]
692
+ attr_accessor :late
693
+ alias_method :late?, :late
694
+
695
+ # Identifier for the course work this corresponds to.
696
+ # Read-only.
697
+ # Corresponds to the JSON property `courseWorkId`
698
+ # @return [String]
699
+ attr_accessor :course_work_id
700
+
561
701
  def initialize(**args)
562
702
  update!(**args)
563
703
  end
564
704
 
565
705
  # Update properties of this object
566
706
  def update!(**args)
567
- @student_id = args[:student_id] if args.key?(:student_id)
568
- @invitation_id = args[:invitation_id] if args.key?(:invitation_id)
569
- @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
707
+ @id = args[:id] if args.key?(:id)
708
+ @course_work_type = args[:course_work_type] if args.key?(:course_work_type)
709
+ @assigned_grade = args[:assigned_grade] if args.key?(:assigned_grade)
710
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
711
+ @update_time = args[:update_time] if args.key?(:update_time)
712
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
713
+ @draft_grade = args[:draft_grade] if args.key?(:draft_grade)
714
+ @user_id = args[:user_id] if args.key?(:user_id)
715
+ @multiple_choice_submission = args[:multiple_choice_submission] if args.key?(:multiple_choice_submission)
570
716
  @state = args[:state] if args.key?(:state)
717
+ @assignment_submission = args[:assignment_submission] if args.key?(:assignment_submission)
571
718
  @creation_time = args[:creation_time] if args.key?(:creation_time)
719
+ @course_id = args[:course_id] if args.key?(:course_id)
720
+ @short_answer_submission = args[:short_answer_submission] if args.key?(:short_answer_submission)
721
+ @late = args[:late] if args.key?(:late)
722
+ @course_work_id = args[:course_work_id] if args.key?(:course_work_id)
572
723
  end
573
724
  end
574
725
 
575
- # Global information for a user.
576
- class UserProfile
726
+ # Alternative identifier for a course.
727
+ # An alias uniquely identifies a course. It must be unique within one of the
728
+ # following scopes:
729
+ # * domain: A domain-scoped alias is visible to all users within the alias
730
+ # creator's domain and can be created only by a domain admin. A domain-scoped
731
+ # alias is often used when a course has an identifier external to Classroom.
732
+ # * project: A project-scoped alias is visible to any request from an
733
+ # application using the Developer Console project ID that created the alias
734
+ # and can be created by any project. A project-scoped alias is often used when
735
+ # an application has alternative identifiers. A random value can also be used
736
+ # to avoid duplicate courses in the event of transmission failures, as retrying
737
+ # a request will return `ALREADY_EXISTS` if a previous one has succeeded.
738
+ class CourseAlias
577
739
  include Google::Apis::Core::Hashable
578
740
 
579
- # Identifier of the user. Read-only.
580
- # Corresponds to the JSON property `id`
581
- # @return [String]
582
- attr_accessor :id
583
-
584
- # Details of the user's name.
585
- # Corresponds to the JSON property `name`
586
- # @return [Google::Apis::ClassroomV1::Name]
587
- attr_accessor :name
588
-
589
- # Email address of the user. Read-only.
590
- # Corresponds to the JSON property `emailAddress`
591
- # @return [String]
592
- attr_accessor :email_address
593
-
594
- # URL of user's profile photo. Read-only.
595
- # Corresponds to the JSON property `photoUrl`
741
+ # Alias string. The format of the string indicates the desired alias scoping.
742
+ # * `d:<name>` indicates a domain-scoped alias.
743
+ # Example: `d:math_101`
744
+ # * `p:<name>` indicates a project-scoped alias.
745
+ # Example: `p:abc123`
746
+ # This field has a maximum length of 256 characters.
747
+ # Corresponds to the JSON property `alias`
596
748
  # @return [String]
597
- attr_accessor :photo_url
598
-
599
- # Global permissions of the user. Read-only.
600
- # Corresponds to the JSON property `permissions`
601
- # @return [Array<Google::Apis::ClassroomV1::GlobalPermission>]
602
- attr_accessor :permissions
749
+ attr_accessor :alias
603
750
 
604
751
  def initialize(**args)
605
752
  update!(**args)
@@ -607,33 +754,25 @@ module Google
607
754
 
608
755
  # Update properties of this object
609
756
  def update!(**args)
610
- @id = args[:id] if args.key?(:id)
611
- @name = args[:name] if args.key?(:name)
612
- @email_address = args[:email_address] if args.key?(:email_address)
613
- @photo_url = args[:photo_url] if args.key?(:photo_url)
614
- @permissions = args[:permissions] if args.key?(:permissions)
757
+ @alias = args[:alias] if args.key?(:alias)
615
758
  end
616
759
  end
617
760
 
618
- # Details of the user's name.
619
- class Name
761
+ # Response when listing guardians.
762
+ class ListGuardiansResponse
620
763
  include Google::Apis::Core::Hashable
621
764
 
622
- # The user's first name. Read-only.
623
- # Corresponds to the JSON property `givenName`
624
- # @return [String]
625
- attr_accessor :given_name
626
-
627
- # The user's last name. Read-only.
628
- # Corresponds to the JSON property `familyName`
629
- # @return [String]
630
- attr_accessor :family_name
765
+ # Guardians on this page of results that met the criteria specified in
766
+ # the request.
767
+ # Corresponds to the JSON property `guardians`
768
+ # @return [Array<Google::Apis::ClassroomV1::Guardian>]
769
+ attr_accessor :guardians
631
770
 
632
- # The user's full name formed by concatenating the first and last name values.
633
- # Read-only.
634
- # Corresponds to the JSON property `fullName`
771
+ # Token identifying the next page of results to return. If empty, no further
772
+ # results are available.
773
+ # Corresponds to the JSON property `nextPageToken`
635
774
  # @return [String]
636
- attr_accessor :full_name
775
+ attr_accessor :next_page_token
637
776
 
638
777
  def initialize(**args)
639
778
  update!(**args)
@@ -641,20 +780,36 @@ module Google
641
780
 
642
781
  # Update properties of this object
643
782
  def update!(**args)
644
- @given_name = args[:given_name] if args.key?(:given_name)
645
- @family_name = args[:family_name] if args.key?(:family_name)
646
- @full_name = args[:full_name] if args.key?(:full_name)
783
+ @guardians = args[:guardians] if args.key?(:guardians)
784
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
647
785
  end
648
786
  end
649
787
 
650
- # Global user permission description.
651
- class GlobalPermission
788
+ # Association between a student and a guardian of that student. The guardian
789
+ # may receive information about the student's course work.
790
+ class Guardian
652
791
  include Google::Apis::Core::Hashable
653
792
 
654
- # Permission value.
655
- # Corresponds to the JSON property `permission`
793
+ # Global information for a user.
794
+ # Corresponds to the JSON property `guardianProfile`
795
+ # @return [Google::Apis::ClassroomV1::UserProfile]
796
+ attr_accessor :guardian_profile
797
+
798
+ # The email address to which the initial guardian invitation was sent.
799
+ # This field is only visible to domain administrators.
800
+ # Corresponds to the JSON property `invitedEmailAddress`
656
801
  # @return [String]
657
- attr_accessor :permission
802
+ attr_accessor :invited_email_address
803
+
804
+ # Identifier for the student to whom the guardian relationship applies.
805
+ # Corresponds to the JSON property `studentId`
806
+ # @return [String]
807
+ attr_accessor :student_id
808
+
809
+ # Identifier for the guardian.
810
+ # Corresponds to the JSON property `guardianId`
811
+ # @return [String]
812
+ attr_accessor :guardian_id
658
813
 
659
814
  def initialize(**args)
660
815
  update!(**args)
@@ -662,7 +817,10 @@ module Google
662
817
 
663
818
  # Update properties of this object
664
819
  def update!(**args)
665
- @permission = args[:permission] if args.key?(:permission)
820
+ @guardian_profile = args[:guardian_profile] if args.key?(:guardian_profile)
821
+ @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
822
+ @student_id = args[:student_id] if args.key?(:student_id)
823
+ @guardian_id = args[:guardian_id] if args.key?(:guardian_id)
666
824
  end
667
825
  end
668
826
 
@@ -670,24 +828,27 @@ module Google
670
828
  class Teacher
671
829
  include Google::Apis::Core::Hashable
672
830
 
673
- # Identifier of the course. Read-only.
831
+ # Identifier of the course.
832
+ # Read-only.
674
833
  # Corresponds to the JSON property `courseId`
675
834
  # @return [String]
676
835
  attr_accessor :course_id
677
836
 
678
- # Identifier of the user. When specified as a parameter of a request, this
679
- # identifier can be one of the following: * the numeric identifier for the user *
680
- # the email address of the user * the string literal `"me"`, indicating the
681
- # requesting user
682
- # Corresponds to the JSON property `userId`
683
- # @return [String]
684
- attr_accessor :user_id
685
-
686
837
  # Global information for a user.
687
838
  # Corresponds to the JSON property `profile`
688
839
  # @return [Google::Apis::ClassroomV1::UserProfile]
689
840
  attr_accessor :profile
690
841
 
842
+ # Identifier of the user.
843
+ # When specified as a parameter of a request, this identifier can be one of
844
+ # the following:
845
+ # * the numeric identifier for the user
846
+ # * the email address of the user
847
+ # * the string literal `"me"`, indicating the requesting user
848
+ # Corresponds to the JSON property `userId`
849
+ # @return [String]
850
+ attr_accessor :user_id
851
+
691
852
  def initialize(**args)
692
853
  update!(**args)
693
854
  end
@@ -695,25 +856,61 @@ module Google
695
856
  # Update properties of this object
696
857
  def update!(**args)
697
858
  @course_id = args[:course_id] if args.key?(:course_id)
698
- @user_id = args[:user_id] if args.key?(:user_id)
699
859
  @profile = args[:profile] if args.key?(:profile)
860
+ @user_id = args[:user_id] if args.key?(:user_id)
700
861
  end
701
862
  end
702
863
 
703
- # Response when listing teachers.
704
- class ListTeachersResponse
864
+ # Global information for a user.
865
+ class UserProfile
705
866
  include Google::Apis::Core::Hashable
706
867
 
707
- # Teachers who match the list request.
708
- # Corresponds to the JSON property `teachers`
709
- # @return [Array<Google::Apis::ClassroomV1::Teacher>]
710
- attr_accessor :teachers
868
+ # Email address of the user.
869
+ # Read-only.
870
+ # Corresponds to the JSON property `emailAddress`
871
+ # @return [String]
872
+ attr_accessor :email_address
711
873
 
712
- # Token identifying the next page of results to return. If empty, no further
713
- # results are available.
714
- # Corresponds to the JSON property `nextPageToken`
874
+ # Global permissions of the user.
875
+ # Read-only.
876
+ # Corresponds to the JSON property `permissions`
877
+ # @return [Array<Google::Apis::ClassroomV1::GlobalPermission>]
878
+ attr_accessor :permissions
879
+
880
+ # Identifier of the user.
881
+ # Read-only.
882
+ # Corresponds to the JSON property `id`
715
883
  # @return [String]
716
- attr_accessor :next_page_token
884
+ attr_accessor :id
885
+
886
+ # Details of the user's name.
887
+ # Corresponds to the JSON property `name`
888
+ # @return [Google::Apis::ClassroomV1::Name]
889
+ attr_accessor :name
890
+
891
+ # URL of user's profile photo.
892
+ # Read-only.
893
+ # Corresponds to the JSON property `photoUrl`
894
+ # @return [String]
895
+ attr_accessor :photo_url
896
+
897
+ def initialize(**args)
898
+ update!(**args)
899
+ end
900
+
901
+ # Update properties of this object
902
+ def update!(**args)
903
+ @email_address = args[:email_address] if args.key?(:email_address)
904
+ @permissions = args[:permissions] if args.key?(:permissions)
905
+ @id = args[:id] if args.key?(:id)
906
+ @name = args[:name] if args.key?(:name)
907
+ @photo_url = args[:photo_url] if args.key?(:photo_url)
908
+ end
909
+ end
910
+
911
+ # Request to reclaim a student submission.
912
+ class ReclaimStudentSubmissionRequest
913
+ include Google::Apis::Core::Hashable
717
914
 
718
915
  def initialize(**args)
719
916
  update!(**args)
@@ -721,8 +918,6 @@ module Google
721
918
 
722
919
  # Update properties of this object
723
920
  def update!(**args)
724
- @teachers = args[:teachers] if args.key?(:teachers)
725
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
726
921
  end
727
922
  end
728
923
 
@@ -730,19 +925,12 @@ module Google
730
925
  class Student
731
926
  include Google::Apis::Core::Hashable
732
927
 
733
- # Identifier of the course. Read-only.
928
+ # Identifier of the course.
929
+ # Read-only.
734
930
  # Corresponds to the JSON property `courseId`
735
931
  # @return [String]
736
932
  attr_accessor :course_id
737
933
 
738
- # Identifier of the user. When specified as a parameter of a request, this
739
- # identifier can be one of the following: * the numeric identifier for the user *
740
- # the email address of the user * the string literal `"me"`, indicating the
741
- # requesting user
742
- # Corresponds to the JSON property `userId`
743
- # @return [String]
744
- attr_accessor :user_id
745
-
746
934
  # Global information for a user.
747
935
  # Corresponds to the JSON property `profile`
748
936
  # @return [Google::Apis::ClassroomV1::UserProfile]
@@ -753,6 +941,16 @@ module Google
753
941
  # @return [Google::Apis::ClassroomV1::DriveFolder]
754
942
  attr_accessor :student_work_folder
755
943
 
944
+ # Identifier of the user.
945
+ # When specified as a parameter of a request, this identifier can be one of
946
+ # the following:
947
+ # * the numeric identifier for the user
948
+ # * the email address of the user
949
+ # * the string literal `"me"`, indicating the requesting user
950
+ # Corresponds to the JSON property `userId`
951
+ # @return [String]
952
+ attr_accessor :user_id
953
+
756
954
  def initialize(**args)
757
955
  update!(**args)
758
956
  end
@@ -760,276 +958,174 @@ module Google
760
958
  # Update properties of this object
761
959
  def update!(**args)
762
960
  @course_id = args[:course_id] if args.key?(:course_id)
763
- @user_id = args[:user_id] if args.key?(:user_id)
764
961
  @profile = args[:profile] if args.key?(:profile)
765
962
  @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
963
+ @user_id = args[:user_id] if args.key?(:user_id)
766
964
  end
767
965
  end
768
966
 
769
- # Response when listing students.
770
- class ListStudentsResponse
967
+ # Response when listing teachers.
968
+ class ListTeachersResponse
771
969
  include Google::Apis::Core::Hashable
772
970
 
773
- # Students who match the list request.
774
- # Corresponds to the JSON property `students`
775
- # @return [Array<Google::Apis::ClassroomV1::Student>]
776
- attr_accessor :students
777
-
778
971
  # Token identifying the next page of results to return. If empty, no further
779
972
  # results are available.
780
973
  # Corresponds to the JSON property `nextPageToken`
781
974
  # @return [String]
782
975
  attr_accessor :next_page_token
783
976
 
977
+ # Teachers who match the list request.
978
+ # Corresponds to the JSON property `teachers`
979
+ # @return [Array<Google::Apis::ClassroomV1::Teacher>]
980
+ attr_accessor :teachers
981
+
784
982
  def initialize(**args)
785
983
  update!(**args)
786
984
  end
787
985
 
788
986
  # Update properties of this object
789
987
  def update!(**args)
790
- @students = args[:students] if args.key?(:students)
791
988
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
989
+ @teachers = args[:teachers] if args.key?(:teachers)
792
990
  end
793
991
  end
794
992
 
795
- # Response when listing guardians.
796
- class ListGuardiansResponse
797
- include Google::Apis::Core::Hashable
798
-
799
- # Guardians on this page of results that met the criteria specified in the
800
- # request.
801
- # Corresponds to the JSON property `guardians`
802
- # @return [Array<Google::Apis::ClassroomV1::Guardian>]
803
- attr_accessor :guardians
804
-
805
- # Token identifying the next page of results to return. If empty, no further
806
- # results are available.
807
- # Corresponds to the JSON property `nextPageToken`
808
- # @return [String]
809
- attr_accessor :next_page_token
810
-
811
- def initialize(**args)
812
- update!(**args)
813
- end
814
-
815
- # Update properties of this object
816
- def update!(**args)
817
- @guardians = args[:guardians] if args.key?(:guardians)
818
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
819
- end
820
- end
821
-
822
- # Association between a student and a guardian of that student. The guardian may
823
- # receive information about the student's course work.
824
- class Guardian
825
- include Google::Apis::Core::Hashable
826
-
827
- # Identifier for the student to whom the guardian relationship applies.
828
- # Corresponds to the JSON property `studentId`
829
- # @return [String]
830
- attr_accessor :student_id
831
-
832
- # Identifier for the guardian.
833
- # Corresponds to the JSON property `guardianId`
834
- # @return [String]
835
- attr_accessor :guardian_id
836
-
837
- # Global information for a user.
838
- # Corresponds to the JSON property `guardianProfile`
839
- # @return [Google::Apis::ClassroomV1::UserProfile]
840
- attr_accessor :guardian_profile
841
-
842
- # The email address to which the initial guardian invitation was sent. This
843
- # field is only visible to domain administrators.
844
- # Corresponds to the JSON property `invitedEmailAddress`
845
- # @return [String]
846
- attr_accessor :invited_email_address
847
-
848
- def initialize(**args)
849
- update!(**args)
850
- end
851
-
852
- # Update properties of this object
853
- def update!(**args)
854
- @student_id = args[:student_id] if args.key?(:student_id)
855
- @guardian_id = args[:guardian_id] if args.key?(:guardian_id)
856
- @guardian_profile = args[:guardian_profile] if args.key?(:guardian_profile)
857
- @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
858
- end
859
- end
860
-
861
- # An invitation to join a course.
862
- class Invitation
993
+ # A Course in Classroom.
994
+ class Course
863
995
  include Google::Apis::Core::Hashable
864
996
 
865
- # Identifier assigned by Classroom. Read-only.
997
+ # Identifier for this course assigned by Classroom.
998
+ # When
999
+ # creating a course,
1000
+ # you may optionally set this identifier to an
1001
+ # alias string in the
1002
+ # request to create a corresponding alias. The `id` is still assigned by
1003
+ # Classroom and cannot be updated after the course is created.
1004
+ # Specifying this field in a course update mask results in an error.
866
1005
  # Corresponds to the JSON property `id`
867
1006
  # @return [String]
868
1007
  attr_accessor :id
869
1008
 
870
- # Identifier of the invited user. When specified as a parameter of a request,
871
- # this identifier can be set to one of the following: * the numeric identifier
872
- # for the user * the email address of the user * the string literal `"me"`,
873
- # indicating the requesting user
874
- # Corresponds to the JSON property `userId`
1009
+ # Optional description.
1010
+ # For example, "We'll be learning about the structure of living
1011
+ # creatures from a combination of textbooks, guest lectures, and lab work.
1012
+ # Expect to be excited!"
1013
+ # If set, this field must be a valid UTF-8 string and no longer than 30,000
1014
+ # characters.
1015
+ # Corresponds to the JSON property `description`
875
1016
  # @return [String]
876
- attr_accessor :user_id
1017
+ attr_accessor :description
877
1018
 
878
- # Identifier of the course to invite the user to.
879
- # Corresponds to the JSON property `courseId`
1019
+ # Time of the most recent update to this course.
1020
+ # Specifying this field in a course update mask results in an error.
1021
+ # Read-only.
1022
+ # Corresponds to the JSON property `updateTime`
880
1023
  # @return [String]
881
- attr_accessor :course_id
1024
+ attr_accessor :update_time
882
1025
 
883
- # Role to invite the user to have. Must not be `COURSE_ROLE_UNSPECIFIED`.
884
- # Corresponds to the JSON property `role`
1026
+ # Section of the course.
1027
+ # For example, "Period 2".
1028
+ # If set, this field must be a valid UTF-8 string and no longer than 2800
1029
+ # characters.
1030
+ # Corresponds to the JSON property `section`
885
1031
  # @return [String]
886
- attr_accessor :role
887
-
888
- def initialize(**args)
889
- update!(**args)
890
- end
891
-
892
- # Update properties of this object
893
- def update!(**args)
894
- @id = args[:id] if args.key?(:id)
895
- @user_id = args[:user_id] if args.key?(:user_id)
896
- @course_id = args[:course_id] if args.key?(:course_id)
897
- @role = args[:role] if args.key?(:role)
898
- end
899
- end
900
-
901
- # Response when listing invitations.
902
- class ListInvitationsResponse
903
- include Google::Apis::Core::Hashable
904
-
905
- # Invitations that match the list request.
906
- # Corresponds to the JSON property `invitations`
907
- # @return [Array<Google::Apis::ClassroomV1::Invitation>]
908
- attr_accessor :invitations
1032
+ attr_accessor :section
909
1033
 
910
- # Token identifying the next page of results to return. If empty, no further
911
- # results are available.
912
- # Corresponds to the JSON property `nextPageToken`
1034
+ # Absolute link to this course in the Classroom web UI.
1035
+ # Read-only.
1036
+ # Corresponds to the JSON property `alternateLink`
913
1037
  # @return [String]
914
- attr_accessor :next_page_token
915
-
916
- def initialize(**args)
917
- update!(**args)
918
- end
1038
+ attr_accessor :alternate_link
919
1039
 
920
- # Update properties of this object
921
- def update!(**args)
922
- @invitations = args[:invitations] if args.key?(:invitations)
923
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
924
- end
925
- end
1040
+ # The email address of a Google group containing all teachers of the course.
1041
+ # This group does not accept email and can only be used for permissions.
1042
+ # Read-only.
1043
+ # Corresponds to the JSON property `teacherGroupEmail`
1044
+ # @return [String]
1045
+ attr_accessor :teacher_group_email
926
1046
 
927
- # Course work created by a teacher for students of the course.
928
- class CourseWork
929
- include Google::Apis::Core::Hashable
1047
+ # Whether or not guardian notifications are enabled for this course.
1048
+ # Read-only.
1049
+ # Corresponds to the JSON property `guardiansEnabled`
1050
+ # @return [Boolean]
1051
+ attr_accessor :guardians_enabled
1052
+ alias_method :guardians_enabled?, :guardians_enabled
930
1053
 
931
- # Identifier of the course. Read-only.
932
- # Corresponds to the JSON property `courseId`
1054
+ # The identifier of the owner of a course.
1055
+ # When specified as a parameter of a
1056
+ # create course request, this
1057
+ # field is required.
1058
+ # The identifier can be one of the following:
1059
+ # * the numeric identifier for the user
1060
+ # * the email address of the user
1061
+ # * the string literal `"me"`, indicating the requesting user
1062
+ # This must be set in a create request. Specifying this field in a course
1063
+ # update mask results in an `INVALID_ARGUMENT` error.
1064
+ # Corresponds to the JSON property `ownerId`
933
1065
  # @return [String]
934
- attr_accessor :course_id
1066
+ attr_accessor :owner_id
935
1067
 
936
- # Classroom-assigned identifier of this course work, unique per course. Read-
937
- # only.
938
- # Corresponds to the JSON property `id`
1068
+ # Optional heading for the description.
1069
+ # For example, "Welcome to 10th Grade Biology."
1070
+ # If set, this field must be a valid UTF-8 string and no longer than 3600
1071
+ # characters.
1072
+ # Corresponds to the JSON property `descriptionHeading`
939
1073
  # @return [String]
940
- attr_accessor :id
1074
+ attr_accessor :description_heading
941
1075
 
942
- # Title of this course work. The title must be a valid UTF-8 string containing
943
- # between 1 and 3000 characters.
944
- # Corresponds to the JSON property `title`
1076
+ # The email address of a Google group containing all members of the course.
1077
+ # This group does not accept email and can only be used for permissions.
1078
+ # Read-only.
1079
+ # Corresponds to the JSON property `courseGroupEmail`
945
1080
  # @return [String]
946
- attr_accessor :title
1081
+ attr_accessor :course_group_email
947
1082
 
948
- # Optional description of this course work. If set, the description must be a
949
- # valid UTF-8 string containing no more than 30,000 characters.
950
- # Corresponds to the JSON property `description`
1083
+ # State of the course.
1084
+ # If unspecified, the default state is `PROVISIONED`.
1085
+ # Corresponds to the JSON property `courseState`
951
1086
  # @return [String]
952
- attr_accessor :description
953
-
954
- # Additional materials. CourseWork must have no more than 20 material items.
955
- # Corresponds to the JSON property `materials`
956
- # @return [Array<Google::Apis::ClassroomV1::Material>]
957
- attr_accessor :materials
1087
+ attr_accessor :course_state
958
1088
 
959
- # Status of this course work. If unspecified, the default state is `DRAFT`.
960
- # Corresponds to the JSON property `state`
1089
+ # Optional room location.
1090
+ # For example, "301".
1091
+ # If set, this field must be a valid UTF-8 string and no longer than 650
1092
+ # characters.
1093
+ # Corresponds to the JSON property `room`
961
1094
  # @return [String]
962
- attr_accessor :state
1095
+ attr_accessor :room
963
1096
 
964
- # Absolute link to this course work in the Classroom web UI. This is only
965
- # populated if `state` is `PUBLISHED`. Read-only.
966
- # Corresponds to the JSON property `alternateLink`
1097
+ # Name of the course.
1098
+ # For example, "10th Grade Biology".
1099
+ # The name is required. It must be between 1 and 750 characters and a valid
1100
+ # UTF-8 string.
1101
+ # Corresponds to the JSON property `name`
967
1102
  # @return [String]
968
- attr_accessor :alternate_link
1103
+ attr_accessor :name
969
1104
 
970
- # Timestamp when this course work was created. Read-only.
1105
+ # Creation time of the course.
1106
+ # Specifying this field in a course update mask results in an error.
1107
+ # Read-only.
971
1108
  # Corresponds to the JSON property `creationTime`
972
1109
  # @return [String]
973
1110
  attr_accessor :creation_time
974
1111
 
975
- # Timestamp of the most recent change to this course work. Read-only.
976
- # Corresponds to the JSON property `updateTime`
977
- # @return [String]
978
- attr_accessor :update_time
979
-
980
- # Represents a whole calendar date, e.g. date of birth. The time of day and time
981
- # zone are either specified elsewhere or are not significant. The date is
982
- # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
983
- # year and month where the day is not significant, e.g. credit card expiration
984
- # date. The year may be 0 to represent a month and day independent of year, e.g.
985
- # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
986
- # Timestamp`.
987
- # Corresponds to the JSON property `dueDate`
988
- # @return [Google::Apis::ClassroomV1::Date]
989
- attr_accessor :due_date
990
-
991
- # Represents a time of day. The date and time zone are either not significant or
992
- # are specified elsewhere. An API may chose to allow leap seconds. Related types
993
- # are google.type.Date and `google.protobuf.Timestamp`.
994
- # Corresponds to the JSON property `dueTime`
995
- # @return [Google::Apis::ClassroomV1::TimeOfDay]
996
- attr_accessor :due_time
997
-
998
- # Maximum grade for this course work. If zero or unspecified, this assignment is
999
- # considered ungraded. This must be a non-negative integer value.
1000
- # Corresponds to the JSON property `maxPoints`
1001
- # @return [Float]
1002
- attr_accessor :max_points
1003
-
1004
- # Type of this course work. The type is set when the course work is created and
1005
- # cannot be changed.
1006
- # Corresponds to the JSON property `workType`
1007
- # @return [String]
1008
- attr_accessor :work_type
1009
-
1010
- # Whether this course work item is associated with the Developer Console project
1011
- # making the request. See google.classroom.Work.CreateCourseWork for more
1012
- # details. Read-only.
1013
- # Corresponds to the JSON property `associatedWithDeveloper`
1014
- # @return [Boolean]
1015
- attr_accessor :associated_with_developer
1016
- alias_method :associated_with_developer?, :associated_with_developer
1017
-
1018
- # Setting to determine when students are allowed to modify submissions. If
1019
- # unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
1020
- # Corresponds to the JSON property `submissionModificationMode`
1112
+ # Enrollment code to use when joining this course.
1113
+ # Specifying this field in a course update mask results in an error.
1114
+ # Read-only.
1115
+ # Corresponds to the JSON property `enrollmentCode`
1021
1116
  # @return [String]
1022
- attr_accessor :submission_modification_mode
1117
+ attr_accessor :enrollment_code
1023
1118
 
1024
- # Additional details for assignments.
1025
- # Corresponds to the JSON property `assignment`
1026
- # @return [Google::Apis::ClassroomV1::Assignment]
1027
- attr_accessor :assignment
1119
+ # Representation of a Google Drive folder.
1120
+ # Corresponds to the JSON property `teacherFolder`
1121
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
1122
+ attr_accessor :teacher_folder
1028
1123
 
1029
- # Additional details for multiple-choice questions.
1030
- # Corresponds to the JSON property `multipleChoiceQuestion`
1031
- # @return [Google::Apis::ClassroomV1::MultipleChoiceQuestion]
1032
- attr_accessor :multiple_choice_question
1124
+ # Sets of materials that appear on the "about" page of this course.
1125
+ # Read-only.
1126
+ # Corresponds to the JSON property `courseMaterialSets`
1127
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterialSet>]
1128
+ attr_accessor :course_material_sets
1033
1129
 
1034
1130
  def initialize(**args)
1035
1131
  update!(**args)
@@ -1037,114 +1133,71 @@ module Google
1037
1133
 
1038
1134
  # Update properties of this object
1039
1135
  def update!(**args)
1040
- @course_id = args[:course_id] if args.key?(:course_id)
1041
1136
  @id = args[:id] if args.key?(:id)
1042
- @title = args[:title] if args.key?(:title)
1043
1137
  @description = args[:description] if args.key?(:description)
1044
- @materials = args[:materials] if args.key?(:materials)
1045
- @state = args[:state] if args.key?(:state)
1138
+ @update_time = args[:update_time] if args.key?(:update_time)
1139
+ @section = args[:section] if args.key?(:section)
1046
1140
  @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1141
+ @teacher_group_email = args[:teacher_group_email] if args.key?(:teacher_group_email)
1142
+ @guardians_enabled = args[:guardians_enabled] if args.key?(:guardians_enabled)
1143
+ @owner_id = args[:owner_id] if args.key?(:owner_id)
1144
+ @description_heading = args[:description_heading] if args.key?(:description_heading)
1145
+ @course_group_email = args[:course_group_email] if args.key?(:course_group_email)
1146
+ @course_state = args[:course_state] if args.key?(:course_state)
1147
+ @room = args[:room] if args.key?(:room)
1148
+ @name = args[:name] if args.key?(:name)
1047
1149
  @creation_time = args[:creation_time] if args.key?(:creation_time)
1048
- @update_time = args[:update_time] if args.key?(:update_time)
1049
- @due_date = args[:due_date] if args.key?(:due_date)
1050
- @due_time = args[:due_time] if args.key?(:due_time)
1051
- @max_points = args[:max_points] if args.key?(:max_points)
1052
- @work_type = args[:work_type] if args.key?(:work_type)
1053
- @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
1054
- @submission_modification_mode = args[:submission_modification_mode] if args.key?(:submission_modification_mode)
1055
- @assignment = args[:assignment] if args.key?(:assignment)
1056
- @multiple_choice_question = args[:multiple_choice_question] if args.key?(:multiple_choice_question)
1150
+ @enrollment_code = args[:enrollment_code] if args.key?(:enrollment_code)
1151
+ @teacher_folder = args[:teacher_folder] if args.key?(:teacher_folder)
1152
+ @course_material_sets = args[:course_material_sets] if args.key?(:course_material_sets)
1057
1153
  end
1058
1154
  end
1059
1155
 
1060
- # Material attached to course work. When creating attachments, setting the `form`
1061
- # field is not supported.
1062
- class Material
1156
+ # Request to return a student submission.
1157
+ class ReturnStudentSubmissionRequest
1063
1158
  include Google::Apis::Core::Hashable
1064
1159
 
1065
- # Drive file that is used as material for course work.
1066
- # Corresponds to the JSON property `driveFile`
1067
- # @return [Google::Apis::ClassroomV1::SharedDriveFile]
1068
- attr_accessor :drive_file
1069
-
1070
- # YouTube video item.
1071
- # Corresponds to the JSON property `youtubeVideo`
1072
- # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1073
- attr_accessor :youtube_video
1074
-
1075
- # URL item.
1076
- # Corresponds to the JSON property `link`
1077
- # @return [Google::Apis::ClassroomV1::Link]
1078
- attr_accessor :link
1079
-
1080
- # Google Forms item.
1081
- # Corresponds to the JSON property `form`
1082
- # @return [Google::Apis::ClassroomV1::Form]
1083
- attr_accessor :form
1084
-
1085
1160
  def initialize(**args)
1086
1161
  update!(**args)
1087
1162
  end
1088
1163
 
1089
1164
  # Update properties of this object
1090
1165
  def update!(**args)
1091
- @drive_file = args[:drive_file] if args.key?(:drive_file)
1092
- @youtube_video = args[:youtube_video] if args.key?(:youtube_video)
1093
- @link = args[:link] if args.key?(:link)
1094
- @form = args[:form] if args.key?(:form)
1095
1166
  end
1096
1167
  end
1097
1168
 
1098
- # Drive file that is used as material for course work.
1099
- class SharedDriveFile
1169
+ # An invitation to become the guardian of a specified user, sent to a specified
1170
+ # email address.
1171
+ class GuardianInvitation
1100
1172
  include Google::Apis::Core::Hashable
1101
1173
 
1102
- # Representation of a Google Drive file.
1103
- # Corresponds to the JSON property `driveFile`
1104
- # @return [Google::Apis::ClassroomV1::DriveFile]
1105
- attr_accessor :drive_file
1106
-
1107
- # Mechanism by which students access the Drive item.
1108
- # Corresponds to the JSON property `shareMode`
1174
+ # The time that this invitation was created.
1175
+ # Read-only.
1176
+ # Corresponds to the JSON property `creationTime`
1109
1177
  # @return [String]
1110
- attr_accessor :share_mode
1111
-
1112
- def initialize(**args)
1113
- update!(**args)
1114
- end
1115
-
1116
- # Update properties of this object
1117
- def update!(**args)
1118
- @drive_file = args[:drive_file] if args.key?(:drive_file)
1119
- @share_mode = args[:share_mode] if args.key?(:share_mode)
1120
- end
1121
- end
1178
+ attr_accessor :creation_time
1122
1179
 
1123
- # Represents a whole calendar date, e.g. date of birth. The time of day and time
1124
- # zone are either specified elsewhere or are not significant. The date is
1125
- # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
1126
- # year and month where the day is not significant, e.g. credit card expiration
1127
- # date. The year may be 0 to represent a month and day independent of year, e.g.
1128
- # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
1129
- # Timestamp`.
1130
- class Date
1131
- include Google::Apis::Core::Hashable
1180
+ # Unique identifier for this invitation.
1181
+ # Read-only.
1182
+ # Corresponds to the JSON property `invitationId`
1183
+ # @return [String]
1184
+ attr_accessor :invitation_id
1132
1185
 
1133
- # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
1134
- # Corresponds to the JSON property `year`
1135
- # @return [Fixnum]
1136
- attr_accessor :year
1186
+ # The state that this invitation is in.
1187
+ # Corresponds to the JSON property `state`
1188
+ # @return [String]
1189
+ attr_accessor :state
1137
1190
 
1138
- # Month of year. Must be from 1 to 12.
1139
- # Corresponds to the JSON property `month`
1140
- # @return [Fixnum]
1141
- attr_accessor :month
1191
+ # Email address that the invitation was sent to.
1192
+ # This field is only visible to domain administrators.
1193
+ # Corresponds to the JSON property `invitedEmailAddress`
1194
+ # @return [String]
1195
+ attr_accessor :invited_email_address
1142
1196
 
1143
- # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if
1144
- # specifying a year/month where the day is not significant.
1145
- # Corresponds to the JSON property `day`
1146
- # @return [Fixnum]
1147
- attr_accessor :day
1197
+ # ID of the student (in standard format)
1198
+ # Corresponds to the JSON property `studentId`
1199
+ # @return [String]
1200
+ attr_accessor :student_id
1148
1201
 
1149
1202
  def initialize(**args)
1150
1203
  update!(**args)
@@ -1152,61 +1205,53 @@ module Google
1152
1205
 
1153
1206
  # Update properties of this object
1154
1207
  def update!(**args)
1155
- @year = args[:year] if args.key?(:year)
1156
- @month = args[:month] if args.key?(:month)
1157
- @day = args[:day] if args.key?(:day)
1208
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1209
+ @invitation_id = args[:invitation_id] if args.key?(:invitation_id)
1210
+ @state = args[:state] if args.key?(:state)
1211
+ @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
1212
+ @student_id = args[:student_id] if args.key?(:student_id)
1158
1213
  end
1159
1214
  end
1160
1215
 
1161
- # Represents a time of day. The date and time zone are either not significant or
1162
- # are specified elsewhere. An API may chose to allow leap seconds. Related types
1163
- # are google.type.Date and `google.protobuf.Timestamp`.
1164
- class TimeOfDay
1216
+ # Request to turn in a student submission.
1217
+ class TurnInStudentSubmissionRequest
1165
1218
  include Google::Apis::Core::Hashable
1166
1219
 
1167
- # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
1168
- # allow the value "24:00:00" for scenarios like business closing time.
1169
- # Corresponds to the JSON property `hours`
1170
- # @return [Fixnum]
1171
- attr_accessor :hours
1172
-
1173
- # Minutes of hour of day. Must be from 0 to 59.
1174
- # Corresponds to the JSON property `minutes`
1175
- # @return [Fixnum]
1176
- attr_accessor :minutes
1177
-
1178
- # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1179
- # allow the value 60 if it allows leap-seconds.
1180
- # Corresponds to the JSON property `seconds`
1181
- # @return [Fixnum]
1182
- attr_accessor :seconds
1183
-
1184
- # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1185
- # Corresponds to the JSON property `nanos`
1186
- # @return [Fixnum]
1187
- attr_accessor :nanos
1188
-
1189
1220
  def initialize(**args)
1190
1221
  update!(**args)
1191
1222
  end
1192
1223
 
1193
1224
  # Update properties of this object
1194
1225
  def update!(**args)
1195
- @hours = args[:hours] if args.key?(:hours)
1196
- @minutes = args[:minutes] if args.key?(:minutes)
1197
- @seconds = args[:seconds] if args.key?(:seconds)
1198
- @nanos = args[:nanos] if args.key?(:nanos)
1199
1226
  end
1200
1227
  end
1201
1228
 
1202
- # Additional details for assignments.
1203
- class Assignment
1229
+ # YouTube video item.
1230
+ class YouTubeVideo
1204
1231
  include Google::Apis::Core::Hashable
1205
1232
 
1206
- # Representation of a Google Drive folder.
1207
- # Corresponds to the JSON property `studentWorkFolder`
1208
- # @return [Google::Apis::ClassroomV1::DriveFolder]
1209
- attr_accessor :student_work_folder
1233
+ # URL of a thumbnail image of the YouTube video.
1234
+ # Read-only.
1235
+ # Corresponds to the JSON property `thumbnailUrl`
1236
+ # @return [String]
1237
+ attr_accessor :thumbnail_url
1238
+
1239
+ # Title of the YouTube video.
1240
+ # Read-only.
1241
+ # Corresponds to the JSON property `title`
1242
+ # @return [String]
1243
+ attr_accessor :title
1244
+
1245
+ # URL that can be used to view the YouTube video.
1246
+ # Read-only.
1247
+ # Corresponds to the JSON property `alternateLink`
1248
+ # @return [String]
1249
+ attr_accessor :alternate_link
1250
+
1251
+ # YouTube API resource ID.
1252
+ # Corresponds to the JSON property `id`
1253
+ # @return [String]
1254
+ attr_accessor :id
1210
1255
 
1211
1256
  def initialize(**args)
1212
1257
  update!(**args)
@@ -1214,26 +1259,29 @@ module Google
1214
1259
 
1215
1260
  # Update properties of this object
1216
1261
  def update!(**args)
1217
- @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
1262
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
1263
+ @title = args[:title] if args.key?(:title)
1264
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1265
+ @id = args[:id] if args.key?(:id)
1218
1266
  end
1219
1267
  end
1220
1268
 
1221
- # Additional details for multiple-choice questions.
1222
- class MultipleChoiceQuestion
1269
+ # A generic empty message that you can re-use to avoid defining duplicated
1270
+ # empty messages in your APIs. A typical example is to use it as the request
1271
+ # or the response type of an API method. For instance:
1272
+ # service Foo `
1273
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
1274
+ # `
1275
+ # The JSON representation for `Empty` is empty JSON object ````.
1276
+ class Empty
1223
1277
  include Google::Apis::Core::Hashable
1224
1278
 
1225
- # Possible choices.
1226
- # Corresponds to the JSON property `choices`
1227
- # @return [Array<String>]
1228
- attr_accessor :choices
1229
-
1230
1279
  def initialize(**args)
1231
1280
  update!(**args)
1232
1281
  end
1233
1282
 
1234
1283
  # Update properties of this object
1235
1284
  def update!(**args)
1236
- @choices = args[:choices] if args.key?(:choices)
1237
1285
  end
1238
1286
  end
1239
1287
 
@@ -1241,123 +1289,41 @@ module Google
1241
1289
  class ListCourseWorkResponse
1242
1290
  include Google::Apis::Core::Hashable
1243
1291
 
1244
- # Course work items that match the request.
1245
- # Corresponds to the JSON property `courseWork`
1246
- # @return [Array<Google::Apis::ClassroomV1::CourseWork>]
1247
- attr_accessor :course_work
1248
-
1249
1292
  # Token identifying the next page of results to return. If empty, no further
1250
1293
  # results are available.
1251
1294
  # Corresponds to the JSON property `nextPageToken`
1252
1295
  # @return [String]
1253
1296
  attr_accessor :next_page_token
1254
1297
 
1298
+ # Course work items that match the request.
1299
+ # Corresponds to the JSON property `courseWork`
1300
+ # @return [Array<Google::Apis::ClassroomV1::CourseWork>]
1301
+ attr_accessor :course_work
1302
+
1255
1303
  def initialize(**args)
1256
1304
  update!(**args)
1257
1305
  end
1258
1306
 
1259
1307
  # Update properties of this object
1260
1308
  def update!(**args)
1261
- @course_work = args[:course_work] if args.key?(:course_work)
1262
1309
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1263
- end
1264
- end
1265
-
1266
- # Student submission for course work. StudentSubmission items are generated when
1267
- # a CourseWork item is created. StudentSubmissions that have never been accessed
1268
- # (i.e. with `state` = NEW) may not have a creation time or update time.
1269
- class StudentSubmission
1270
- include Google::Apis::Core::Hashable
1271
-
1272
- # Identifier of the course. Read-only.
1273
- # Corresponds to the JSON property `courseId`
1274
- # @return [String]
1275
- attr_accessor :course_id
1276
-
1277
- # Identifier for the course work this corresponds to. Read-only.
1278
- # Corresponds to the JSON property `courseWorkId`
1279
- # @return [String]
1280
- attr_accessor :course_work_id
1281
-
1282
- # Classroom-assigned Identifier for the student submission. This is unique among
1283
- # submissions for the relevant course work. Read-only.
1284
- # Corresponds to the JSON property `id`
1285
- # @return [String]
1286
- attr_accessor :id
1287
-
1288
- # Identifier for the student that owns this submission. Read-only.
1289
- # Corresponds to the JSON property `userId`
1290
- # @return [String]
1291
- attr_accessor :user_id
1292
-
1293
- # Creation time of this submission. This may be unset if the student has not
1294
- # accessed this item. Read-only.
1295
- # Corresponds to the JSON property `creationTime`
1296
- # @return [String]
1297
- attr_accessor :creation_time
1298
-
1299
- # Last update time of this submission. This may be unset if the student has not
1300
- # accessed this item. Read-only.
1301
- # Corresponds to the JSON property `updateTime`
1302
- # @return [String]
1303
- attr_accessor :update_time
1304
-
1305
- # State of this submission. Read-only.
1306
- # Corresponds to the JSON property `state`
1307
- # @return [String]
1308
- attr_accessor :state
1309
-
1310
- # Whether this submission is late. Read-only.
1311
- # Corresponds to the JSON property `late`
1312
- # @return [Boolean]
1313
- attr_accessor :late
1314
- alias_method :late?, :late
1315
-
1316
- # Optional pending grade. If unset, no grade was set. This must be a non-
1317
- # negative integer value. This is only visible to and modifiable by course
1318
- # teachers.
1319
- # Corresponds to the JSON property `draftGrade`
1320
- # @return [Float]
1321
- attr_accessor :draft_grade
1322
-
1323
- # Optional grade. If unset, no grade was set. This must be a non-negative
1324
- # integer value. This may be modified only by course teachers.
1325
- # Corresponds to the JSON property `assignedGrade`
1326
- # @return [Float]
1327
- attr_accessor :assigned_grade
1328
-
1329
- # Absolute link to the submission in the Classroom web UI. Read-only.
1330
- # Corresponds to the JSON property `alternateLink`
1331
- # @return [String]
1332
- attr_accessor :alternate_link
1333
-
1334
- # Type of course work this submission is for. Read-only.
1335
- # Corresponds to the JSON property `courseWorkType`
1336
- # @return [String]
1337
- attr_accessor :course_work_type
1338
-
1339
- # Whether this student submission is associated with the Developer Console
1340
- # project making the request. See google.classroom.Work.CreateCourseWork for
1341
- # more details. Read-only.
1342
- # Corresponds to the JSON property `associatedWithDeveloper`
1343
- # @return [Boolean]
1344
- attr_accessor :associated_with_developer
1345
- alias_method :associated_with_developer?, :associated_with_developer
1310
+ @course_work = args[:course_work] if args.key?(:course_work)
1311
+ end
1312
+ end
1346
1313
 
1347
- # Student work for an assignment.
1348
- # Corresponds to the JSON property `assignmentSubmission`
1349
- # @return [Google::Apis::ClassroomV1::AssignmentSubmission]
1350
- attr_accessor :assignment_submission
1314
+ # Drive file that is used as material for course work.
1315
+ class SharedDriveFile
1316
+ include Google::Apis::Core::Hashable
1351
1317
 
1352
- # Student work for a short answer question.
1353
- # Corresponds to the JSON property `shortAnswerSubmission`
1354
- # @return [Google::Apis::ClassroomV1::ShortAnswerSubmission]
1355
- attr_accessor :short_answer_submission
1318
+ # Representation of a Google Drive file.
1319
+ # Corresponds to the JSON property `driveFile`
1320
+ # @return [Google::Apis::ClassroomV1::DriveFile]
1321
+ attr_accessor :drive_file
1356
1322
 
1357
- # Student work for a multiple-choice question.
1358
- # Corresponds to the JSON property `multipleChoiceSubmission`
1359
- # @return [Google::Apis::ClassroomV1::MultipleChoiceSubmission]
1360
- attr_accessor :multiple_choice_submission
1323
+ # Mechanism by which students access the Drive item.
1324
+ # Corresponds to the JSON property `shareMode`
1325
+ # @return [String]
1326
+ attr_accessor :share_mode
1361
1327
 
1362
1328
  def initialize(**args)
1363
1329
  update!(**args)
@@ -1365,37 +1331,19 @@ module Google
1365
1331
 
1366
1332
  # Update properties of this object
1367
1333
  def update!(**args)
1368
- @course_id = args[:course_id] if args.key?(:course_id)
1369
- @course_work_id = args[:course_work_id] if args.key?(:course_work_id)
1370
- @id = args[:id] if args.key?(:id)
1371
- @user_id = args[:user_id] if args.key?(:user_id)
1372
- @creation_time = args[:creation_time] if args.key?(:creation_time)
1373
- @update_time = args[:update_time] if args.key?(:update_time)
1374
- @state = args[:state] if args.key?(:state)
1375
- @late = args[:late] if args.key?(:late)
1376
- @draft_grade = args[:draft_grade] if args.key?(:draft_grade)
1377
- @assigned_grade = args[:assigned_grade] if args.key?(:assigned_grade)
1378
- @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1379
- @course_work_type = args[:course_work_type] if args.key?(:course_work_type)
1380
- @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
1381
- @assignment_submission = args[:assignment_submission] if args.key?(:assignment_submission)
1382
- @short_answer_submission = args[:short_answer_submission] if args.key?(:short_answer_submission)
1383
- @multiple_choice_submission = args[:multiple_choice_submission] if args.key?(:multiple_choice_submission)
1334
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
1335
+ @share_mode = args[:share_mode] if args.key?(:share_mode)
1384
1336
  end
1385
1337
  end
1386
1338
 
1387
- # Student work for an assignment.
1388
- class AssignmentSubmission
1339
+ # Global user permission description.
1340
+ class GlobalPermission
1389
1341
  include Google::Apis::Core::Hashable
1390
1342
 
1391
- # Attachments added by the student. Drive files that correspond to materials
1392
- # with a share mode of STUDENT_COPY may not exist yet if the student has not
1393
- # accessed the assignment in Classroom. Some attachment metadata is only
1394
- # populated if the requesting user has permission to access it. Identifier and
1395
- # alternate_link fields are always available, but others (e.g. title) may not be.
1396
- # Corresponds to the JSON property `attachments`
1397
- # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1398
- attr_accessor :attachments
1343
+ # Permission value.
1344
+ # Corresponds to the JSON property `permission`
1345
+ # @return [String]
1346
+ attr_accessor :permission
1399
1347
 
1400
1348
  def initialize(**args)
1401
1349
  update!(**args)
@@ -1403,30 +1351,30 @@ module Google
1403
1351
 
1404
1352
  # Update properties of this object
1405
1353
  def update!(**args)
1406
- @attachments = args[:attachments] if args.key?(:attachments)
1354
+ @permission = args[:permission] if args.key?(:permission)
1407
1355
  end
1408
1356
  end
1409
1357
 
1410
- # Attachment added to student assignment work. When creating attachments,
1411
- # setting the `form` field is not supported.
1412
- class Attachment
1358
+ # Material attached to course work.
1359
+ # When creating attachments, setting the `form` field is not supported.
1360
+ class Material
1413
1361
  include Google::Apis::Core::Hashable
1414
1362
 
1415
- # Representation of a Google Drive file.
1363
+ # Drive file that is used as material for course work.
1416
1364
  # Corresponds to the JSON property `driveFile`
1417
- # @return [Google::Apis::ClassroomV1::DriveFile]
1365
+ # @return [Google::Apis::ClassroomV1::SharedDriveFile]
1418
1366
  attr_accessor :drive_file
1419
1367
 
1420
- # YouTube video item.
1421
- # Corresponds to the JSON property `youTubeVideo`
1422
- # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1423
- attr_accessor :you_tube_video
1424
-
1425
1368
  # URL item.
1426
1369
  # Corresponds to the JSON property `link`
1427
1370
  # @return [Google::Apis::ClassroomV1::Link]
1428
1371
  attr_accessor :link
1429
1372
 
1373
+ # YouTube video item.
1374
+ # Corresponds to the JSON property `youtubeVideo`
1375
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1376
+ attr_accessor :youtube_video
1377
+
1430
1378
  # Google Forms item.
1431
1379
  # Corresponds to the JSON property `form`
1432
1380
  # @return [Google::Apis::ClassroomV1::Form]
@@ -1439,20 +1387,26 @@ module Google
1439
1387
  # Update properties of this object
1440
1388
  def update!(**args)
1441
1389
  @drive_file = args[:drive_file] if args.key?(:drive_file)
1442
- @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
1443
1390
  @link = args[:link] if args.key?(:link)
1391
+ @youtube_video = args[:youtube_video] if args.key?(:youtube_video)
1444
1392
  @form = args[:form] if args.key?(:form)
1445
1393
  end
1446
1394
  end
1447
1395
 
1448
- # Student work for a short answer question.
1449
- class ShortAnswerSubmission
1396
+ # Student work for an assignment.
1397
+ class AssignmentSubmission
1450
1398
  include Google::Apis::Core::Hashable
1451
1399
 
1452
- # Student response to a short-answer question.
1453
- # Corresponds to the JSON property `answer`
1454
- # @return [String]
1455
- attr_accessor :answer
1400
+ # Attachments added by the student.
1401
+ # Drive files that correspond to materials with a share mode of
1402
+ # STUDENT_COPY may not exist yet if the student has not accessed the
1403
+ # assignment in Classroom.
1404
+ # Some attachment metadata is only populated if the requesting user has
1405
+ # permission to access it. Identifier and alternate_link fields are always
1406
+ # available, but others (e.g. title) may not be.
1407
+ # Corresponds to the JSON property `attachments`
1408
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1409
+ attr_accessor :attachments
1456
1410
 
1457
1411
  def initialize(**args)
1458
1412
  update!(**args)
@@ -1460,18 +1414,36 @@ module Google
1460
1414
 
1461
1415
  # Update properties of this object
1462
1416
  def update!(**args)
1463
- @answer = args[:answer] if args.key?(:answer)
1417
+ @attachments = args[:attachments] if args.key?(:attachments)
1464
1418
  end
1465
1419
  end
1466
1420
 
1467
- # Student work for a multiple-choice question.
1468
- class MultipleChoiceSubmission
1421
+ # Represents a whole calendar date, e.g. date of birth. The time of day and
1422
+ # time zone are either specified elsewhere or are not significant. The date
1423
+ # is relative to the Proleptic Gregorian Calendar. The day may be 0 to
1424
+ # represent a year and month where the day is not significant, e.g. credit card
1425
+ # expiration date. The year may be 0 to represent a month and day independent
1426
+ # of year, e.g. anniversary date. Related types are google.type.TimeOfDay
1427
+ # and `google.protobuf.Timestamp`.
1428
+ class Date
1469
1429
  include Google::Apis::Core::Hashable
1470
1430
 
1471
- # Student's select choice.
1472
- # Corresponds to the JSON property `answer`
1473
- # @return [String]
1474
- attr_accessor :answer
1431
+ # Month of year. Must be from 1 to 12.
1432
+ # Corresponds to the JSON property `month`
1433
+ # @return [Fixnum]
1434
+ attr_accessor :month
1435
+
1436
+ # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
1437
+ # a year.
1438
+ # Corresponds to the JSON property `year`
1439
+ # @return [Fixnum]
1440
+ attr_accessor :year
1441
+
1442
+ # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
1443
+ # if specifying a year/month where the day is not significant.
1444
+ # Corresponds to the JSON property `day`
1445
+ # @return [Fixnum]
1446
+ attr_accessor :day
1475
1447
 
1476
1448
  def initialize(**args)
1477
1449
  update!(**args)
@@ -1479,18 +1451,34 @@ module Google
1479
1451
 
1480
1452
  # Update properties of this object
1481
1453
  def update!(**args)
1482
- @answer = args[:answer] if args.key?(:answer)
1454
+ @month = args[:month] if args.key?(:month)
1455
+ @year = args[:year] if args.key?(:year)
1456
+ @day = args[:day] if args.key?(:day)
1483
1457
  end
1484
1458
  end
1485
1459
 
1486
- # Response when listing student submissions.
1487
- class ListStudentSubmissionsResponse
1460
+ # Additional details for assignments.
1461
+ class Assignment
1488
1462
  include Google::Apis::Core::Hashable
1489
1463
 
1490
- # Student work that matches the request.
1491
- # Corresponds to the JSON property `studentSubmissions`
1492
- # @return [Array<Google::Apis::ClassroomV1::StudentSubmission>]
1493
- attr_accessor :student_submissions
1464
+ # Representation of a Google Drive folder.
1465
+ # Corresponds to the JSON property `studentWorkFolder`
1466
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
1467
+ attr_accessor :student_work_folder
1468
+
1469
+ def initialize(**args)
1470
+ update!(**args)
1471
+ end
1472
+
1473
+ # Update properties of this object
1474
+ def update!(**args)
1475
+ @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
1476
+ end
1477
+ end
1478
+
1479
+ # Response when listing courses.
1480
+ class ListCoursesResponse
1481
+ include Google::Apis::Core::Hashable
1494
1482
 
1495
1483
  # Token identifying the next page of results to return. If empty, no further
1496
1484
  # results are available.
@@ -1498,65 +1486,167 @@ module Google
1498
1486
  # @return [String]
1499
1487
  attr_accessor :next_page_token
1500
1488
 
1489
+ # Courses that match the list request.
1490
+ # Corresponds to the JSON property `courses`
1491
+ # @return [Array<Google::Apis::ClassroomV1::Course>]
1492
+ attr_accessor :courses
1493
+
1501
1494
  def initialize(**args)
1502
1495
  update!(**args)
1503
1496
  end
1504
1497
 
1505
1498
  # Update properties of this object
1506
1499
  def update!(**args)
1507
- @student_submissions = args[:student_submissions] if args.key?(:student_submissions)
1508
1500
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1501
+ @courses = args[:courses] if args.key?(:courses)
1509
1502
  end
1510
1503
  end
1511
1504
 
1512
- # Request to turn in a student submission.
1513
- class TurnInStudentSubmissionRequest
1505
+ # An invitation to join a course.
1506
+ class Invitation
1514
1507
  include Google::Apis::Core::Hashable
1515
1508
 
1509
+ # Identifier of the course to invite the user to.
1510
+ # Corresponds to the JSON property `courseId`
1511
+ # @return [String]
1512
+ attr_accessor :course_id
1513
+
1514
+ # Role to invite the user to have.
1515
+ # Must not be `COURSE_ROLE_UNSPECIFIED`.
1516
+ # Corresponds to the JSON property `role`
1517
+ # @return [String]
1518
+ attr_accessor :role
1519
+
1520
+ # Identifier of the invited user.
1521
+ # When specified as a parameter of a request, this identifier can be set to
1522
+ # one of the following:
1523
+ # * the numeric identifier for the user
1524
+ # * the email address of the user
1525
+ # * the string literal `"me"`, indicating the requesting user
1526
+ # Corresponds to the JSON property `userId`
1527
+ # @return [String]
1528
+ attr_accessor :user_id
1529
+
1530
+ # Identifier assigned by Classroom.
1531
+ # Read-only.
1532
+ # Corresponds to the JSON property `id`
1533
+ # @return [String]
1534
+ attr_accessor :id
1535
+
1516
1536
  def initialize(**args)
1517
1537
  update!(**args)
1518
1538
  end
1519
1539
 
1520
1540
  # Update properties of this object
1521
1541
  def update!(**args)
1542
+ @course_id = args[:course_id] if args.key?(:course_id)
1543
+ @role = args[:role] if args.key?(:role)
1544
+ @user_id = args[:user_id] if args.key?(:user_id)
1545
+ @id = args[:id] if args.key?(:id)
1522
1546
  end
1523
1547
  end
1524
1548
 
1525
- # Request to reclaim a student submission.
1526
- class ReclaimStudentSubmissionRequest
1549
+ # Response when listing student submissions.
1550
+ class ListStudentSubmissionsResponse
1527
1551
  include Google::Apis::Core::Hashable
1528
1552
 
1553
+ # Token identifying the next page of results to return. If empty, no further
1554
+ # results are available.
1555
+ # Corresponds to the JSON property `nextPageToken`
1556
+ # @return [String]
1557
+ attr_accessor :next_page_token
1558
+
1559
+ # Student work that matches the request.
1560
+ # Corresponds to the JSON property `studentSubmissions`
1561
+ # @return [Array<Google::Apis::ClassroomV1::StudentSubmission>]
1562
+ attr_accessor :student_submissions
1563
+
1529
1564
  def initialize(**args)
1530
1565
  update!(**args)
1531
1566
  end
1532
1567
 
1533
1568
  # Update properties of this object
1534
1569
  def update!(**args)
1570
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1571
+ @student_submissions = args[:student_submissions] if args.key?(:student_submissions)
1535
1572
  end
1536
1573
  end
1537
1574
 
1538
- # Request to return a student submission.
1539
- class ReturnStudentSubmissionRequest
1575
+ # Details of the user's name.
1576
+ class Name
1577
+ include Google::Apis::Core::Hashable
1578
+
1579
+ # The user's first name.
1580
+ # Read-only.
1581
+ # Corresponds to the JSON property `givenName`
1582
+ # @return [String]
1583
+ attr_accessor :given_name
1584
+
1585
+ # The user's last name.
1586
+ # Read-only.
1587
+ # Corresponds to the JSON property `familyName`
1588
+ # @return [String]
1589
+ attr_accessor :family_name
1590
+
1591
+ # The user's full name formed by concatenating the first and last name
1592
+ # values.
1593
+ # Read-only.
1594
+ # Corresponds to the JSON property `fullName`
1595
+ # @return [String]
1596
+ attr_accessor :full_name
1597
+
1598
+ def initialize(**args)
1599
+ update!(**args)
1600
+ end
1601
+
1602
+ # Update properties of this object
1603
+ def update!(**args)
1604
+ @given_name = args[:given_name] if args.key?(:given_name)
1605
+ @family_name = args[:family_name] if args.key?(:family_name)
1606
+ @full_name = args[:full_name] if args.key?(:full_name)
1607
+ end
1608
+ end
1609
+
1610
+ # Response when listing invitations.
1611
+ class ListInvitationsResponse
1540
1612
  include Google::Apis::Core::Hashable
1541
1613
 
1614
+ # Token identifying the next page of results to return. If empty, no further
1615
+ # results are available.
1616
+ # Corresponds to the JSON property `nextPageToken`
1617
+ # @return [String]
1618
+ attr_accessor :next_page_token
1619
+
1620
+ # Invitations that match the list request.
1621
+ # Corresponds to the JSON property `invitations`
1622
+ # @return [Array<Google::Apis::ClassroomV1::Invitation>]
1623
+ attr_accessor :invitations
1624
+
1542
1625
  def initialize(**args)
1543
1626
  update!(**args)
1544
1627
  end
1545
1628
 
1546
1629
  # Update properties of this object
1547
1630
  def update!(**args)
1631
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1632
+ @invitations = args[:invitations] if args.key?(:invitations)
1548
1633
  end
1549
1634
  end
1550
1635
 
1551
- # Request to modify the attachments of a student submission.
1552
- class ModifyAttachmentsRequest
1636
+ # Response when listing students.
1637
+ class ListStudentsResponse
1553
1638
  include Google::Apis::Core::Hashable
1554
1639
 
1555
- # Attachments to add. A student submission may not have more than 20 attachments.
1556
- # Form attachments are not supported.
1557
- # Corresponds to the JSON property `addAttachments`
1558
- # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1559
- attr_accessor :add_attachments
1640
+ # Token identifying the next page of results to return. If empty, no further
1641
+ # results are available.
1642
+ # Corresponds to the JSON property `nextPageToken`
1643
+ # @return [String]
1644
+ attr_accessor :next_page_token
1645
+
1646
+ # Students who match the list request.
1647
+ # Corresponds to the JSON property `students`
1648
+ # @return [Array<Google::Apis::ClassroomV1::Student>]
1649
+ attr_accessor :students
1560
1650
 
1561
1651
  def initialize(**args)
1562
1652
  update!(**args)
@@ -1564,7 +1654,8 @@ module Google
1564
1654
 
1565
1655
  # Update properties of this object
1566
1656
  def update!(**args)
1567
- @add_attachments = args[:add_attachments] if args.key?(:add_attachments)
1657
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1658
+ @students = args[:students] if args.key?(:students)
1568
1659
  end
1569
1660
  end
1570
1661
  end