google-apis-classroom_v1 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google-apis-classroom_v1.rb +15 -0
- data/lib/google/apis/classroom_v1.rb +99 -0
- data/lib/google/apis/classroom_v1/classes.rb +2282 -0
- data/lib/google/apis/classroom_v1/gem_version.rb +28 -0
- data/lib/google/apis/classroom_v1/representations.rb +1033 -0
- data/lib/google/apis/classroom_v1/service.rb +2798 -0
- metadata +76 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c990739af570faee39c8774779bab5925500a7a2ad319ddf67d39e8b44ad7839
|
4
|
+
data.tar.gz: cfc3c72b0b6bd181c02423c5bf9ac798876f4436f70b9cec788eea82e8c1deef
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f5d7bf57e08facba84b8fa609737232cac06c0d3b0422c2e027c4a84a499f7c0a5b3e984bbf30933cbfb1d1808dfa96eec9ed502197c2606511e4e2034912d7a
|
7
|
+
data.tar.gz: 98108e043515322ea3c3e492975fe7516fc03efa95c1b477c5c0eae46e9f7f6a6535a8dd8d1bad812d0f22175023660b47ef8928bbb804dc35ef343c5526d1cc
|
data/.yardopts
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
--hide-void-return
|
2
|
+
--no-private
|
3
|
+
--verbose
|
4
|
+
--title=google-apis-classroom_v1
|
5
|
+
--markup-provider=redcarpet
|
6
|
+
--markup=markdown
|
7
|
+
--main OVERVIEW.md
|
8
|
+
lib/google/apis/classroom_v1/*.rb
|
9
|
+
lib/google/apis/classroom_v1.rb
|
10
|
+
-
|
11
|
+
OVERVIEW.md
|
12
|
+
CHANGELOG.md
|
13
|
+
LICENSE.md
|
data/CHANGELOG.md
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
|
2
|
+
Apache License
|
3
|
+
Version 2.0, January 2004
|
4
|
+
http://www.apache.org/licenses/
|
5
|
+
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7
|
+
|
8
|
+
1. Definitions.
|
9
|
+
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
12
|
+
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
14
|
+
the copyright owner that is granting the License.
|
15
|
+
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
17
|
+
other entities that control, are controlled by, or are under common
|
18
|
+
control with that entity. For the purposes of this definition,
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
20
|
+
direction or management of such entity, whether by contract or
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
23
|
+
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
25
|
+
exercising permissions granted by this License.
|
26
|
+
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
28
|
+
including but not limited to software source code, documentation
|
29
|
+
source, and configuration files.
|
30
|
+
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
32
|
+
transformation or translation of a Source form, including but
|
33
|
+
not limited to compiled object code, generated documentation,
|
34
|
+
and conversions to other media types.
|
35
|
+
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
37
|
+
Object form, made available under the License, as indicated by a
|
38
|
+
copyright notice that is included in or attached to the work
|
39
|
+
(an example is provided in the Appendix below).
|
40
|
+
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
47
|
+
the Work and Derivative Works thereof.
|
48
|
+
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
50
|
+
the original version of the Work and any modifications or additions
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
62
|
+
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
65
|
+
subsequently incorporated within the Work.
|
66
|
+
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
73
|
+
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79
|
+
where such license applies only to those patent claims licensable
|
80
|
+
by such Contributor that are necessarily infringed by their
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
83
|
+
institute patent litigation against any entity (including a
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
86
|
+
or contributory patent infringement, then any patent licenses
|
87
|
+
granted to You under this License for that Work shall terminate
|
88
|
+
as of the date such litigation is filed.
|
89
|
+
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
92
|
+
modifications, and in Source or Object form, provided that You
|
93
|
+
meet the following conditions:
|
94
|
+
|
95
|
+
(a) You must give any other recipients of the Work or
|
96
|
+
Derivative Works a copy of this License; and
|
97
|
+
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
99
|
+
stating that You changed the files; and
|
100
|
+
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
103
|
+
attribution notices from the Source form of the Work,
|
104
|
+
excluding those notices that do not pertain to any part of
|
105
|
+
the Derivative Works; and
|
106
|
+
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
109
|
+
include a readable copy of the attribution notices contained
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
112
|
+
of the following places: within a NOTICE text file distributed
|
113
|
+
as part of the Derivative Works; within the Source form or
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
115
|
+
within a display generated by the Derivative Works, if and
|
116
|
+
wherever such third-party notices normally appear. The contents
|
117
|
+
of the NOTICE file are for informational purposes only and
|
118
|
+
do not modify the License. You may add Your own attribution
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
121
|
+
that such additional attribution notices cannot be construed
|
122
|
+
as modifying the License.
|
123
|
+
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
125
|
+
may provide additional or different license terms and conditions
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
129
|
+
the conditions stated in this License.
|
130
|
+
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
134
|
+
this License, without any additional terms or conditions.
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
136
|
+
the terms of any separate license agreement you may have executed
|
137
|
+
with Licensor regarding such Contributions.
|
138
|
+
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
141
|
+
except as required for reasonable and customary use in describing the
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
143
|
+
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
153
|
+
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
159
|
+
incidental, or consequential damages of any character arising as a
|
160
|
+
result of this License or out of the use or inability to use the
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
163
|
+
other commercial damages or losses), even if such Contributor
|
164
|
+
has been advised of the possibility of such damages.
|
165
|
+
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
169
|
+
or other liability obligations and/or rights consistent with this
|
170
|
+
License. However, in accepting such obligations, You may act only
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
175
|
+
of your accepting any such warranty or additional liability.
|
176
|
+
|
177
|
+
END OF TERMS AND CONDITIONS
|
178
|
+
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
180
|
+
|
181
|
+
To apply the Apache License to your work, attach the following
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
183
|
+
replaced with your own identifying information. (Don't include
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
185
|
+
comment syntax for the file format. We also recommend that a
|
186
|
+
file or class name and description of purpose be included on the
|
187
|
+
same "printed page" as the copyright notice for easier
|
188
|
+
identification within third-party archives.
|
189
|
+
|
190
|
+
Copyright [yyyy] [name of copyright owner]
|
191
|
+
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
193
|
+
you may not use this file except in compliance with the License.
|
194
|
+
You may obtain a copy of the License at
|
195
|
+
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
197
|
+
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201
|
+
See the License for the specific language governing permissions and
|
202
|
+
limitations under the License.
|
data/OVERVIEW.md
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
# Simple REST client for version V1 of the Google Classroom API
|
2
|
+
|
3
|
+
This is a simple client library for version V1 of the Google Classroom API. It provides:
|
4
|
+
|
5
|
+
* A client object that connects to the HTTP/JSON REST endpoint for the service.
|
6
|
+
* Ruby objects for data structures related to the service.
|
7
|
+
* Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
|
8
|
+
* Control of retry, pagination, and timeouts.
|
9
|
+
|
10
|
+
Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
|
11
|
+
|
12
|
+
## Getting started
|
13
|
+
|
14
|
+
### Before you begin
|
15
|
+
|
16
|
+
There are a few setup steps you need to complete before you can use this library:
|
17
|
+
|
18
|
+
1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
|
19
|
+
2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
|
20
|
+
3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/classroom.googleapis.com) in the console.
|
21
|
+
|
22
|
+
### Installation
|
23
|
+
|
24
|
+
Add this line to your application's Gemfile:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
gem 'google-apis-classroom_v1', '~> 0.1'
|
28
|
+
```
|
29
|
+
|
30
|
+
And then execute:
|
31
|
+
|
32
|
+
```
|
33
|
+
$ bundle
|
34
|
+
```
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
```
|
39
|
+
$ gem install google-apis-classroom_v1
|
40
|
+
```
|
41
|
+
|
42
|
+
### Creating a client object
|
43
|
+
|
44
|
+
Once the gem is installed, you can load the client code and instantiate a client.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
# Load the client
|
48
|
+
require "google/apis/classroom_v1"
|
49
|
+
|
50
|
+
# Create a client object
|
51
|
+
client = Google::Apis::ClassroomV1::ClassroomService.new
|
52
|
+
|
53
|
+
# Authenticate calls
|
54
|
+
client.authentication = # ... use the googleauth gem to create credentials
|
55
|
+
```
|
56
|
+
|
57
|
+
See the class reference docs for information on the methods you can call from a client.
|
58
|
+
|
59
|
+
## Documentation
|
60
|
+
|
61
|
+
More detailed descriptions of the Google simple REST clients are available in two documents.
|
62
|
+
|
63
|
+
* The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
|
64
|
+
* The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
|
65
|
+
|
66
|
+
(Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Classroom service in particular.)
|
67
|
+
|
68
|
+
For reference information on specific calls in the Google Classroom API, see the {Google::Apis::ClassroomV1::ClassroomService class reference docs}.
|
69
|
+
|
70
|
+
## Which client should I use?
|
71
|
+
|
72
|
+
Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
|
73
|
+
|
74
|
+
This library, `google-apis-classroom_v1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
|
75
|
+
|
76
|
+
Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
|
77
|
+
|
78
|
+
Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
|
79
|
+
|
80
|
+
**For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
|
81
|
+
|
82
|
+
The [product documentation](https://developers.google.com/classroom/) may provide guidance regarding the preferred client library to use.
|
83
|
+
|
84
|
+
## Supported Ruby versions
|
85
|
+
|
86
|
+
This library is supported on Ruby 2.5+.
|
87
|
+
|
88
|
+
Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
|
89
|
+
|
90
|
+
## License
|
91
|
+
|
92
|
+
This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
|
93
|
+
|
94
|
+
## Support
|
95
|
+
|
96
|
+
Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Copyright 2020 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require "google/apis/classroom_v1"
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# Copyright 2020 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'google/apis/classroom_v1/service.rb'
|
16
|
+
require 'google/apis/classroom_v1/classes.rb'
|
17
|
+
require 'google/apis/classroom_v1/representations.rb'
|
18
|
+
require 'google/apis/classroom_v1/gem_version.rb'
|
19
|
+
|
20
|
+
module Google
|
21
|
+
module Apis
|
22
|
+
# Google Classroom API
|
23
|
+
#
|
24
|
+
# Manages classes, rosters, and invitations in Google Classroom.
|
25
|
+
#
|
26
|
+
# @see https://developers.google.com/classroom/
|
27
|
+
module ClassroomV1
|
28
|
+
# Version of the Google Classroom API this client connects to.
|
29
|
+
# This is NOT the gem version.
|
30
|
+
VERSION = 'V1'
|
31
|
+
|
32
|
+
# View and manage announcements in Google Classroom
|
33
|
+
AUTH_CLASSROOM_ANNOUNCEMENTS = 'https://www.googleapis.com/auth/classroom.announcements'
|
34
|
+
|
35
|
+
# View announcements in Google Classroom
|
36
|
+
AUTH_CLASSROOM_ANNOUNCEMENTS_READONLY = 'https://www.googleapis.com/auth/classroom.announcements.readonly'
|
37
|
+
|
38
|
+
# Manage your Google Classroom classes
|
39
|
+
AUTH_CLASSROOM_COURSES = 'https://www.googleapis.com/auth/classroom.courses'
|
40
|
+
|
41
|
+
# View your Google Classroom classes
|
42
|
+
AUTH_CLASSROOM_COURSES_READONLY = 'https://www.googleapis.com/auth/classroom.courses.readonly'
|
43
|
+
|
44
|
+
# Manage your course work and view your grades in Google Classroom
|
45
|
+
AUTH_CLASSROOM_COURSEWORK_ME = 'https://www.googleapis.com/auth/classroom.coursework.me'
|
46
|
+
|
47
|
+
# View your course work and grades in Google Classroom
|
48
|
+
AUTH_CLASSROOM_COURSEWORK_ME_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.me.readonly'
|
49
|
+
|
50
|
+
# Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer
|
51
|
+
AUTH_CLASSROOM_COURSEWORK_STUDENTS = 'https://www.googleapis.com/auth/classroom.coursework.students'
|
52
|
+
|
53
|
+
# View course work and grades for students in the Google Classroom classes you teach or administer
|
54
|
+
AUTH_CLASSROOM_COURSEWORK_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.students.readonly'
|
55
|
+
|
56
|
+
# See, edit, and create classwork materials in Google Classroom
|
57
|
+
AUTH_CLASSROOM_COURSEWORKMATERIALS = 'https://www.googleapis.com/auth/classroom.courseworkmaterials'
|
58
|
+
|
59
|
+
# See all classwork materials for your Google Classroom classes
|
60
|
+
AUTH_CLASSROOM_COURSEWORKMATERIALS_READONLY = 'https://www.googleapis.com/auth/classroom.courseworkmaterials.readonly'
|
61
|
+
|
62
|
+
# View your Google Classroom guardians
|
63
|
+
AUTH_CLASSROOM_GUARDIANLINKS_ME_READONLY = 'https://www.googleapis.com/auth/classroom.guardianlinks.me.readonly'
|
64
|
+
|
65
|
+
# View and manage guardians for students in your Google Classroom classes
|
66
|
+
AUTH_CLASSROOM_GUARDIANLINKS_STUDENTS = 'https://www.googleapis.com/auth/classroom.guardianlinks.students'
|
67
|
+
|
68
|
+
# View guardians for students in your Google Classroom classes
|
69
|
+
AUTH_CLASSROOM_GUARDIANLINKS_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.guardianlinks.students.readonly'
|
70
|
+
|
71
|
+
# View the email addresses of people in your classes
|
72
|
+
AUTH_CLASSROOM_PROFILE_EMAILS = 'https://www.googleapis.com/auth/classroom.profile.emails'
|
73
|
+
|
74
|
+
# View the profile photos of people in your classes
|
75
|
+
AUTH_CLASSROOM_PROFILE_PHOTOS = 'https://www.googleapis.com/auth/classroom.profile.photos'
|
76
|
+
|
77
|
+
# Receive notifications about your Google Classroom data
|
78
|
+
AUTH_CLASSROOM_PUSH_NOTIFICATIONS = 'https://www.googleapis.com/auth/classroom.push-notifications'
|
79
|
+
|
80
|
+
# Manage your Google Classroom class rosters
|
81
|
+
AUTH_CLASSROOM_ROSTERS = 'https://www.googleapis.com/auth/classroom.rosters'
|
82
|
+
|
83
|
+
# View your Google Classroom class rosters
|
84
|
+
AUTH_CLASSROOM_ROSTERS_READONLY = 'https://www.googleapis.com/auth/classroom.rosters.readonly'
|
85
|
+
|
86
|
+
# View your course work and grades in Google Classroom
|
87
|
+
AUTH_CLASSROOM_STUDENT_SUBMISSIONS_ME_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.me.readonly'
|
88
|
+
|
89
|
+
# View course work and grades for students in the Google Classroom classes you teach or administer
|
90
|
+
AUTH_CLASSROOM_STUDENT_SUBMISSIONS_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.students.readonly'
|
91
|
+
|
92
|
+
# See, create, and edit topics in Google Classroom
|
93
|
+
AUTH_CLASSROOM_TOPICS = 'https://www.googleapis.com/auth/classroom.topics'
|
94
|
+
|
95
|
+
# View topics in Google Classroom
|
96
|
+
AUTH_CLASSROOM_TOPICS_READONLY = 'https://www.googleapis.com/auth/classroom.topics.readonly'
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,2282 @@
|
|
1
|
+
# Copyright 2020 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'date'
|
16
|
+
require 'google/apis/core/base_service'
|
17
|
+
require 'google/apis/core/json_representation'
|
18
|
+
require 'google/apis/core/hashable'
|
19
|
+
require 'google/apis/errors'
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Apis
|
23
|
+
module ClassroomV1
|
24
|
+
|
25
|
+
# Announcement created by a teacher for students of the course
|
26
|
+
class Announcement
|
27
|
+
include Google::Apis::Core::Hashable
|
28
|
+
|
29
|
+
# Absolute link to this announcement in the Classroom web UI. This is only
|
30
|
+
# populated if `state` is `PUBLISHED`. Read-only.
|
31
|
+
# Corresponds to the JSON property `alternateLink`
|
32
|
+
# @return [String]
|
33
|
+
attr_accessor :alternate_link
|
34
|
+
|
35
|
+
# Assignee mode of the announcement. If unspecified, the default value is `
|
36
|
+
# ALL_STUDENTS`.
|
37
|
+
# Corresponds to the JSON property `assigneeMode`
|
38
|
+
# @return [String]
|
39
|
+
attr_accessor :assignee_mode
|
40
|
+
|
41
|
+
# Identifier of the course. Read-only.
|
42
|
+
# Corresponds to the JSON property `courseId`
|
43
|
+
# @return [String]
|
44
|
+
attr_accessor :course_id
|
45
|
+
|
46
|
+
# Timestamp when this announcement was created. Read-only.
|
47
|
+
# Corresponds to the JSON property `creationTime`
|
48
|
+
# @return [String]
|
49
|
+
attr_accessor :creation_time
|
50
|
+
|
51
|
+
# Identifier for the user that created the announcement. Read-only.
|
52
|
+
# Corresponds to the JSON property `creatorUserId`
|
53
|
+
# @return [String]
|
54
|
+
attr_accessor :creator_user_id
|
55
|
+
|
56
|
+
# Classroom-assigned identifier of this announcement, unique per course. Read-
|
57
|
+
# only.
|
58
|
+
# Corresponds to the JSON property `id`
|
59
|
+
# @return [String]
|
60
|
+
attr_accessor :id
|
61
|
+
|
62
|
+
# Assignee details about a coursework/announcement. This field is set if and
|
63
|
+
# only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
|
64
|
+
# Corresponds to the JSON property `individualStudentsOptions`
|
65
|
+
# @return [Google::Apis::ClassroomV1::IndividualStudentsOptions]
|
66
|
+
attr_accessor :individual_students_options
|
67
|
+
|
68
|
+
# Additional materials. Announcements must have no more than 20 material items.
|
69
|
+
# Corresponds to the JSON property `materials`
|
70
|
+
# @return [Array<Google::Apis::ClassroomV1::Material>]
|
71
|
+
attr_accessor :materials
|
72
|
+
|
73
|
+
# Optional timestamp when this announcement is scheduled to be published.
|
74
|
+
# Corresponds to the JSON property `scheduledTime`
|
75
|
+
# @return [String]
|
76
|
+
attr_accessor :scheduled_time
|
77
|
+
|
78
|
+
# Status of this announcement. If unspecified, the default state is `DRAFT`.
|
79
|
+
# Corresponds to the JSON property `state`
|
80
|
+
# @return [String]
|
81
|
+
attr_accessor :state
|
82
|
+
|
83
|
+
# Description of this announcement. The text must be a valid UTF-8 string
|
84
|
+
# containing no more than 30,000 characters.
|
85
|
+
# Corresponds to the JSON property `text`
|
86
|
+
# @return [String]
|
87
|
+
attr_accessor :text
|
88
|
+
|
89
|
+
# Timestamp of the most recent change to this announcement. Read-only.
|
90
|
+
# Corresponds to the JSON property `updateTime`
|
91
|
+
# @return [String]
|
92
|
+
attr_accessor :update_time
|
93
|
+
|
94
|
+
def initialize(**args)
|
95
|
+
update!(**args)
|
96
|
+
end
|
97
|
+
|
98
|
+
# Update properties of this object
|
99
|
+
def update!(**args)
|
100
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
101
|
+
@assignee_mode = args[:assignee_mode] if args.key?(:assignee_mode)
|
102
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
103
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
104
|
+
@creator_user_id = args[:creator_user_id] if args.key?(:creator_user_id)
|
105
|
+
@id = args[:id] if args.key?(:id)
|
106
|
+
@individual_students_options = args[:individual_students_options] if args.key?(:individual_students_options)
|
107
|
+
@materials = args[:materials] if args.key?(:materials)
|
108
|
+
@scheduled_time = args[:scheduled_time] if args.key?(:scheduled_time)
|
109
|
+
@state = args[:state] if args.key?(:state)
|
110
|
+
@text = args[:text] if args.key?(:text)
|
111
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Additional details for assignments.
|
116
|
+
class Assignment
|
117
|
+
include Google::Apis::Core::Hashable
|
118
|
+
|
119
|
+
# Representation of a Google Drive folder.
|
120
|
+
# Corresponds to the JSON property `studentWorkFolder`
|
121
|
+
# @return [Google::Apis::ClassroomV1::DriveFolder]
|
122
|
+
attr_accessor :student_work_folder
|
123
|
+
|
124
|
+
def initialize(**args)
|
125
|
+
update!(**args)
|
126
|
+
end
|
127
|
+
|
128
|
+
# Update properties of this object
|
129
|
+
def update!(**args)
|
130
|
+
@student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
# Student work for an assignment.
|
135
|
+
class AssignmentSubmission
|
136
|
+
include Google::Apis::Core::Hashable
|
137
|
+
|
138
|
+
# Attachments added by the student. Drive files that correspond to materials
|
139
|
+
# with a share mode of STUDENT_COPY may not exist yet if the student has not
|
140
|
+
# accessed the assignment in Classroom. Some attachment metadata is only
|
141
|
+
# populated if the requesting user has permission to access it. Identifier and
|
142
|
+
# alternate_link fields are always available, but others (for example, title)
|
143
|
+
# may not be.
|
144
|
+
# Corresponds to the JSON property `attachments`
|
145
|
+
# @return [Array<Google::Apis::ClassroomV1::Attachment>]
|
146
|
+
attr_accessor :attachments
|
147
|
+
|
148
|
+
def initialize(**args)
|
149
|
+
update!(**args)
|
150
|
+
end
|
151
|
+
|
152
|
+
# Update properties of this object
|
153
|
+
def update!(**args)
|
154
|
+
@attachments = args[:attachments] if args.key?(:attachments)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
# Attachment added to student assignment work. When creating attachments,
|
159
|
+
# setting the `form` field is not supported.
|
160
|
+
class Attachment
|
161
|
+
include Google::Apis::Core::Hashable
|
162
|
+
|
163
|
+
# Representation of a Google Drive file.
|
164
|
+
# Corresponds to the JSON property `driveFile`
|
165
|
+
# @return [Google::Apis::ClassroomV1::DriveFile]
|
166
|
+
attr_accessor :drive_file
|
167
|
+
|
168
|
+
# Google Forms item.
|
169
|
+
# Corresponds to the JSON property `form`
|
170
|
+
# @return [Google::Apis::ClassroomV1::Form]
|
171
|
+
attr_accessor :form
|
172
|
+
|
173
|
+
# URL item.
|
174
|
+
# Corresponds to the JSON property `link`
|
175
|
+
# @return [Google::Apis::ClassroomV1::Link]
|
176
|
+
attr_accessor :link
|
177
|
+
|
178
|
+
# YouTube video item.
|
179
|
+
# Corresponds to the JSON property `youTubeVideo`
|
180
|
+
# @return [Google::Apis::ClassroomV1::YouTubeVideo]
|
181
|
+
attr_accessor :you_tube_video
|
182
|
+
|
183
|
+
def initialize(**args)
|
184
|
+
update!(**args)
|
185
|
+
end
|
186
|
+
|
187
|
+
# Update properties of this object
|
188
|
+
def update!(**args)
|
189
|
+
@drive_file = args[:drive_file] if args.key?(:drive_file)
|
190
|
+
@form = args[:form] if args.key?(:form)
|
191
|
+
@link = args[:link] if args.key?(:link)
|
192
|
+
@you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
# A reference to a Cloud Pub/Sub topic. To register for notifications, the owner
|
197
|
+
# of the topic must grant `classroom-notifications@system.gserviceaccount.com`
|
198
|
+
# the `projects.topics.publish` permission.
|
199
|
+
class CloudPubsubTopic
|
200
|
+
include Google::Apis::Core::Hashable
|
201
|
+
|
202
|
+
# The `name` field of a Cloud Pub/Sub [Topic](https://cloud.google.com/pubsub/
|
203
|
+
# docs/reference/rest/v1/projects.topics#Topic).
|
204
|
+
# Corresponds to the JSON property `topicName`
|
205
|
+
# @return [String]
|
206
|
+
attr_accessor :topic_name
|
207
|
+
|
208
|
+
def initialize(**args)
|
209
|
+
update!(**args)
|
210
|
+
end
|
211
|
+
|
212
|
+
# Update properties of this object
|
213
|
+
def update!(**args)
|
214
|
+
@topic_name = args[:topic_name] if args.key?(:topic_name)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
# A Course in Classroom.
|
219
|
+
class Course
|
220
|
+
include Google::Apis::Core::Hashable
|
221
|
+
|
222
|
+
# Absolute link to this course in the Classroom web UI. Read-only.
|
223
|
+
# Corresponds to the JSON property `alternateLink`
|
224
|
+
# @return [String]
|
225
|
+
attr_accessor :alternate_link
|
226
|
+
|
227
|
+
# The Calendar ID for a calendar that all course members can see, to which
|
228
|
+
# Classroom adds events for course work and announcements in the course. Read-
|
229
|
+
# only.
|
230
|
+
# Corresponds to the JSON property `calendarId`
|
231
|
+
# @return [String]
|
232
|
+
attr_accessor :calendar_id
|
233
|
+
|
234
|
+
# The email address of a Google group containing all members of the course. This
|
235
|
+
# group does not accept email and can only be used for permissions. Read-only.
|
236
|
+
# Corresponds to the JSON property `courseGroupEmail`
|
237
|
+
# @return [String]
|
238
|
+
attr_accessor :course_group_email
|
239
|
+
|
240
|
+
# Sets of materials that appear on the "about" page of this course. Read-only.
|
241
|
+
# Corresponds to the JSON property `courseMaterialSets`
|
242
|
+
# @return [Array<Google::Apis::ClassroomV1::CourseMaterialSet>]
|
243
|
+
attr_accessor :course_material_sets
|
244
|
+
|
245
|
+
# State of the course. If unspecified, the default state is `PROVISIONED`.
|
246
|
+
# Corresponds to the JSON property `courseState`
|
247
|
+
# @return [String]
|
248
|
+
attr_accessor :course_state
|
249
|
+
|
250
|
+
# Creation time of the course. Specifying this field in a course update mask
|
251
|
+
# results in an error. Read-only.
|
252
|
+
# Corresponds to the JSON property `creationTime`
|
253
|
+
# @return [String]
|
254
|
+
attr_accessor :creation_time
|
255
|
+
|
256
|
+
# Optional description. For example, "We'll be learning about the structure of
|
257
|
+
# living creatures from a combination of textbooks, guest lectures, and lab work.
|
258
|
+
# Expect to be excited!" If set, this field must be a valid UTF-8 string and no
|
259
|
+
# longer than 30,000 characters.
|
260
|
+
# Corresponds to the JSON property `description`
|
261
|
+
# @return [String]
|
262
|
+
attr_accessor :description
|
263
|
+
|
264
|
+
# Optional heading for the description. For example, "Welcome to 10th Grade
|
265
|
+
# Biology." If set, this field must be a valid UTF-8 string and no longer than
|
266
|
+
# 3600 characters.
|
267
|
+
# Corresponds to the JSON property `descriptionHeading`
|
268
|
+
# @return [String]
|
269
|
+
attr_accessor :description_heading
|
270
|
+
|
271
|
+
# Enrollment code to use when joining this course. Specifying this field in a
|
272
|
+
# course update mask results in an error. Read-only.
|
273
|
+
# Corresponds to the JSON property `enrollmentCode`
|
274
|
+
# @return [String]
|
275
|
+
attr_accessor :enrollment_code
|
276
|
+
|
277
|
+
# Whether or not guardian notifications are enabled for this course. Read-only.
|
278
|
+
# Corresponds to the JSON property `guardiansEnabled`
|
279
|
+
# @return [Boolean]
|
280
|
+
attr_accessor :guardians_enabled
|
281
|
+
alias_method :guardians_enabled?, :guardians_enabled
|
282
|
+
|
283
|
+
# Identifier for this course assigned by Classroom. When creating a course, you
|
284
|
+
# may optionally set this identifier to an alias string in the request to create
|
285
|
+
# a corresponding alias. The `id` is still assigned by Classroom and cannot be
|
286
|
+
# updated after the course is created. Specifying this field in a course update
|
287
|
+
# mask results in an error.
|
288
|
+
# Corresponds to the JSON property `id`
|
289
|
+
# @return [String]
|
290
|
+
attr_accessor :id
|
291
|
+
|
292
|
+
# Name of the course. For example, "10th Grade Biology". The name is required.
|
293
|
+
# It must be between 1 and 750 characters and a valid UTF-8 string.
|
294
|
+
# Corresponds to the JSON property `name`
|
295
|
+
# @return [String]
|
296
|
+
attr_accessor :name
|
297
|
+
|
298
|
+
# The identifier of the owner of a course. When specified as a parameter of a
|
299
|
+
# create course request, this field is required. The identifier can be one of
|
300
|
+
# the following: * the numeric identifier for the user * the email address of
|
301
|
+
# the user * the string literal `"me"`, indicating the requesting user This must
|
302
|
+
# be set in a create request. Admins can also specify this field in a patch
|
303
|
+
# course request to transfer ownership. In other contexts, it is read-only.
|
304
|
+
# Corresponds to the JSON property `ownerId`
|
305
|
+
# @return [String]
|
306
|
+
attr_accessor :owner_id
|
307
|
+
|
308
|
+
# Optional room location. For example, "301". If set, this field must be a valid
|
309
|
+
# UTF-8 string and no longer than 650 characters.
|
310
|
+
# Corresponds to the JSON property `room`
|
311
|
+
# @return [String]
|
312
|
+
attr_accessor :room
|
313
|
+
|
314
|
+
# Section of the course. For example, "Period 2". If set, this field must be a
|
315
|
+
# valid UTF-8 string and no longer than 2800 characters.
|
316
|
+
# Corresponds to the JSON property `section`
|
317
|
+
# @return [String]
|
318
|
+
attr_accessor :section
|
319
|
+
|
320
|
+
# Representation of a Google Drive folder.
|
321
|
+
# Corresponds to the JSON property `teacherFolder`
|
322
|
+
# @return [Google::Apis::ClassroomV1::DriveFolder]
|
323
|
+
attr_accessor :teacher_folder
|
324
|
+
|
325
|
+
# The email address of a Google group containing all teachers of the course.
|
326
|
+
# This group does not accept email and can only be used for permissions. Read-
|
327
|
+
# only.
|
328
|
+
# Corresponds to the JSON property `teacherGroupEmail`
|
329
|
+
# @return [String]
|
330
|
+
attr_accessor :teacher_group_email
|
331
|
+
|
332
|
+
# Time of the most recent update to this course. Specifying this field in a
|
333
|
+
# course update mask results in an error. Read-only.
|
334
|
+
# Corresponds to the JSON property `updateTime`
|
335
|
+
# @return [String]
|
336
|
+
attr_accessor :update_time
|
337
|
+
|
338
|
+
def initialize(**args)
|
339
|
+
update!(**args)
|
340
|
+
end
|
341
|
+
|
342
|
+
# Update properties of this object
|
343
|
+
def update!(**args)
|
344
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
345
|
+
@calendar_id = args[:calendar_id] if args.key?(:calendar_id)
|
346
|
+
@course_group_email = args[:course_group_email] if args.key?(:course_group_email)
|
347
|
+
@course_material_sets = args[:course_material_sets] if args.key?(:course_material_sets)
|
348
|
+
@course_state = args[:course_state] if args.key?(:course_state)
|
349
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
350
|
+
@description = args[:description] if args.key?(:description)
|
351
|
+
@description_heading = args[:description_heading] if args.key?(:description_heading)
|
352
|
+
@enrollment_code = args[:enrollment_code] if args.key?(:enrollment_code)
|
353
|
+
@guardians_enabled = args[:guardians_enabled] if args.key?(:guardians_enabled)
|
354
|
+
@id = args[:id] if args.key?(:id)
|
355
|
+
@name = args[:name] if args.key?(:name)
|
356
|
+
@owner_id = args[:owner_id] if args.key?(:owner_id)
|
357
|
+
@room = args[:room] if args.key?(:room)
|
358
|
+
@section = args[:section] if args.key?(:section)
|
359
|
+
@teacher_folder = args[:teacher_folder] if args.key?(:teacher_folder)
|
360
|
+
@teacher_group_email = args[:teacher_group_email] if args.key?(:teacher_group_email)
|
361
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
# Alternative identifier for a course. An alias uniquely identifies a course. It
|
366
|
+
# must be unique within one of the following scopes: * domain: A domain-scoped
|
367
|
+
# alias is visible to all users within the alias creator's domain and can be
|
368
|
+
# created only by a domain admin. A domain-scoped alias is often used when a
|
369
|
+
# course has an identifier external to Classroom. * project: A project-scoped
|
370
|
+
# alias is visible to any request from an application using the Developer
|
371
|
+
# Console project ID that created the alias and can be created by any project. A
|
372
|
+
# project-scoped alias is often used when an application has alternative
|
373
|
+
# identifiers. A random value can also be used to avoid duplicate courses in the
|
374
|
+
# event of transmission failures, as retrying a request will return `
|
375
|
+
# ALREADY_EXISTS` if a previous one has succeeded.
|
376
|
+
class CourseAlias
|
377
|
+
include Google::Apis::Core::Hashable
|
378
|
+
|
379
|
+
# Alias string. The format of the string indicates the desired alias scoping. * `
|
380
|
+
# d:` indicates a domain-scoped alias. Example: `d:math_101` * `p:` indicates a
|
381
|
+
# project-scoped alias. Example: `p:abc123` This field has a maximum length of
|
382
|
+
# 256 characters.
|
383
|
+
# Corresponds to the JSON property `alias`
|
384
|
+
# @return [String]
|
385
|
+
attr_accessor :alias
|
386
|
+
|
387
|
+
def initialize(**args)
|
388
|
+
update!(**args)
|
389
|
+
end
|
390
|
+
|
391
|
+
# Update properties of this object
|
392
|
+
def update!(**args)
|
393
|
+
@alias = args[:alias] if args.key?(:alias)
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
397
|
+
# A material attached to a course as part of a material set.
|
398
|
+
class CourseMaterial
|
399
|
+
include Google::Apis::Core::Hashable
|
400
|
+
|
401
|
+
# Representation of a Google Drive file.
|
402
|
+
# Corresponds to the JSON property `driveFile`
|
403
|
+
# @return [Google::Apis::ClassroomV1::DriveFile]
|
404
|
+
attr_accessor :drive_file
|
405
|
+
|
406
|
+
# Google Forms item.
|
407
|
+
# Corresponds to the JSON property `form`
|
408
|
+
# @return [Google::Apis::ClassroomV1::Form]
|
409
|
+
attr_accessor :form
|
410
|
+
|
411
|
+
# URL item.
|
412
|
+
# Corresponds to the JSON property `link`
|
413
|
+
# @return [Google::Apis::ClassroomV1::Link]
|
414
|
+
attr_accessor :link
|
415
|
+
|
416
|
+
# YouTube video item.
|
417
|
+
# Corresponds to the JSON property `youTubeVideo`
|
418
|
+
# @return [Google::Apis::ClassroomV1::YouTubeVideo]
|
419
|
+
attr_accessor :you_tube_video
|
420
|
+
|
421
|
+
def initialize(**args)
|
422
|
+
update!(**args)
|
423
|
+
end
|
424
|
+
|
425
|
+
# Update properties of this object
|
426
|
+
def update!(**args)
|
427
|
+
@drive_file = args[:drive_file] if args.key?(:drive_file)
|
428
|
+
@form = args[:form] if args.key?(:form)
|
429
|
+
@link = args[:link] if args.key?(:link)
|
430
|
+
@you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
|
431
|
+
end
|
432
|
+
end
|
433
|
+
|
434
|
+
# A set of materials that appears on the "About" page of the course. These
|
435
|
+
# materials might include a syllabus, schedule, or other background information
|
436
|
+
# relating to the course as a whole.
|
437
|
+
class CourseMaterialSet
|
438
|
+
include Google::Apis::Core::Hashable
|
439
|
+
|
440
|
+
# Materials attached to this set.
|
441
|
+
# Corresponds to the JSON property `materials`
|
442
|
+
# @return [Array<Google::Apis::ClassroomV1::CourseMaterial>]
|
443
|
+
attr_accessor :materials
|
444
|
+
|
445
|
+
# Title for this set.
|
446
|
+
# Corresponds to the JSON property `title`
|
447
|
+
# @return [String]
|
448
|
+
attr_accessor :title
|
449
|
+
|
450
|
+
def initialize(**args)
|
451
|
+
update!(**args)
|
452
|
+
end
|
453
|
+
|
454
|
+
# Update properties of this object
|
455
|
+
def update!(**args)
|
456
|
+
@materials = args[:materials] if args.key?(:materials)
|
457
|
+
@title = args[:title] if args.key?(:title)
|
458
|
+
end
|
459
|
+
end
|
460
|
+
|
461
|
+
# Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.
|
462
|
+
class CourseRosterChangesInfo
|
463
|
+
include Google::Apis::Core::Hashable
|
464
|
+
|
465
|
+
# The `course_id` of the course to subscribe to roster changes for.
|
466
|
+
# Corresponds to the JSON property `courseId`
|
467
|
+
# @return [String]
|
468
|
+
attr_accessor :course_id
|
469
|
+
|
470
|
+
def initialize(**args)
|
471
|
+
update!(**args)
|
472
|
+
end
|
473
|
+
|
474
|
+
# Update properties of this object
|
475
|
+
def update!(**args)
|
476
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
477
|
+
end
|
478
|
+
end
|
479
|
+
|
480
|
+
# Course work created by a teacher for students of the course.
|
481
|
+
class CourseWork
|
482
|
+
include Google::Apis::Core::Hashable
|
483
|
+
|
484
|
+
# Absolute link to this course work in the Classroom web UI. This is only
|
485
|
+
# populated if `state` is `PUBLISHED`. Read-only.
|
486
|
+
# Corresponds to the JSON property `alternateLink`
|
487
|
+
# @return [String]
|
488
|
+
attr_accessor :alternate_link
|
489
|
+
|
490
|
+
# Assignee mode of the coursework. If unspecified, the default value is `
|
491
|
+
# ALL_STUDENTS`.
|
492
|
+
# Corresponds to the JSON property `assigneeMode`
|
493
|
+
# @return [String]
|
494
|
+
attr_accessor :assignee_mode
|
495
|
+
|
496
|
+
# Additional details for assignments.
|
497
|
+
# Corresponds to the JSON property `assignment`
|
498
|
+
# @return [Google::Apis::ClassroomV1::Assignment]
|
499
|
+
attr_accessor :assignment
|
500
|
+
|
501
|
+
# Whether this course work item is associated with the Developer Console project
|
502
|
+
# making the request. See CreateCourseWork for more details. Read-only.
|
503
|
+
# Corresponds to the JSON property `associatedWithDeveloper`
|
504
|
+
# @return [Boolean]
|
505
|
+
attr_accessor :associated_with_developer
|
506
|
+
alias_method :associated_with_developer?, :associated_with_developer
|
507
|
+
|
508
|
+
# Identifier of the course. Read-only.
|
509
|
+
# Corresponds to the JSON property `courseId`
|
510
|
+
# @return [String]
|
511
|
+
attr_accessor :course_id
|
512
|
+
|
513
|
+
# Timestamp when this course work was created. Read-only.
|
514
|
+
# Corresponds to the JSON property `creationTime`
|
515
|
+
# @return [String]
|
516
|
+
attr_accessor :creation_time
|
517
|
+
|
518
|
+
# Identifier for the user that created the coursework. Read-only.
|
519
|
+
# Corresponds to the JSON property `creatorUserId`
|
520
|
+
# @return [String]
|
521
|
+
attr_accessor :creator_user_id
|
522
|
+
|
523
|
+
# Optional description of this course work. If set, the description must be a
|
524
|
+
# valid UTF-8 string containing no more than 30,000 characters.
|
525
|
+
# Corresponds to the JSON property `description`
|
526
|
+
# @return [String]
|
527
|
+
attr_accessor :description
|
528
|
+
|
529
|
+
# Represents a whole or partial calendar date, such as a birthday. The time of
|
530
|
+
# day and time zone are either specified elsewhere or are insignificant. The
|
531
|
+
# date is relative to the Gregorian Calendar. This can represent one of the
|
532
|
+
# following: * A full date, with non-zero year, month, and day values * A month
|
533
|
+
# and day value, with a zero year, such as an anniversary * A year on its own,
|
534
|
+
# with zero month and day values * A year and month value, with a zero day, such
|
535
|
+
# as a credit card expiration date Related types are google.type.TimeOfDay and `
|
536
|
+
# google.protobuf.Timestamp`.
|
537
|
+
# Corresponds to the JSON property `dueDate`
|
538
|
+
# @return [Google::Apis::ClassroomV1::Date]
|
539
|
+
attr_accessor :due_date
|
540
|
+
|
541
|
+
# Represents a time of day. The date and time zone are either not significant or
|
542
|
+
# are specified elsewhere. An API may choose to allow leap seconds. Related
|
543
|
+
# types are google.type.Date and `google.protobuf.Timestamp`.
|
544
|
+
# Corresponds to the JSON property `dueTime`
|
545
|
+
# @return [Google::Apis::ClassroomV1::TimeOfDay]
|
546
|
+
attr_accessor :due_time
|
547
|
+
|
548
|
+
# Classroom-assigned identifier of this course work, unique per course. Read-
|
549
|
+
# only.
|
550
|
+
# Corresponds to the JSON property `id`
|
551
|
+
# @return [String]
|
552
|
+
attr_accessor :id
|
553
|
+
|
554
|
+
# Assignee details about a coursework/announcement. This field is set if and
|
555
|
+
# only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
|
556
|
+
# Corresponds to the JSON property `individualStudentsOptions`
|
557
|
+
# @return [Google::Apis::ClassroomV1::IndividualStudentsOptions]
|
558
|
+
attr_accessor :individual_students_options
|
559
|
+
|
560
|
+
# Additional materials. CourseWork must have no more than 20 material items.
|
561
|
+
# Corresponds to the JSON property `materials`
|
562
|
+
# @return [Array<Google::Apis::ClassroomV1::Material>]
|
563
|
+
attr_accessor :materials
|
564
|
+
|
565
|
+
# Maximum grade for this course work. If zero or unspecified, this assignment is
|
566
|
+
# considered ungraded. This must be a non-negative integer value.
|
567
|
+
# Corresponds to the JSON property `maxPoints`
|
568
|
+
# @return [Float]
|
569
|
+
attr_accessor :max_points
|
570
|
+
|
571
|
+
# Additional details for multiple-choice questions.
|
572
|
+
# Corresponds to the JSON property `multipleChoiceQuestion`
|
573
|
+
# @return [Google::Apis::ClassroomV1::MultipleChoiceQuestion]
|
574
|
+
attr_accessor :multiple_choice_question
|
575
|
+
|
576
|
+
# Optional timestamp when this course work is scheduled to be published.
|
577
|
+
# Corresponds to the JSON property `scheduledTime`
|
578
|
+
# @return [String]
|
579
|
+
attr_accessor :scheduled_time
|
580
|
+
|
581
|
+
# Status of this course work. If unspecified, the default state is `DRAFT`.
|
582
|
+
# Corresponds to the JSON property `state`
|
583
|
+
# @return [String]
|
584
|
+
attr_accessor :state
|
585
|
+
|
586
|
+
# Setting to determine when students are allowed to modify submissions. If
|
587
|
+
# unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
|
588
|
+
# Corresponds to the JSON property `submissionModificationMode`
|
589
|
+
# @return [String]
|
590
|
+
attr_accessor :submission_modification_mode
|
591
|
+
|
592
|
+
# Title of this course work. The title must be a valid UTF-8 string containing
|
593
|
+
# between 1 and 3000 characters.
|
594
|
+
# Corresponds to the JSON property `title`
|
595
|
+
# @return [String]
|
596
|
+
attr_accessor :title
|
597
|
+
|
598
|
+
# Identifier for the topic that this coursework is associated with. Must match
|
599
|
+
# an existing topic in the course.
|
600
|
+
# Corresponds to the JSON property `topicId`
|
601
|
+
# @return [String]
|
602
|
+
attr_accessor :topic_id
|
603
|
+
|
604
|
+
# Timestamp of the most recent change to this course work. Read-only.
|
605
|
+
# Corresponds to the JSON property `updateTime`
|
606
|
+
# @return [String]
|
607
|
+
attr_accessor :update_time
|
608
|
+
|
609
|
+
# Type of this course work. The type is set when the course work is created and
|
610
|
+
# cannot be changed.
|
611
|
+
# Corresponds to the JSON property `workType`
|
612
|
+
# @return [String]
|
613
|
+
attr_accessor :work_type
|
614
|
+
|
615
|
+
def initialize(**args)
|
616
|
+
update!(**args)
|
617
|
+
end
|
618
|
+
|
619
|
+
# Update properties of this object
|
620
|
+
def update!(**args)
|
621
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
622
|
+
@assignee_mode = args[:assignee_mode] if args.key?(:assignee_mode)
|
623
|
+
@assignment = args[:assignment] if args.key?(:assignment)
|
624
|
+
@associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
|
625
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
626
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
627
|
+
@creator_user_id = args[:creator_user_id] if args.key?(:creator_user_id)
|
628
|
+
@description = args[:description] if args.key?(:description)
|
629
|
+
@due_date = args[:due_date] if args.key?(:due_date)
|
630
|
+
@due_time = args[:due_time] if args.key?(:due_time)
|
631
|
+
@id = args[:id] if args.key?(:id)
|
632
|
+
@individual_students_options = args[:individual_students_options] if args.key?(:individual_students_options)
|
633
|
+
@materials = args[:materials] if args.key?(:materials)
|
634
|
+
@max_points = args[:max_points] if args.key?(:max_points)
|
635
|
+
@multiple_choice_question = args[:multiple_choice_question] if args.key?(:multiple_choice_question)
|
636
|
+
@scheduled_time = args[:scheduled_time] if args.key?(:scheduled_time)
|
637
|
+
@state = args[:state] if args.key?(:state)
|
638
|
+
@submission_modification_mode = args[:submission_modification_mode] if args.key?(:submission_modification_mode)
|
639
|
+
@title = args[:title] if args.key?(:title)
|
640
|
+
@topic_id = args[:topic_id] if args.key?(:topic_id)
|
641
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
642
|
+
@work_type = args[:work_type] if args.key?(:work_type)
|
643
|
+
end
|
644
|
+
end
|
645
|
+
|
646
|
+
# Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.
|
647
|
+
class CourseWorkChangesInfo
|
648
|
+
include Google::Apis::Core::Hashable
|
649
|
+
|
650
|
+
# The `course_id` of the course to subscribe to work changes for.
|
651
|
+
# Corresponds to the JSON property `courseId`
|
652
|
+
# @return [String]
|
653
|
+
attr_accessor :course_id
|
654
|
+
|
655
|
+
def initialize(**args)
|
656
|
+
update!(**args)
|
657
|
+
end
|
658
|
+
|
659
|
+
# Update properties of this object
|
660
|
+
def update!(**args)
|
661
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
662
|
+
end
|
663
|
+
end
|
664
|
+
|
665
|
+
# Course work material created by a teacher for students of the course
|
666
|
+
class CourseWorkMaterial
|
667
|
+
include Google::Apis::Core::Hashable
|
668
|
+
|
669
|
+
# Absolute link to this course work material in the Classroom web UI. This is
|
670
|
+
# only populated if `state` is `PUBLISHED`. Read-only.
|
671
|
+
# Corresponds to the JSON property `alternateLink`
|
672
|
+
# @return [String]
|
673
|
+
attr_accessor :alternate_link
|
674
|
+
|
675
|
+
# Assignee mode of the course work material. If unspecified, the default value
|
676
|
+
# is `ALL_STUDENTS`.
|
677
|
+
# Corresponds to the JSON property `assigneeMode`
|
678
|
+
# @return [String]
|
679
|
+
attr_accessor :assignee_mode
|
680
|
+
|
681
|
+
# Identifier of the course. Read-only.
|
682
|
+
# Corresponds to the JSON property `courseId`
|
683
|
+
# @return [String]
|
684
|
+
attr_accessor :course_id
|
685
|
+
|
686
|
+
# Timestamp when this course work material was created. Read-only.
|
687
|
+
# Corresponds to the JSON property `creationTime`
|
688
|
+
# @return [String]
|
689
|
+
attr_accessor :creation_time
|
690
|
+
|
691
|
+
# Identifier for the user that created the course work material. Read-only.
|
692
|
+
# Corresponds to the JSON property `creatorUserId`
|
693
|
+
# @return [String]
|
694
|
+
attr_accessor :creator_user_id
|
695
|
+
|
696
|
+
# Optional description of this course work material. The text must be a valid
|
697
|
+
# UTF-8 string containing no more than 30,000 characters.
|
698
|
+
# Corresponds to the JSON property `description`
|
699
|
+
# @return [String]
|
700
|
+
attr_accessor :description
|
701
|
+
|
702
|
+
# Classroom-assigned identifier of this course work material, unique per course.
|
703
|
+
# Read-only.
|
704
|
+
# Corresponds to the JSON property `id`
|
705
|
+
# @return [String]
|
706
|
+
attr_accessor :id
|
707
|
+
|
708
|
+
# Assignee details about a coursework/announcement. This field is set if and
|
709
|
+
# only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
|
710
|
+
# Corresponds to the JSON property `individualStudentsOptions`
|
711
|
+
# @return [Google::Apis::ClassroomV1::IndividualStudentsOptions]
|
712
|
+
attr_accessor :individual_students_options
|
713
|
+
|
714
|
+
# Additional materials. A course work material must have no more than 20
|
715
|
+
# material items.
|
716
|
+
# Corresponds to the JSON property `materials`
|
717
|
+
# @return [Array<Google::Apis::ClassroomV1::Material>]
|
718
|
+
attr_accessor :materials
|
719
|
+
|
720
|
+
# Optional timestamp when this course work material is scheduled to be published.
|
721
|
+
# Corresponds to the JSON property `scheduledTime`
|
722
|
+
# @return [String]
|
723
|
+
attr_accessor :scheduled_time
|
724
|
+
|
725
|
+
# Status of this course work material. If unspecified, the default state is `
|
726
|
+
# DRAFT`.
|
727
|
+
# Corresponds to the JSON property `state`
|
728
|
+
# @return [String]
|
729
|
+
attr_accessor :state
|
730
|
+
|
731
|
+
# Title of this course work material. The title must be a valid UTF-8 string
|
732
|
+
# containing between 1 and 3000 characters.
|
733
|
+
# Corresponds to the JSON property `title`
|
734
|
+
# @return [String]
|
735
|
+
attr_accessor :title
|
736
|
+
|
737
|
+
# Identifier for the topic that this course work material is associated with.
|
738
|
+
# Must match an existing topic in the course.
|
739
|
+
# Corresponds to the JSON property `topicId`
|
740
|
+
# @return [String]
|
741
|
+
attr_accessor :topic_id
|
742
|
+
|
743
|
+
# Timestamp of the most recent change to this course work material. Read-only.
|
744
|
+
# Corresponds to the JSON property `updateTime`
|
745
|
+
# @return [String]
|
746
|
+
attr_accessor :update_time
|
747
|
+
|
748
|
+
def initialize(**args)
|
749
|
+
update!(**args)
|
750
|
+
end
|
751
|
+
|
752
|
+
# Update properties of this object
|
753
|
+
def update!(**args)
|
754
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
755
|
+
@assignee_mode = args[:assignee_mode] if args.key?(:assignee_mode)
|
756
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
757
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
758
|
+
@creator_user_id = args[:creator_user_id] if args.key?(:creator_user_id)
|
759
|
+
@description = args[:description] if args.key?(:description)
|
760
|
+
@id = args[:id] if args.key?(:id)
|
761
|
+
@individual_students_options = args[:individual_students_options] if args.key?(:individual_students_options)
|
762
|
+
@materials = args[:materials] if args.key?(:materials)
|
763
|
+
@scheduled_time = args[:scheduled_time] if args.key?(:scheduled_time)
|
764
|
+
@state = args[:state] if args.key?(:state)
|
765
|
+
@title = args[:title] if args.key?(:title)
|
766
|
+
@topic_id = args[:topic_id] if args.key?(:topic_id)
|
767
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
768
|
+
end
|
769
|
+
end
|
770
|
+
|
771
|
+
# Represents a whole or partial calendar date, such as a birthday. The time of
|
772
|
+
# day and time zone are either specified elsewhere or are insignificant. The
|
773
|
+
# date is relative to the Gregorian Calendar. This can represent one of the
|
774
|
+
# following: * A full date, with non-zero year, month, and day values * A month
|
775
|
+
# and day value, with a zero year, such as an anniversary * A year on its own,
|
776
|
+
# with zero month and day values * A year and month value, with a zero day, such
|
777
|
+
# as a credit card expiration date Related types are google.type.TimeOfDay and `
|
778
|
+
# google.protobuf.Timestamp`.
|
779
|
+
class Date
|
780
|
+
include Google::Apis::Core::Hashable
|
781
|
+
|
782
|
+
# Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
|
783
|
+
# specify a year by itself or a year and month where the day isn't significant.
|
784
|
+
# Corresponds to the JSON property `day`
|
785
|
+
# @return [Fixnum]
|
786
|
+
attr_accessor :day
|
787
|
+
|
788
|
+
# Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
|
789
|
+
# and day.
|
790
|
+
# Corresponds to the JSON property `month`
|
791
|
+
# @return [Fixnum]
|
792
|
+
attr_accessor :month
|
793
|
+
|
794
|
+
# Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
|
795
|
+
# year.
|
796
|
+
# Corresponds to the JSON property `year`
|
797
|
+
# @return [Fixnum]
|
798
|
+
attr_accessor :year
|
799
|
+
|
800
|
+
def initialize(**args)
|
801
|
+
update!(**args)
|
802
|
+
end
|
803
|
+
|
804
|
+
# Update properties of this object
|
805
|
+
def update!(**args)
|
806
|
+
@day = args[:day] if args.key?(:day)
|
807
|
+
@month = args[:month] if args.key?(:month)
|
808
|
+
@year = args[:year] if args.key?(:year)
|
809
|
+
end
|
810
|
+
end
|
811
|
+
|
812
|
+
# Representation of a Google Drive file.
|
813
|
+
class DriveFile
|
814
|
+
include Google::Apis::Core::Hashable
|
815
|
+
|
816
|
+
# URL that can be used to access the Drive item. Read-only.
|
817
|
+
# Corresponds to the JSON property `alternateLink`
|
818
|
+
# @return [String]
|
819
|
+
attr_accessor :alternate_link
|
820
|
+
|
821
|
+
# Drive API resource ID.
|
822
|
+
# Corresponds to the JSON property `id`
|
823
|
+
# @return [String]
|
824
|
+
attr_accessor :id
|
825
|
+
|
826
|
+
# URL of a thumbnail image of the Drive item. Read-only.
|
827
|
+
# Corresponds to the JSON property `thumbnailUrl`
|
828
|
+
# @return [String]
|
829
|
+
attr_accessor :thumbnail_url
|
830
|
+
|
831
|
+
# Title of the Drive item. Read-only.
|
832
|
+
# Corresponds to the JSON property `title`
|
833
|
+
# @return [String]
|
834
|
+
attr_accessor :title
|
835
|
+
|
836
|
+
def initialize(**args)
|
837
|
+
update!(**args)
|
838
|
+
end
|
839
|
+
|
840
|
+
# Update properties of this object
|
841
|
+
def update!(**args)
|
842
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
843
|
+
@id = args[:id] if args.key?(:id)
|
844
|
+
@thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
|
845
|
+
@title = args[:title] if args.key?(:title)
|
846
|
+
end
|
847
|
+
end
|
848
|
+
|
849
|
+
# Representation of a Google Drive folder.
|
850
|
+
class DriveFolder
|
851
|
+
include Google::Apis::Core::Hashable
|
852
|
+
|
853
|
+
# URL that can be used to access the Drive folder. Read-only.
|
854
|
+
# Corresponds to the JSON property `alternateLink`
|
855
|
+
# @return [String]
|
856
|
+
attr_accessor :alternate_link
|
857
|
+
|
858
|
+
# Drive API resource ID.
|
859
|
+
# Corresponds to the JSON property `id`
|
860
|
+
# @return [String]
|
861
|
+
attr_accessor :id
|
862
|
+
|
863
|
+
# Title of the Drive folder. Read-only.
|
864
|
+
# Corresponds to the JSON property `title`
|
865
|
+
# @return [String]
|
866
|
+
attr_accessor :title
|
867
|
+
|
868
|
+
def initialize(**args)
|
869
|
+
update!(**args)
|
870
|
+
end
|
871
|
+
|
872
|
+
# Update properties of this object
|
873
|
+
def update!(**args)
|
874
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
875
|
+
@id = args[:id] if args.key?(:id)
|
876
|
+
@title = args[:title] if args.key?(:title)
|
877
|
+
end
|
878
|
+
end
|
879
|
+
|
880
|
+
# A generic empty message that you can re-use to avoid defining duplicated empty
|
881
|
+
# messages in your APIs. A typical example is to use it as the request or the
|
882
|
+
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
883
|
+
# protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
|
884
|
+
# `Empty` is empty JSON object ````.
|
885
|
+
class Empty
|
886
|
+
include Google::Apis::Core::Hashable
|
887
|
+
|
888
|
+
def initialize(**args)
|
889
|
+
update!(**args)
|
890
|
+
end
|
891
|
+
|
892
|
+
# Update properties of this object
|
893
|
+
def update!(**args)
|
894
|
+
end
|
895
|
+
end
|
896
|
+
|
897
|
+
# A class of notifications that an application can register to receive. For
|
898
|
+
# example: "all roster changes for a domain".
|
899
|
+
class Feed
|
900
|
+
include Google::Apis::Core::Hashable
|
901
|
+
|
902
|
+
# Information about a `Feed` with a `feed_type` of `COURSE_ROSTER_CHANGES`.
|
903
|
+
# Corresponds to the JSON property `courseRosterChangesInfo`
|
904
|
+
# @return [Google::Apis::ClassroomV1::CourseRosterChangesInfo]
|
905
|
+
attr_accessor :course_roster_changes_info
|
906
|
+
|
907
|
+
# Information about a `Feed` with a `feed_type` of `COURSE_WORK_CHANGES`.
|
908
|
+
# Corresponds to the JSON property `courseWorkChangesInfo`
|
909
|
+
# @return [Google::Apis::ClassroomV1::CourseWorkChangesInfo]
|
910
|
+
attr_accessor :course_work_changes_info
|
911
|
+
|
912
|
+
# The type of feed.
|
913
|
+
# Corresponds to the JSON property `feedType`
|
914
|
+
# @return [String]
|
915
|
+
attr_accessor :feed_type
|
916
|
+
|
917
|
+
def initialize(**args)
|
918
|
+
update!(**args)
|
919
|
+
end
|
920
|
+
|
921
|
+
# Update properties of this object
|
922
|
+
def update!(**args)
|
923
|
+
@course_roster_changes_info = args[:course_roster_changes_info] if args.key?(:course_roster_changes_info)
|
924
|
+
@course_work_changes_info = args[:course_work_changes_info] if args.key?(:course_work_changes_info)
|
925
|
+
@feed_type = args[:feed_type] if args.key?(:feed_type)
|
926
|
+
end
|
927
|
+
end
|
928
|
+
|
929
|
+
# Google Forms item.
|
930
|
+
class Form
|
931
|
+
include Google::Apis::Core::Hashable
|
932
|
+
|
933
|
+
# URL of the form.
|
934
|
+
# Corresponds to the JSON property `formUrl`
|
935
|
+
# @return [String]
|
936
|
+
attr_accessor :form_url
|
937
|
+
|
938
|
+
# URL of the form responses document. Only set if respsonses have been recorded
|
939
|
+
# and only when the requesting user is an editor of the form. Read-only.
|
940
|
+
# Corresponds to the JSON property `responseUrl`
|
941
|
+
# @return [String]
|
942
|
+
attr_accessor :response_url
|
943
|
+
|
944
|
+
# URL of a thumbnail image of the Form. Read-only.
|
945
|
+
# Corresponds to the JSON property `thumbnailUrl`
|
946
|
+
# @return [String]
|
947
|
+
attr_accessor :thumbnail_url
|
948
|
+
|
949
|
+
# Title of the Form. Read-only.
|
950
|
+
# Corresponds to the JSON property `title`
|
951
|
+
# @return [String]
|
952
|
+
attr_accessor :title
|
953
|
+
|
954
|
+
def initialize(**args)
|
955
|
+
update!(**args)
|
956
|
+
end
|
957
|
+
|
958
|
+
# Update properties of this object
|
959
|
+
def update!(**args)
|
960
|
+
@form_url = args[:form_url] if args.key?(:form_url)
|
961
|
+
@response_url = args[:response_url] if args.key?(:response_url)
|
962
|
+
@thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
|
963
|
+
@title = args[:title] if args.key?(:title)
|
964
|
+
end
|
965
|
+
end
|
966
|
+
|
967
|
+
# Global user permission description.
|
968
|
+
class GlobalPermission
|
969
|
+
include Google::Apis::Core::Hashable
|
970
|
+
|
971
|
+
# Permission value.
|
972
|
+
# Corresponds to the JSON property `permission`
|
973
|
+
# @return [String]
|
974
|
+
attr_accessor :permission
|
975
|
+
|
976
|
+
def initialize(**args)
|
977
|
+
update!(**args)
|
978
|
+
end
|
979
|
+
|
980
|
+
# Update properties of this object
|
981
|
+
def update!(**args)
|
982
|
+
@permission = args[:permission] if args.key?(:permission)
|
983
|
+
end
|
984
|
+
end
|
985
|
+
|
986
|
+
# The history of each grade on this submission.
|
987
|
+
class GradeHistory
|
988
|
+
include Google::Apis::Core::Hashable
|
989
|
+
|
990
|
+
# The teacher who made the grade change.
|
991
|
+
# Corresponds to the JSON property `actorUserId`
|
992
|
+
# @return [String]
|
993
|
+
attr_accessor :actor_user_id
|
994
|
+
|
995
|
+
# The type of grade change at this time in the submission grade history.
|
996
|
+
# Corresponds to the JSON property `gradeChangeType`
|
997
|
+
# @return [String]
|
998
|
+
attr_accessor :grade_change_type
|
999
|
+
|
1000
|
+
# When the grade of the submission was changed.
|
1001
|
+
# Corresponds to the JSON property `gradeTimestamp`
|
1002
|
+
# @return [String]
|
1003
|
+
attr_accessor :grade_timestamp
|
1004
|
+
|
1005
|
+
# The denominator of the grade at this time in the submission grade history.
|
1006
|
+
# Corresponds to the JSON property `maxPoints`
|
1007
|
+
# @return [Float]
|
1008
|
+
attr_accessor :max_points
|
1009
|
+
|
1010
|
+
# The numerator of the grade at this time in the submission grade history.
|
1011
|
+
# Corresponds to the JSON property `pointsEarned`
|
1012
|
+
# @return [Float]
|
1013
|
+
attr_accessor :points_earned
|
1014
|
+
|
1015
|
+
def initialize(**args)
|
1016
|
+
update!(**args)
|
1017
|
+
end
|
1018
|
+
|
1019
|
+
# Update properties of this object
|
1020
|
+
def update!(**args)
|
1021
|
+
@actor_user_id = args[:actor_user_id] if args.key?(:actor_user_id)
|
1022
|
+
@grade_change_type = args[:grade_change_type] if args.key?(:grade_change_type)
|
1023
|
+
@grade_timestamp = args[:grade_timestamp] if args.key?(:grade_timestamp)
|
1024
|
+
@max_points = args[:max_points] if args.key?(:max_points)
|
1025
|
+
@points_earned = args[:points_earned] if args.key?(:points_earned)
|
1026
|
+
end
|
1027
|
+
end
|
1028
|
+
|
1029
|
+
# Association between a student and a guardian of that student. The guardian may
|
1030
|
+
# receive information about the student's course work.
|
1031
|
+
class Guardian
|
1032
|
+
include Google::Apis::Core::Hashable
|
1033
|
+
|
1034
|
+
# Identifier for the guardian.
|
1035
|
+
# Corresponds to the JSON property `guardianId`
|
1036
|
+
# @return [String]
|
1037
|
+
attr_accessor :guardian_id
|
1038
|
+
|
1039
|
+
# Global information for a user.
|
1040
|
+
# Corresponds to the JSON property `guardianProfile`
|
1041
|
+
# @return [Google::Apis::ClassroomV1::UserProfile]
|
1042
|
+
attr_accessor :guardian_profile
|
1043
|
+
|
1044
|
+
# The email address to which the initial guardian invitation was sent. This
|
1045
|
+
# field is only visible to domain administrators.
|
1046
|
+
# Corresponds to the JSON property `invitedEmailAddress`
|
1047
|
+
# @return [String]
|
1048
|
+
attr_accessor :invited_email_address
|
1049
|
+
|
1050
|
+
# Identifier for the student to whom the guardian relationship applies.
|
1051
|
+
# Corresponds to the JSON property `studentId`
|
1052
|
+
# @return [String]
|
1053
|
+
attr_accessor :student_id
|
1054
|
+
|
1055
|
+
def initialize(**args)
|
1056
|
+
update!(**args)
|
1057
|
+
end
|
1058
|
+
|
1059
|
+
# Update properties of this object
|
1060
|
+
def update!(**args)
|
1061
|
+
@guardian_id = args[:guardian_id] if args.key?(:guardian_id)
|
1062
|
+
@guardian_profile = args[:guardian_profile] if args.key?(:guardian_profile)
|
1063
|
+
@invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
|
1064
|
+
@student_id = args[:student_id] if args.key?(:student_id)
|
1065
|
+
end
|
1066
|
+
end
|
1067
|
+
|
1068
|
+
# An invitation to become the guardian of a specified user, sent to a specified
|
1069
|
+
# email address.
|
1070
|
+
class GuardianInvitation
|
1071
|
+
include Google::Apis::Core::Hashable
|
1072
|
+
|
1073
|
+
# The time that this invitation was created. Read-only.
|
1074
|
+
# Corresponds to the JSON property `creationTime`
|
1075
|
+
# @return [String]
|
1076
|
+
attr_accessor :creation_time
|
1077
|
+
|
1078
|
+
# Unique identifier for this invitation. Read-only.
|
1079
|
+
# Corresponds to the JSON property `invitationId`
|
1080
|
+
# @return [String]
|
1081
|
+
attr_accessor :invitation_id
|
1082
|
+
|
1083
|
+
# Email address that the invitation was sent to. This field is only visible to
|
1084
|
+
# domain administrators.
|
1085
|
+
# Corresponds to the JSON property `invitedEmailAddress`
|
1086
|
+
# @return [String]
|
1087
|
+
attr_accessor :invited_email_address
|
1088
|
+
|
1089
|
+
# The state that this invitation is in.
|
1090
|
+
# Corresponds to the JSON property `state`
|
1091
|
+
# @return [String]
|
1092
|
+
attr_accessor :state
|
1093
|
+
|
1094
|
+
# ID of the student (in standard format)
|
1095
|
+
# Corresponds to the JSON property `studentId`
|
1096
|
+
# @return [String]
|
1097
|
+
attr_accessor :student_id
|
1098
|
+
|
1099
|
+
def initialize(**args)
|
1100
|
+
update!(**args)
|
1101
|
+
end
|
1102
|
+
|
1103
|
+
# Update properties of this object
|
1104
|
+
def update!(**args)
|
1105
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
1106
|
+
@invitation_id = args[:invitation_id] if args.key?(:invitation_id)
|
1107
|
+
@invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
|
1108
|
+
@state = args[:state] if args.key?(:state)
|
1109
|
+
@student_id = args[:student_id] if args.key?(:student_id)
|
1110
|
+
end
|
1111
|
+
end
|
1112
|
+
|
1113
|
+
# Assignee details about a coursework/announcement. This field is set if and
|
1114
|
+
# only if `assigneeMode` is `INDIVIDUAL_STUDENTS`.
|
1115
|
+
class IndividualStudentsOptions
|
1116
|
+
include Google::Apis::Core::Hashable
|
1117
|
+
|
1118
|
+
# Identifiers for the students that have access to the coursework/announcement.
|
1119
|
+
# Corresponds to the JSON property `studentIds`
|
1120
|
+
# @return [Array<String>]
|
1121
|
+
attr_accessor :student_ids
|
1122
|
+
|
1123
|
+
def initialize(**args)
|
1124
|
+
update!(**args)
|
1125
|
+
end
|
1126
|
+
|
1127
|
+
# Update properties of this object
|
1128
|
+
def update!(**args)
|
1129
|
+
@student_ids = args[:student_ids] if args.key?(:student_ids)
|
1130
|
+
end
|
1131
|
+
end
|
1132
|
+
|
1133
|
+
# An invitation to join a course.
|
1134
|
+
class Invitation
|
1135
|
+
include Google::Apis::Core::Hashable
|
1136
|
+
|
1137
|
+
# Identifier of the course to invite the user to.
|
1138
|
+
# Corresponds to the JSON property `courseId`
|
1139
|
+
# @return [String]
|
1140
|
+
attr_accessor :course_id
|
1141
|
+
|
1142
|
+
# Identifier assigned by Classroom. Read-only.
|
1143
|
+
# Corresponds to the JSON property `id`
|
1144
|
+
# @return [String]
|
1145
|
+
attr_accessor :id
|
1146
|
+
|
1147
|
+
# Role to invite the user to have. Must not be `COURSE_ROLE_UNSPECIFIED`.
|
1148
|
+
# Corresponds to the JSON property `role`
|
1149
|
+
# @return [String]
|
1150
|
+
attr_accessor :role
|
1151
|
+
|
1152
|
+
# Identifier of the invited user. When specified as a parameter of a request,
|
1153
|
+
# this identifier can be set to one of the following: * the numeric identifier
|
1154
|
+
# for the user * the email address of the user * the string literal `"me"`,
|
1155
|
+
# indicating the requesting user
|
1156
|
+
# Corresponds to the JSON property `userId`
|
1157
|
+
# @return [String]
|
1158
|
+
attr_accessor :user_id
|
1159
|
+
|
1160
|
+
def initialize(**args)
|
1161
|
+
update!(**args)
|
1162
|
+
end
|
1163
|
+
|
1164
|
+
# Update properties of this object
|
1165
|
+
def update!(**args)
|
1166
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
1167
|
+
@id = args[:id] if args.key?(:id)
|
1168
|
+
@role = args[:role] if args.key?(:role)
|
1169
|
+
@user_id = args[:user_id] if args.key?(:user_id)
|
1170
|
+
end
|
1171
|
+
end
|
1172
|
+
|
1173
|
+
# URL item.
|
1174
|
+
class Link
|
1175
|
+
include Google::Apis::Core::Hashable
|
1176
|
+
|
1177
|
+
# URL of a thumbnail image of the target URL. Read-only.
|
1178
|
+
# Corresponds to the JSON property `thumbnailUrl`
|
1179
|
+
# @return [String]
|
1180
|
+
attr_accessor :thumbnail_url
|
1181
|
+
|
1182
|
+
# Title of the target of the URL. Read-only.
|
1183
|
+
# Corresponds to the JSON property `title`
|
1184
|
+
# @return [String]
|
1185
|
+
attr_accessor :title
|
1186
|
+
|
1187
|
+
# URL to link to. This must be a valid UTF-8 string containing between 1 and
|
1188
|
+
# 2024 characters.
|
1189
|
+
# Corresponds to the JSON property `url`
|
1190
|
+
# @return [String]
|
1191
|
+
attr_accessor :url
|
1192
|
+
|
1193
|
+
def initialize(**args)
|
1194
|
+
update!(**args)
|
1195
|
+
end
|
1196
|
+
|
1197
|
+
# Update properties of this object
|
1198
|
+
def update!(**args)
|
1199
|
+
@thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
|
1200
|
+
@title = args[:title] if args.key?(:title)
|
1201
|
+
@url = args[:url] if args.key?(:url)
|
1202
|
+
end
|
1203
|
+
end
|
1204
|
+
|
1205
|
+
# Response when listing course work.
|
1206
|
+
class ListAnnouncementsResponse
|
1207
|
+
include Google::Apis::Core::Hashable
|
1208
|
+
|
1209
|
+
# Announcement items that match the request.
|
1210
|
+
# Corresponds to the JSON property `announcements`
|
1211
|
+
# @return [Array<Google::Apis::ClassroomV1::Announcement>]
|
1212
|
+
attr_accessor :announcements
|
1213
|
+
|
1214
|
+
# Token identifying the next page of results to return. If empty, no further
|
1215
|
+
# results are available.
|
1216
|
+
# Corresponds to the JSON property `nextPageToken`
|
1217
|
+
# @return [String]
|
1218
|
+
attr_accessor :next_page_token
|
1219
|
+
|
1220
|
+
def initialize(**args)
|
1221
|
+
update!(**args)
|
1222
|
+
end
|
1223
|
+
|
1224
|
+
# Update properties of this object
|
1225
|
+
def update!(**args)
|
1226
|
+
@announcements = args[:announcements] if args.key?(:announcements)
|
1227
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1228
|
+
end
|
1229
|
+
end
|
1230
|
+
|
1231
|
+
# Response when listing course aliases.
|
1232
|
+
class ListCourseAliasesResponse
|
1233
|
+
include Google::Apis::Core::Hashable
|
1234
|
+
|
1235
|
+
# The course aliases.
|
1236
|
+
# Corresponds to the JSON property `aliases`
|
1237
|
+
# @return [Array<Google::Apis::ClassroomV1::CourseAlias>]
|
1238
|
+
attr_accessor :aliases
|
1239
|
+
|
1240
|
+
# Token identifying the next page of results to return. If empty, no further
|
1241
|
+
# results are available.
|
1242
|
+
# Corresponds to the JSON property `nextPageToken`
|
1243
|
+
# @return [String]
|
1244
|
+
attr_accessor :next_page_token
|
1245
|
+
|
1246
|
+
def initialize(**args)
|
1247
|
+
update!(**args)
|
1248
|
+
end
|
1249
|
+
|
1250
|
+
# Update properties of this object
|
1251
|
+
def update!(**args)
|
1252
|
+
@aliases = args[:aliases] if args.key?(:aliases)
|
1253
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1254
|
+
end
|
1255
|
+
end
|
1256
|
+
|
1257
|
+
# Response when listing course work material.
|
1258
|
+
class ListCourseWorkMaterialResponse
|
1259
|
+
include Google::Apis::Core::Hashable
|
1260
|
+
|
1261
|
+
# Course work material items that match the request.
|
1262
|
+
# Corresponds to the JSON property `courseWorkMaterial`
|
1263
|
+
# @return [Array<Google::Apis::ClassroomV1::CourseWorkMaterial>]
|
1264
|
+
attr_accessor :course_work_material
|
1265
|
+
|
1266
|
+
# Token identifying the next page of results to return. If empty, no further
|
1267
|
+
# results are available.
|
1268
|
+
# Corresponds to the JSON property `nextPageToken`
|
1269
|
+
# @return [String]
|
1270
|
+
attr_accessor :next_page_token
|
1271
|
+
|
1272
|
+
def initialize(**args)
|
1273
|
+
update!(**args)
|
1274
|
+
end
|
1275
|
+
|
1276
|
+
# Update properties of this object
|
1277
|
+
def update!(**args)
|
1278
|
+
@course_work_material = args[:course_work_material] if args.key?(:course_work_material)
|
1279
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1280
|
+
end
|
1281
|
+
end
|
1282
|
+
|
1283
|
+
# Response when listing course work.
|
1284
|
+
class ListCourseWorkResponse
|
1285
|
+
include Google::Apis::Core::Hashable
|
1286
|
+
|
1287
|
+
# Course work items that match the request.
|
1288
|
+
# Corresponds to the JSON property `courseWork`
|
1289
|
+
# @return [Array<Google::Apis::ClassroomV1::CourseWork>]
|
1290
|
+
attr_accessor :course_work
|
1291
|
+
|
1292
|
+
# Token identifying the next page of results to return. If empty, no further
|
1293
|
+
# results are available.
|
1294
|
+
# Corresponds to the JSON property `nextPageToken`
|
1295
|
+
# @return [String]
|
1296
|
+
attr_accessor :next_page_token
|
1297
|
+
|
1298
|
+
def initialize(**args)
|
1299
|
+
update!(**args)
|
1300
|
+
end
|
1301
|
+
|
1302
|
+
# Update properties of this object
|
1303
|
+
def update!(**args)
|
1304
|
+
@course_work = args[:course_work] if args.key?(:course_work)
|
1305
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1306
|
+
end
|
1307
|
+
end
|
1308
|
+
|
1309
|
+
# Response when listing courses.
|
1310
|
+
class ListCoursesResponse
|
1311
|
+
include Google::Apis::Core::Hashable
|
1312
|
+
|
1313
|
+
# Courses that match the list request.
|
1314
|
+
# Corresponds to the JSON property `courses`
|
1315
|
+
# @return [Array<Google::Apis::ClassroomV1::Course>]
|
1316
|
+
attr_accessor :courses
|
1317
|
+
|
1318
|
+
# Token identifying the next page of results to return. If empty, no further
|
1319
|
+
# results are available.
|
1320
|
+
# Corresponds to the JSON property `nextPageToken`
|
1321
|
+
# @return [String]
|
1322
|
+
attr_accessor :next_page_token
|
1323
|
+
|
1324
|
+
def initialize(**args)
|
1325
|
+
update!(**args)
|
1326
|
+
end
|
1327
|
+
|
1328
|
+
# Update properties of this object
|
1329
|
+
def update!(**args)
|
1330
|
+
@courses = args[:courses] if args.key?(:courses)
|
1331
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1332
|
+
end
|
1333
|
+
end
|
1334
|
+
|
1335
|
+
# Response when listing guardian invitations.
|
1336
|
+
class ListGuardianInvitationsResponse
|
1337
|
+
include Google::Apis::Core::Hashable
|
1338
|
+
|
1339
|
+
# Guardian invitations that matched the list request.
|
1340
|
+
# Corresponds to the JSON property `guardianInvitations`
|
1341
|
+
# @return [Array<Google::Apis::ClassroomV1::GuardianInvitation>]
|
1342
|
+
attr_accessor :guardian_invitations
|
1343
|
+
|
1344
|
+
# Token identifying the next page of results to return. If empty, no further
|
1345
|
+
# results are available.
|
1346
|
+
# Corresponds to the JSON property `nextPageToken`
|
1347
|
+
# @return [String]
|
1348
|
+
attr_accessor :next_page_token
|
1349
|
+
|
1350
|
+
def initialize(**args)
|
1351
|
+
update!(**args)
|
1352
|
+
end
|
1353
|
+
|
1354
|
+
# Update properties of this object
|
1355
|
+
def update!(**args)
|
1356
|
+
@guardian_invitations = args[:guardian_invitations] if args.key?(:guardian_invitations)
|
1357
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1358
|
+
end
|
1359
|
+
end
|
1360
|
+
|
1361
|
+
# Response when listing guardians.
|
1362
|
+
class ListGuardiansResponse
|
1363
|
+
include Google::Apis::Core::Hashable
|
1364
|
+
|
1365
|
+
# Guardians on this page of results that met the criteria specified in the
|
1366
|
+
# request.
|
1367
|
+
# Corresponds to the JSON property `guardians`
|
1368
|
+
# @return [Array<Google::Apis::ClassroomV1::Guardian>]
|
1369
|
+
attr_accessor :guardians
|
1370
|
+
|
1371
|
+
# Token identifying the next page of results to return. If empty, no further
|
1372
|
+
# results are available.
|
1373
|
+
# Corresponds to the JSON property `nextPageToken`
|
1374
|
+
# @return [String]
|
1375
|
+
attr_accessor :next_page_token
|
1376
|
+
|
1377
|
+
def initialize(**args)
|
1378
|
+
update!(**args)
|
1379
|
+
end
|
1380
|
+
|
1381
|
+
# Update properties of this object
|
1382
|
+
def update!(**args)
|
1383
|
+
@guardians = args[:guardians] if args.key?(:guardians)
|
1384
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1385
|
+
end
|
1386
|
+
end
|
1387
|
+
|
1388
|
+
# Response when listing invitations.
|
1389
|
+
class ListInvitationsResponse
|
1390
|
+
include Google::Apis::Core::Hashable
|
1391
|
+
|
1392
|
+
# Invitations that match the list request.
|
1393
|
+
# Corresponds to the JSON property `invitations`
|
1394
|
+
# @return [Array<Google::Apis::ClassroomV1::Invitation>]
|
1395
|
+
attr_accessor :invitations
|
1396
|
+
|
1397
|
+
# Token identifying the next page of results to return. If empty, no further
|
1398
|
+
# results are available.
|
1399
|
+
# Corresponds to the JSON property `nextPageToken`
|
1400
|
+
# @return [String]
|
1401
|
+
attr_accessor :next_page_token
|
1402
|
+
|
1403
|
+
def initialize(**args)
|
1404
|
+
update!(**args)
|
1405
|
+
end
|
1406
|
+
|
1407
|
+
# Update properties of this object
|
1408
|
+
def update!(**args)
|
1409
|
+
@invitations = args[:invitations] if args.key?(:invitations)
|
1410
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1411
|
+
end
|
1412
|
+
end
|
1413
|
+
|
1414
|
+
# Response when listing student submissions.
|
1415
|
+
class ListStudentSubmissionsResponse
|
1416
|
+
include Google::Apis::Core::Hashable
|
1417
|
+
|
1418
|
+
# Token identifying the next page of results to return. If empty, no further
|
1419
|
+
# results are available.
|
1420
|
+
# Corresponds to the JSON property `nextPageToken`
|
1421
|
+
# @return [String]
|
1422
|
+
attr_accessor :next_page_token
|
1423
|
+
|
1424
|
+
# Student work that matches the request.
|
1425
|
+
# Corresponds to the JSON property `studentSubmissions`
|
1426
|
+
# @return [Array<Google::Apis::ClassroomV1::StudentSubmission>]
|
1427
|
+
attr_accessor :student_submissions
|
1428
|
+
|
1429
|
+
def initialize(**args)
|
1430
|
+
update!(**args)
|
1431
|
+
end
|
1432
|
+
|
1433
|
+
# Update properties of this object
|
1434
|
+
def update!(**args)
|
1435
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1436
|
+
@student_submissions = args[:student_submissions] if args.key?(:student_submissions)
|
1437
|
+
end
|
1438
|
+
end
|
1439
|
+
|
1440
|
+
# Response when listing students.
|
1441
|
+
class ListStudentsResponse
|
1442
|
+
include Google::Apis::Core::Hashable
|
1443
|
+
|
1444
|
+
# Token identifying the next page of results to return. If empty, no further
|
1445
|
+
# results are available.
|
1446
|
+
# Corresponds to the JSON property `nextPageToken`
|
1447
|
+
# @return [String]
|
1448
|
+
attr_accessor :next_page_token
|
1449
|
+
|
1450
|
+
# Students who match the list request.
|
1451
|
+
# Corresponds to the JSON property `students`
|
1452
|
+
# @return [Array<Google::Apis::ClassroomV1::Student>]
|
1453
|
+
attr_accessor :students
|
1454
|
+
|
1455
|
+
def initialize(**args)
|
1456
|
+
update!(**args)
|
1457
|
+
end
|
1458
|
+
|
1459
|
+
# Update properties of this object
|
1460
|
+
def update!(**args)
|
1461
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1462
|
+
@students = args[:students] if args.key?(:students)
|
1463
|
+
end
|
1464
|
+
end
|
1465
|
+
|
1466
|
+
# Response when listing teachers.
|
1467
|
+
class ListTeachersResponse
|
1468
|
+
include Google::Apis::Core::Hashable
|
1469
|
+
|
1470
|
+
# Token identifying the next page of results to return. If empty, no further
|
1471
|
+
# results are available.
|
1472
|
+
# Corresponds to the JSON property `nextPageToken`
|
1473
|
+
# @return [String]
|
1474
|
+
attr_accessor :next_page_token
|
1475
|
+
|
1476
|
+
# Teachers who match the list request.
|
1477
|
+
# Corresponds to the JSON property `teachers`
|
1478
|
+
# @return [Array<Google::Apis::ClassroomV1::Teacher>]
|
1479
|
+
attr_accessor :teachers
|
1480
|
+
|
1481
|
+
def initialize(**args)
|
1482
|
+
update!(**args)
|
1483
|
+
end
|
1484
|
+
|
1485
|
+
# Update properties of this object
|
1486
|
+
def update!(**args)
|
1487
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1488
|
+
@teachers = args[:teachers] if args.key?(:teachers)
|
1489
|
+
end
|
1490
|
+
end
|
1491
|
+
|
1492
|
+
# Response when listing topics.
|
1493
|
+
class ListTopicResponse
|
1494
|
+
include Google::Apis::Core::Hashable
|
1495
|
+
|
1496
|
+
# Token identifying the next page of results to return. If empty, no further
|
1497
|
+
# results are available.
|
1498
|
+
# Corresponds to the JSON property `nextPageToken`
|
1499
|
+
# @return [String]
|
1500
|
+
attr_accessor :next_page_token
|
1501
|
+
|
1502
|
+
# Topic items that match the request.
|
1503
|
+
# Corresponds to the JSON property `topic`
|
1504
|
+
# @return [Array<Google::Apis::ClassroomV1::Topic>]
|
1505
|
+
attr_accessor :topic
|
1506
|
+
|
1507
|
+
def initialize(**args)
|
1508
|
+
update!(**args)
|
1509
|
+
end
|
1510
|
+
|
1511
|
+
# Update properties of this object
|
1512
|
+
def update!(**args)
|
1513
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1514
|
+
@topic = args[:topic] if args.key?(:topic)
|
1515
|
+
end
|
1516
|
+
end
|
1517
|
+
|
1518
|
+
# Material attached to course work. When creating attachments, setting the `form`
|
1519
|
+
# field is not supported.
|
1520
|
+
class Material
|
1521
|
+
include Google::Apis::Core::Hashable
|
1522
|
+
|
1523
|
+
# Drive file that is used as material for course work.
|
1524
|
+
# Corresponds to the JSON property `driveFile`
|
1525
|
+
# @return [Google::Apis::ClassroomV1::SharedDriveFile]
|
1526
|
+
attr_accessor :drive_file
|
1527
|
+
|
1528
|
+
# Google Forms item.
|
1529
|
+
# Corresponds to the JSON property `form`
|
1530
|
+
# @return [Google::Apis::ClassroomV1::Form]
|
1531
|
+
attr_accessor :form
|
1532
|
+
|
1533
|
+
# URL item.
|
1534
|
+
# Corresponds to the JSON property `link`
|
1535
|
+
# @return [Google::Apis::ClassroomV1::Link]
|
1536
|
+
attr_accessor :link
|
1537
|
+
|
1538
|
+
# YouTube video item.
|
1539
|
+
# Corresponds to the JSON property `youtubeVideo`
|
1540
|
+
# @return [Google::Apis::ClassroomV1::YouTubeVideo]
|
1541
|
+
attr_accessor :youtube_video
|
1542
|
+
|
1543
|
+
def initialize(**args)
|
1544
|
+
update!(**args)
|
1545
|
+
end
|
1546
|
+
|
1547
|
+
# Update properties of this object
|
1548
|
+
def update!(**args)
|
1549
|
+
@drive_file = args[:drive_file] if args.key?(:drive_file)
|
1550
|
+
@form = args[:form] if args.key?(:form)
|
1551
|
+
@link = args[:link] if args.key?(:link)
|
1552
|
+
@youtube_video = args[:youtube_video] if args.key?(:youtube_video)
|
1553
|
+
end
|
1554
|
+
end
|
1555
|
+
|
1556
|
+
# Request to modify assignee mode and options of an announcement.
|
1557
|
+
class ModifyAnnouncementAssigneesRequest
|
1558
|
+
include Google::Apis::Core::Hashable
|
1559
|
+
|
1560
|
+
# Mode of the announcement describing whether it is accessible by all students
|
1561
|
+
# or specified individual students.
|
1562
|
+
# Corresponds to the JSON property `assigneeMode`
|
1563
|
+
# @return [String]
|
1564
|
+
attr_accessor :assignee_mode
|
1565
|
+
|
1566
|
+
# Contains fields to add or remove students from a course work or announcement
|
1567
|
+
# where the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.
|
1568
|
+
# Corresponds to the JSON property `modifyIndividualStudentsOptions`
|
1569
|
+
# @return [Google::Apis::ClassroomV1::ModifyIndividualStudentsOptions]
|
1570
|
+
attr_accessor :modify_individual_students_options
|
1571
|
+
|
1572
|
+
def initialize(**args)
|
1573
|
+
update!(**args)
|
1574
|
+
end
|
1575
|
+
|
1576
|
+
# Update properties of this object
|
1577
|
+
def update!(**args)
|
1578
|
+
@assignee_mode = args[:assignee_mode] if args.key?(:assignee_mode)
|
1579
|
+
@modify_individual_students_options = args[:modify_individual_students_options] if args.key?(:modify_individual_students_options)
|
1580
|
+
end
|
1581
|
+
end
|
1582
|
+
|
1583
|
+
# Request to modify the attachments of a student submission.
|
1584
|
+
class ModifyAttachmentsRequest
|
1585
|
+
include Google::Apis::Core::Hashable
|
1586
|
+
|
1587
|
+
# Attachments to add. A student submission may not have more than 20 attachments.
|
1588
|
+
# Form attachments are not supported.
|
1589
|
+
# Corresponds to the JSON property `addAttachments`
|
1590
|
+
# @return [Array<Google::Apis::ClassroomV1::Attachment>]
|
1591
|
+
attr_accessor :add_attachments
|
1592
|
+
|
1593
|
+
def initialize(**args)
|
1594
|
+
update!(**args)
|
1595
|
+
end
|
1596
|
+
|
1597
|
+
# Update properties of this object
|
1598
|
+
def update!(**args)
|
1599
|
+
@add_attachments = args[:add_attachments] if args.key?(:add_attachments)
|
1600
|
+
end
|
1601
|
+
end
|
1602
|
+
|
1603
|
+
# Request to modify assignee mode and options of a coursework.
|
1604
|
+
class ModifyCourseWorkAssigneesRequest
|
1605
|
+
include Google::Apis::Core::Hashable
|
1606
|
+
|
1607
|
+
# Mode of the coursework describing whether it will be assigned to all students
|
1608
|
+
# or specified individual students.
|
1609
|
+
# Corresponds to the JSON property `assigneeMode`
|
1610
|
+
# @return [String]
|
1611
|
+
attr_accessor :assignee_mode
|
1612
|
+
|
1613
|
+
# Contains fields to add or remove students from a course work or announcement
|
1614
|
+
# where the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.
|
1615
|
+
# Corresponds to the JSON property `modifyIndividualStudentsOptions`
|
1616
|
+
# @return [Google::Apis::ClassroomV1::ModifyIndividualStudentsOptions]
|
1617
|
+
attr_accessor :modify_individual_students_options
|
1618
|
+
|
1619
|
+
def initialize(**args)
|
1620
|
+
update!(**args)
|
1621
|
+
end
|
1622
|
+
|
1623
|
+
# Update properties of this object
|
1624
|
+
def update!(**args)
|
1625
|
+
@assignee_mode = args[:assignee_mode] if args.key?(:assignee_mode)
|
1626
|
+
@modify_individual_students_options = args[:modify_individual_students_options] if args.key?(:modify_individual_students_options)
|
1627
|
+
end
|
1628
|
+
end
|
1629
|
+
|
1630
|
+
# Contains fields to add or remove students from a course work or announcement
|
1631
|
+
# where the `assigneeMode` is set to `INDIVIDUAL_STUDENTS`.
|
1632
|
+
class ModifyIndividualStudentsOptions
|
1633
|
+
include Google::Apis::Core::Hashable
|
1634
|
+
|
1635
|
+
# IDs of students to be added as having access to this coursework/announcement.
|
1636
|
+
# Corresponds to the JSON property `addStudentIds`
|
1637
|
+
# @return [Array<String>]
|
1638
|
+
attr_accessor :add_student_ids
|
1639
|
+
|
1640
|
+
# IDs of students to be removed from having access to this coursework/
|
1641
|
+
# announcement.
|
1642
|
+
# Corresponds to the JSON property `removeStudentIds`
|
1643
|
+
# @return [Array<String>]
|
1644
|
+
attr_accessor :remove_student_ids
|
1645
|
+
|
1646
|
+
def initialize(**args)
|
1647
|
+
update!(**args)
|
1648
|
+
end
|
1649
|
+
|
1650
|
+
# Update properties of this object
|
1651
|
+
def update!(**args)
|
1652
|
+
@add_student_ids = args[:add_student_ids] if args.key?(:add_student_ids)
|
1653
|
+
@remove_student_ids = args[:remove_student_ids] if args.key?(:remove_student_ids)
|
1654
|
+
end
|
1655
|
+
end
|
1656
|
+
|
1657
|
+
# Additional details for multiple-choice questions.
|
1658
|
+
class MultipleChoiceQuestion
|
1659
|
+
include Google::Apis::Core::Hashable
|
1660
|
+
|
1661
|
+
# Possible choices.
|
1662
|
+
# Corresponds to the JSON property `choices`
|
1663
|
+
# @return [Array<String>]
|
1664
|
+
attr_accessor :choices
|
1665
|
+
|
1666
|
+
def initialize(**args)
|
1667
|
+
update!(**args)
|
1668
|
+
end
|
1669
|
+
|
1670
|
+
# Update properties of this object
|
1671
|
+
def update!(**args)
|
1672
|
+
@choices = args[:choices] if args.key?(:choices)
|
1673
|
+
end
|
1674
|
+
end
|
1675
|
+
|
1676
|
+
# Student work for a multiple-choice question.
|
1677
|
+
class MultipleChoiceSubmission
|
1678
|
+
include Google::Apis::Core::Hashable
|
1679
|
+
|
1680
|
+
# Student's select choice.
|
1681
|
+
# Corresponds to the JSON property `answer`
|
1682
|
+
# @return [String]
|
1683
|
+
attr_accessor :answer
|
1684
|
+
|
1685
|
+
def initialize(**args)
|
1686
|
+
update!(**args)
|
1687
|
+
end
|
1688
|
+
|
1689
|
+
# Update properties of this object
|
1690
|
+
def update!(**args)
|
1691
|
+
@answer = args[:answer] if args.key?(:answer)
|
1692
|
+
end
|
1693
|
+
end
|
1694
|
+
|
1695
|
+
# Details of the user's name.
|
1696
|
+
class Name
|
1697
|
+
include Google::Apis::Core::Hashable
|
1698
|
+
|
1699
|
+
# The user's last name. Read-only.
|
1700
|
+
# Corresponds to the JSON property `familyName`
|
1701
|
+
# @return [String]
|
1702
|
+
attr_accessor :family_name
|
1703
|
+
|
1704
|
+
# The user's full name formed by concatenating the first and last name values.
|
1705
|
+
# Read-only.
|
1706
|
+
# Corresponds to the JSON property `fullName`
|
1707
|
+
# @return [String]
|
1708
|
+
attr_accessor :full_name
|
1709
|
+
|
1710
|
+
# The user's first name. Read-only.
|
1711
|
+
# Corresponds to the JSON property `givenName`
|
1712
|
+
# @return [String]
|
1713
|
+
attr_accessor :given_name
|
1714
|
+
|
1715
|
+
def initialize(**args)
|
1716
|
+
update!(**args)
|
1717
|
+
end
|
1718
|
+
|
1719
|
+
# Update properties of this object
|
1720
|
+
def update!(**args)
|
1721
|
+
@family_name = args[:family_name] if args.key?(:family_name)
|
1722
|
+
@full_name = args[:full_name] if args.key?(:full_name)
|
1723
|
+
@given_name = args[:given_name] if args.key?(:given_name)
|
1724
|
+
end
|
1725
|
+
end
|
1726
|
+
|
1727
|
+
# Request to reclaim a student submission.
|
1728
|
+
class ReclaimStudentSubmissionRequest
|
1729
|
+
include Google::Apis::Core::Hashable
|
1730
|
+
|
1731
|
+
def initialize(**args)
|
1732
|
+
update!(**args)
|
1733
|
+
end
|
1734
|
+
|
1735
|
+
# Update properties of this object
|
1736
|
+
def update!(**args)
|
1737
|
+
end
|
1738
|
+
end
|
1739
|
+
|
1740
|
+
# An instruction to Classroom to send notifications from the `feed` to the
|
1741
|
+
# provided destination.
|
1742
|
+
class Registration
|
1743
|
+
include Google::Apis::Core::Hashable
|
1744
|
+
|
1745
|
+
# A reference to a Cloud Pub/Sub topic. To register for notifications, the owner
|
1746
|
+
# of the topic must grant `classroom-notifications@system.gserviceaccount.com`
|
1747
|
+
# the `projects.topics.publish` permission.
|
1748
|
+
# Corresponds to the JSON property `cloudPubsubTopic`
|
1749
|
+
# @return [Google::Apis::ClassroomV1::CloudPubsubTopic]
|
1750
|
+
attr_accessor :cloud_pubsub_topic
|
1751
|
+
|
1752
|
+
# The time until which the `Registration` is effective. This is a read-only
|
1753
|
+
# field assigned by the server.
|
1754
|
+
# Corresponds to the JSON property `expiryTime`
|
1755
|
+
# @return [String]
|
1756
|
+
attr_accessor :expiry_time
|
1757
|
+
|
1758
|
+
# A class of notifications that an application can register to receive. For
|
1759
|
+
# example: "all roster changes for a domain".
|
1760
|
+
# Corresponds to the JSON property `feed`
|
1761
|
+
# @return [Google::Apis::ClassroomV1::Feed]
|
1762
|
+
attr_accessor :feed
|
1763
|
+
|
1764
|
+
# A server-generated unique identifier for this `Registration`. Read-only.
|
1765
|
+
# Corresponds to the JSON property `registrationId`
|
1766
|
+
# @return [String]
|
1767
|
+
attr_accessor :registration_id
|
1768
|
+
|
1769
|
+
def initialize(**args)
|
1770
|
+
update!(**args)
|
1771
|
+
end
|
1772
|
+
|
1773
|
+
# Update properties of this object
|
1774
|
+
def update!(**args)
|
1775
|
+
@cloud_pubsub_topic = args[:cloud_pubsub_topic] if args.key?(:cloud_pubsub_topic)
|
1776
|
+
@expiry_time = args[:expiry_time] if args.key?(:expiry_time)
|
1777
|
+
@feed = args[:feed] if args.key?(:feed)
|
1778
|
+
@registration_id = args[:registration_id] if args.key?(:registration_id)
|
1779
|
+
end
|
1780
|
+
end
|
1781
|
+
|
1782
|
+
# Request to return a student submission.
|
1783
|
+
class ReturnStudentSubmissionRequest
|
1784
|
+
include Google::Apis::Core::Hashable
|
1785
|
+
|
1786
|
+
def initialize(**args)
|
1787
|
+
update!(**args)
|
1788
|
+
end
|
1789
|
+
|
1790
|
+
# Update properties of this object
|
1791
|
+
def update!(**args)
|
1792
|
+
end
|
1793
|
+
end
|
1794
|
+
|
1795
|
+
# Drive file that is used as material for course work.
|
1796
|
+
class SharedDriveFile
|
1797
|
+
include Google::Apis::Core::Hashable
|
1798
|
+
|
1799
|
+
# Representation of a Google Drive file.
|
1800
|
+
# Corresponds to the JSON property `driveFile`
|
1801
|
+
# @return [Google::Apis::ClassroomV1::DriveFile]
|
1802
|
+
attr_accessor :drive_file
|
1803
|
+
|
1804
|
+
# Mechanism by which students access the Drive item.
|
1805
|
+
# Corresponds to the JSON property `shareMode`
|
1806
|
+
# @return [String]
|
1807
|
+
attr_accessor :share_mode
|
1808
|
+
|
1809
|
+
def initialize(**args)
|
1810
|
+
update!(**args)
|
1811
|
+
end
|
1812
|
+
|
1813
|
+
# Update properties of this object
|
1814
|
+
def update!(**args)
|
1815
|
+
@drive_file = args[:drive_file] if args.key?(:drive_file)
|
1816
|
+
@share_mode = args[:share_mode] if args.key?(:share_mode)
|
1817
|
+
end
|
1818
|
+
end
|
1819
|
+
|
1820
|
+
# Student work for a short answer question.
|
1821
|
+
class ShortAnswerSubmission
|
1822
|
+
include Google::Apis::Core::Hashable
|
1823
|
+
|
1824
|
+
# Student response to a short-answer question.
|
1825
|
+
# Corresponds to the JSON property `answer`
|
1826
|
+
# @return [String]
|
1827
|
+
attr_accessor :answer
|
1828
|
+
|
1829
|
+
def initialize(**args)
|
1830
|
+
update!(**args)
|
1831
|
+
end
|
1832
|
+
|
1833
|
+
# Update properties of this object
|
1834
|
+
def update!(**args)
|
1835
|
+
@answer = args[:answer] if args.key?(:answer)
|
1836
|
+
end
|
1837
|
+
end
|
1838
|
+
|
1839
|
+
# The history of each state this submission has been in.
|
1840
|
+
class StateHistory
|
1841
|
+
include Google::Apis::Core::Hashable
|
1842
|
+
|
1843
|
+
# The teacher or student who made the change.
|
1844
|
+
# Corresponds to the JSON property `actorUserId`
|
1845
|
+
# @return [String]
|
1846
|
+
attr_accessor :actor_user_id
|
1847
|
+
|
1848
|
+
# The workflow pipeline stage.
|
1849
|
+
# Corresponds to the JSON property `state`
|
1850
|
+
# @return [String]
|
1851
|
+
attr_accessor :state
|
1852
|
+
|
1853
|
+
# When the submission entered this state.
|
1854
|
+
# Corresponds to the JSON property `stateTimestamp`
|
1855
|
+
# @return [String]
|
1856
|
+
attr_accessor :state_timestamp
|
1857
|
+
|
1858
|
+
def initialize(**args)
|
1859
|
+
update!(**args)
|
1860
|
+
end
|
1861
|
+
|
1862
|
+
# Update properties of this object
|
1863
|
+
def update!(**args)
|
1864
|
+
@actor_user_id = args[:actor_user_id] if args.key?(:actor_user_id)
|
1865
|
+
@state = args[:state] if args.key?(:state)
|
1866
|
+
@state_timestamp = args[:state_timestamp] if args.key?(:state_timestamp)
|
1867
|
+
end
|
1868
|
+
end
|
1869
|
+
|
1870
|
+
# Student in a course.
|
1871
|
+
class Student
|
1872
|
+
include Google::Apis::Core::Hashable
|
1873
|
+
|
1874
|
+
# Identifier of the course. Read-only.
|
1875
|
+
# Corresponds to the JSON property `courseId`
|
1876
|
+
# @return [String]
|
1877
|
+
attr_accessor :course_id
|
1878
|
+
|
1879
|
+
# Global information for a user.
|
1880
|
+
# Corresponds to the JSON property `profile`
|
1881
|
+
# @return [Google::Apis::ClassroomV1::UserProfile]
|
1882
|
+
attr_accessor :profile
|
1883
|
+
|
1884
|
+
# Representation of a Google Drive folder.
|
1885
|
+
# Corresponds to the JSON property `studentWorkFolder`
|
1886
|
+
# @return [Google::Apis::ClassroomV1::DriveFolder]
|
1887
|
+
attr_accessor :student_work_folder
|
1888
|
+
|
1889
|
+
# Identifier of the user. When specified as a parameter of a request, this
|
1890
|
+
# identifier can be one of the following: * the numeric identifier for the user *
|
1891
|
+
# the email address of the user * the string literal `"me"`, indicating the
|
1892
|
+
# requesting user
|
1893
|
+
# Corresponds to the JSON property `userId`
|
1894
|
+
# @return [String]
|
1895
|
+
attr_accessor :user_id
|
1896
|
+
|
1897
|
+
def initialize(**args)
|
1898
|
+
update!(**args)
|
1899
|
+
end
|
1900
|
+
|
1901
|
+
# Update properties of this object
|
1902
|
+
def update!(**args)
|
1903
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
1904
|
+
@profile = args[:profile] if args.key?(:profile)
|
1905
|
+
@student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
|
1906
|
+
@user_id = args[:user_id] if args.key?(:user_id)
|
1907
|
+
end
|
1908
|
+
end
|
1909
|
+
|
1910
|
+
# Student submission for course work. StudentSubmission items are generated when
|
1911
|
+
# a CourseWork item is created. StudentSubmissions that have never been accessed
|
1912
|
+
# (i.e. with `state` = NEW) may not have a creation time or update time.
|
1913
|
+
class StudentSubmission
|
1914
|
+
include Google::Apis::Core::Hashable
|
1915
|
+
|
1916
|
+
# Absolute link to the submission in the Classroom web UI. Read-only.
|
1917
|
+
# Corresponds to the JSON property `alternateLink`
|
1918
|
+
# @return [String]
|
1919
|
+
attr_accessor :alternate_link
|
1920
|
+
|
1921
|
+
# Optional grade. If unset, no grade was set. This value must be non-negative.
|
1922
|
+
# Decimal (that is, non-integer) values are allowed, but are rounded to two
|
1923
|
+
# decimal places. This may be modified only by course teachers.
|
1924
|
+
# Corresponds to the JSON property `assignedGrade`
|
1925
|
+
# @return [Float]
|
1926
|
+
attr_accessor :assigned_grade
|
1927
|
+
|
1928
|
+
# Student work for an assignment.
|
1929
|
+
# Corresponds to the JSON property `assignmentSubmission`
|
1930
|
+
# @return [Google::Apis::ClassroomV1::AssignmentSubmission]
|
1931
|
+
attr_accessor :assignment_submission
|
1932
|
+
|
1933
|
+
# Whether this student submission is associated with the Developer Console
|
1934
|
+
# project making the request. See CreateCourseWork for more details. Read-only.
|
1935
|
+
# Corresponds to the JSON property `associatedWithDeveloper`
|
1936
|
+
# @return [Boolean]
|
1937
|
+
attr_accessor :associated_with_developer
|
1938
|
+
alias_method :associated_with_developer?, :associated_with_developer
|
1939
|
+
|
1940
|
+
# Identifier of the course. Read-only.
|
1941
|
+
# Corresponds to the JSON property `courseId`
|
1942
|
+
# @return [String]
|
1943
|
+
attr_accessor :course_id
|
1944
|
+
|
1945
|
+
# Identifier for the course work this corresponds to. Read-only.
|
1946
|
+
# Corresponds to the JSON property `courseWorkId`
|
1947
|
+
# @return [String]
|
1948
|
+
attr_accessor :course_work_id
|
1949
|
+
|
1950
|
+
# Type of course work this submission is for. Read-only.
|
1951
|
+
# Corresponds to the JSON property `courseWorkType`
|
1952
|
+
# @return [String]
|
1953
|
+
attr_accessor :course_work_type
|
1954
|
+
|
1955
|
+
# Creation time of this submission. This may be unset if the student has not
|
1956
|
+
# accessed this item. Read-only.
|
1957
|
+
# Corresponds to the JSON property `creationTime`
|
1958
|
+
# @return [String]
|
1959
|
+
attr_accessor :creation_time
|
1960
|
+
|
1961
|
+
# Optional pending grade. If unset, no grade was set. This value must be non-
|
1962
|
+
# negative. Decimal (that is, non-integer) values are allowed, but are rounded
|
1963
|
+
# to two decimal places. This is only visible to and modifiable by course
|
1964
|
+
# teachers.
|
1965
|
+
# Corresponds to the JSON property `draftGrade`
|
1966
|
+
# @return [Float]
|
1967
|
+
attr_accessor :draft_grade
|
1968
|
+
|
1969
|
+
# Classroom-assigned Identifier for the student submission. This is unique among
|
1970
|
+
# submissions for the relevant course work. Read-only.
|
1971
|
+
# Corresponds to the JSON property `id`
|
1972
|
+
# @return [String]
|
1973
|
+
attr_accessor :id
|
1974
|
+
|
1975
|
+
# Whether this submission is late. Read-only.
|
1976
|
+
# Corresponds to the JSON property `late`
|
1977
|
+
# @return [Boolean]
|
1978
|
+
attr_accessor :late
|
1979
|
+
alias_method :late?, :late
|
1980
|
+
|
1981
|
+
# Student work for a multiple-choice question.
|
1982
|
+
# Corresponds to the JSON property `multipleChoiceSubmission`
|
1983
|
+
# @return [Google::Apis::ClassroomV1::MultipleChoiceSubmission]
|
1984
|
+
attr_accessor :multiple_choice_submission
|
1985
|
+
|
1986
|
+
# Student work for a short answer question.
|
1987
|
+
# Corresponds to the JSON property `shortAnswerSubmission`
|
1988
|
+
# @return [Google::Apis::ClassroomV1::ShortAnswerSubmission]
|
1989
|
+
attr_accessor :short_answer_submission
|
1990
|
+
|
1991
|
+
# State of this submission. Read-only.
|
1992
|
+
# Corresponds to the JSON property `state`
|
1993
|
+
# @return [String]
|
1994
|
+
attr_accessor :state
|
1995
|
+
|
1996
|
+
# The history of the submission (includes state and grade histories). Read-only.
|
1997
|
+
# Corresponds to the JSON property `submissionHistory`
|
1998
|
+
# @return [Array<Google::Apis::ClassroomV1::SubmissionHistory>]
|
1999
|
+
attr_accessor :submission_history
|
2000
|
+
|
2001
|
+
# Last update time of this submission. This may be unset if the student has not
|
2002
|
+
# accessed this item. Read-only.
|
2003
|
+
# Corresponds to the JSON property `updateTime`
|
2004
|
+
# @return [String]
|
2005
|
+
attr_accessor :update_time
|
2006
|
+
|
2007
|
+
# Identifier for the student that owns this submission. Read-only.
|
2008
|
+
# Corresponds to the JSON property `userId`
|
2009
|
+
# @return [String]
|
2010
|
+
attr_accessor :user_id
|
2011
|
+
|
2012
|
+
def initialize(**args)
|
2013
|
+
update!(**args)
|
2014
|
+
end
|
2015
|
+
|
2016
|
+
# Update properties of this object
|
2017
|
+
def update!(**args)
|
2018
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
2019
|
+
@assigned_grade = args[:assigned_grade] if args.key?(:assigned_grade)
|
2020
|
+
@assignment_submission = args[:assignment_submission] if args.key?(:assignment_submission)
|
2021
|
+
@associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
|
2022
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
2023
|
+
@course_work_id = args[:course_work_id] if args.key?(:course_work_id)
|
2024
|
+
@course_work_type = args[:course_work_type] if args.key?(:course_work_type)
|
2025
|
+
@creation_time = args[:creation_time] if args.key?(:creation_time)
|
2026
|
+
@draft_grade = args[:draft_grade] if args.key?(:draft_grade)
|
2027
|
+
@id = args[:id] if args.key?(:id)
|
2028
|
+
@late = args[:late] if args.key?(:late)
|
2029
|
+
@multiple_choice_submission = args[:multiple_choice_submission] if args.key?(:multiple_choice_submission)
|
2030
|
+
@short_answer_submission = args[:short_answer_submission] if args.key?(:short_answer_submission)
|
2031
|
+
@state = args[:state] if args.key?(:state)
|
2032
|
+
@submission_history = args[:submission_history] if args.key?(:submission_history)
|
2033
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2034
|
+
@user_id = args[:user_id] if args.key?(:user_id)
|
2035
|
+
end
|
2036
|
+
end
|
2037
|
+
|
2038
|
+
# The history of the submission. This currently includes state and grade
|
2039
|
+
# histories.
|
2040
|
+
class SubmissionHistory
|
2041
|
+
include Google::Apis::Core::Hashable
|
2042
|
+
|
2043
|
+
# The history of each grade on this submission.
|
2044
|
+
# Corresponds to the JSON property `gradeHistory`
|
2045
|
+
# @return [Google::Apis::ClassroomV1::GradeHistory]
|
2046
|
+
attr_accessor :grade_history
|
2047
|
+
|
2048
|
+
# The history of each state this submission has been in.
|
2049
|
+
# Corresponds to the JSON property `stateHistory`
|
2050
|
+
# @return [Google::Apis::ClassroomV1::StateHistory]
|
2051
|
+
attr_accessor :state_history
|
2052
|
+
|
2053
|
+
def initialize(**args)
|
2054
|
+
update!(**args)
|
2055
|
+
end
|
2056
|
+
|
2057
|
+
# Update properties of this object
|
2058
|
+
def update!(**args)
|
2059
|
+
@grade_history = args[:grade_history] if args.key?(:grade_history)
|
2060
|
+
@state_history = args[:state_history] if args.key?(:state_history)
|
2061
|
+
end
|
2062
|
+
end
|
2063
|
+
|
2064
|
+
# Teacher of a course.
|
2065
|
+
class Teacher
|
2066
|
+
include Google::Apis::Core::Hashable
|
2067
|
+
|
2068
|
+
# Identifier of the course. Read-only.
|
2069
|
+
# Corresponds to the JSON property `courseId`
|
2070
|
+
# @return [String]
|
2071
|
+
attr_accessor :course_id
|
2072
|
+
|
2073
|
+
# Global information for a user.
|
2074
|
+
# Corresponds to the JSON property `profile`
|
2075
|
+
# @return [Google::Apis::ClassroomV1::UserProfile]
|
2076
|
+
attr_accessor :profile
|
2077
|
+
|
2078
|
+
# Identifier of the user. When specified as a parameter of a request, this
|
2079
|
+
# identifier can be one of the following: * the numeric identifier for the user *
|
2080
|
+
# the email address of the user * the string literal `"me"`, indicating the
|
2081
|
+
# requesting user
|
2082
|
+
# Corresponds to the JSON property `userId`
|
2083
|
+
# @return [String]
|
2084
|
+
attr_accessor :user_id
|
2085
|
+
|
2086
|
+
def initialize(**args)
|
2087
|
+
update!(**args)
|
2088
|
+
end
|
2089
|
+
|
2090
|
+
# Update properties of this object
|
2091
|
+
def update!(**args)
|
2092
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
2093
|
+
@profile = args[:profile] if args.key?(:profile)
|
2094
|
+
@user_id = args[:user_id] if args.key?(:user_id)
|
2095
|
+
end
|
2096
|
+
end
|
2097
|
+
|
2098
|
+
# Represents a time of day. The date and time zone are either not significant or
|
2099
|
+
# are specified elsewhere. An API may choose to allow leap seconds. Related
|
2100
|
+
# types are google.type.Date and `google.protobuf.Timestamp`.
|
2101
|
+
class TimeOfDay
|
2102
|
+
include Google::Apis::Core::Hashable
|
2103
|
+
|
2104
|
+
# Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
|
2105
|
+
# allow the value "24:00:00" for scenarios like business closing time.
|
2106
|
+
# Corresponds to the JSON property `hours`
|
2107
|
+
# @return [Fixnum]
|
2108
|
+
attr_accessor :hours
|
2109
|
+
|
2110
|
+
# Minutes of hour of day. Must be from 0 to 59.
|
2111
|
+
# Corresponds to the JSON property `minutes`
|
2112
|
+
# @return [Fixnum]
|
2113
|
+
attr_accessor :minutes
|
2114
|
+
|
2115
|
+
# Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
|
2116
|
+
# Corresponds to the JSON property `nanos`
|
2117
|
+
# @return [Fixnum]
|
2118
|
+
attr_accessor :nanos
|
2119
|
+
|
2120
|
+
# Seconds of minutes of the time. Must normally be from 0 to 59. An API may
|
2121
|
+
# allow the value 60 if it allows leap-seconds.
|
2122
|
+
# Corresponds to the JSON property `seconds`
|
2123
|
+
# @return [Fixnum]
|
2124
|
+
attr_accessor :seconds
|
2125
|
+
|
2126
|
+
def initialize(**args)
|
2127
|
+
update!(**args)
|
2128
|
+
end
|
2129
|
+
|
2130
|
+
# Update properties of this object
|
2131
|
+
def update!(**args)
|
2132
|
+
@hours = args[:hours] if args.key?(:hours)
|
2133
|
+
@minutes = args[:minutes] if args.key?(:minutes)
|
2134
|
+
@nanos = args[:nanos] if args.key?(:nanos)
|
2135
|
+
@seconds = args[:seconds] if args.key?(:seconds)
|
2136
|
+
end
|
2137
|
+
end
|
2138
|
+
|
2139
|
+
# Topic created by a teacher for the course
|
2140
|
+
class Topic
|
2141
|
+
include Google::Apis::Core::Hashable
|
2142
|
+
|
2143
|
+
# Identifier of the course. Read-only.
|
2144
|
+
# Corresponds to the JSON property `courseId`
|
2145
|
+
# @return [String]
|
2146
|
+
attr_accessor :course_id
|
2147
|
+
|
2148
|
+
# The name of the topic, generated by the user. Leading and trailing whitespaces,
|
2149
|
+
# if any, are trimmed. Also, multiple consecutive whitespaces are collapsed
|
2150
|
+
# into one inside the name. The result must be a non-empty string. Topic names
|
2151
|
+
# are case sensitive, and must be no longer than 100 characters.
|
2152
|
+
# Corresponds to the JSON property `name`
|
2153
|
+
# @return [String]
|
2154
|
+
attr_accessor :name
|
2155
|
+
|
2156
|
+
# Unique identifier for the topic. Read-only.
|
2157
|
+
# Corresponds to the JSON property `topicId`
|
2158
|
+
# @return [String]
|
2159
|
+
attr_accessor :topic_id
|
2160
|
+
|
2161
|
+
# The time the topic was last updated by the system. Read-only.
|
2162
|
+
# Corresponds to the JSON property `updateTime`
|
2163
|
+
# @return [String]
|
2164
|
+
attr_accessor :update_time
|
2165
|
+
|
2166
|
+
def initialize(**args)
|
2167
|
+
update!(**args)
|
2168
|
+
end
|
2169
|
+
|
2170
|
+
# Update properties of this object
|
2171
|
+
def update!(**args)
|
2172
|
+
@course_id = args[:course_id] if args.key?(:course_id)
|
2173
|
+
@name = args[:name] if args.key?(:name)
|
2174
|
+
@topic_id = args[:topic_id] if args.key?(:topic_id)
|
2175
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2176
|
+
end
|
2177
|
+
end
|
2178
|
+
|
2179
|
+
# Request to turn in a student submission.
|
2180
|
+
class TurnInStudentSubmissionRequest
|
2181
|
+
include Google::Apis::Core::Hashable
|
2182
|
+
|
2183
|
+
def initialize(**args)
|
2184
|
+
update!(**args)
|
2185
|
+
end
|
2186
|
+
|
2187
|
+
# Update properties of this object
|
2188
|
+
def update!(**args)
|
2189
|
+
end
|
2190
|
+
end
|
2191
|
+
|
2192
|
+
# Global information for a user.
|
2193
|
+
class UserProfile
|
2194
|
+
include Google::Apis::Core::Hashable
|
2195
|
+
|
2196
|
+
# Email address of the user. Read-only.
|
2197
|
+
# Corresponds to the JSON property `emailAddress`
|
2198
|
+
# @return [String]
|
2199
|
+
attr_accessor :email_address
|
2200
|
+
|
2201
|
+
# Identifier of the user. Read-only.
|
2202
|
+
# Corresponds to the JSON property `id`
|
2203
|
+
# @return [String]
|
2204
|
+
attr_accessor :id
|
2205
|
+
|
2206
|
+
# Details of the user's name.
|
2207
|
+
# Corresponds to the JSON property `name`
|
2208
|
+
# @return [Google::Apis::ClassroomV1::Name]
|
2209
|
+
attr_accessor :name
|
2210
|
+
|
2211
|
+
# Global permissions of the user. Read-only.
|
2212
|
+
# Corresponds to the JSON property `permissions`
|
2213
|
+
# @return [Array<Google::Apis::ClassroomV1::GlobalPermission>]
|
2214
|
+
attr_accessor :permissions
|
2215
|
+
|
2216
|
+
# URL of user's profile photo. Read-only.
|
2217
|
+
# Corresponds to the JSON property `photoUrl`
|
2218
|
+
# @return [String]
|
2219
|
+
attr_accessor :photo_url
|
2220
|
+
|
2221
|
+
# Represents whether a G Suite for Education user's domain administrator has
|
2222
|
+
# explicitly verified them as being a teacher. If the user is not a member of a
|
2223
|
+
# G Suite for Education domain, than this field is always false. Read-only
|
2224
|
+
# Corresponds to the JSON property `verifiedTeacher`
|
2225
|
+
# @return [Boolean]
|
2226
|
+
attr_accessor :verified_teacher
|
2227
|
+
alias_method :verified_teacher?, :verified_teacher
|
2228
|
+
|
2229
|
+
def initialize(**args)
|
2230
|
+
update!(**args)
|
2231
|
+
end
|
2232
|
+
|
2233
|
+
# Update properties of this object
|
2234
|
+
def update!(**args)
|
2235
|
+
@email_address = args[:email_address] if args.key?(:email_address)
|
2236
|
+
@id = args[:id] if args.key?(:id)
|
2237
|
+
@name = args[:name] if args.key?(:name)
|
2238
|
+
@permissions = args[:permissions] if args.key?(:permissions)
|
2239
|
+
@photo_url = args[:photo_url] if args.key?(:photo_url)
|
2240
|
+
@verified_teacher = args[:verified_teacher] if args.key?(:verified_teacher)
|
2241
|
+
end
|
2242
|
+
end
|
2243
|
+
|
2244
|
+
# YouTube video item.
|
2245
|
+
class YouTubeVideo
|
2246
|
+
include Google::Apis::Core::Hashable
|
2247
|
+
|
2248
|
+
# URL that can be used to view the YouTube video. Read-only.
|
2249
|
+
# Corresponds to the JSON property `alternateLink`
|
2250
|
+
# @return [String]
|
2251
|
+
attr_accessor :alternate_link
|
2252
|
+
|
2253
|
+
# YouTube API resource ID.
|
2254
|
+
# Corresponds to the JSON property `id`
|
2255
|
+
# @return [String]
|
2256
|
+
attr_accessor :id
|
2257
|
+
|
2258
|
+
# URL of a thumbnail image of the YouTube video. Read-only.
|
2259
|
+
# Corresponds to the JSON property `thumbnailUrl`
|
2260
|
+
# @return [String]
|
2261
|
+
attr_accessor :thumbnail_url
|
2262
|
+
|
2263
|
+
# Title of the YouTube video. Read-only.
|
2264
|
+
# Corresponds to the JSON property `title`
|
2265
|
+
# @return [String]
|
2266
|
+
attr_accessor :title
|
2267
|
+
|
2268
|
+
def initialize(**args)
|
2269
|
+
update!(**args)
|
2270
|
+
end
|
2271
|
+
|
2272
|
+
# Update properties of this object
|
2273
|
+
def update!(**args)
|
2274
|
+
@alternate_link = args[:alternate_link] if args.key?(:alternate_link)
|
2275
|
+
@id = args[:id] if args.key?(:id)
|
2276
|
+
@thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
|
2277
|
+
@title = args[:title] if args.key?(:title)
|
2278
|
+
end
|
2279
|
+
end
|
2280
|
+
end
|
2281
|
+
end
|
2282
|
+
end
|