google-api-client 0.10.0 → 0.10.1

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