google-api-client 0.8.7 → 0.9.pre1

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 (397) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +21 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +6 -3
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +28 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +158 -150
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +872 -0
  15. data/api_names_out.yaml +20843 -0
  16. data/bin/generate-api +93 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1124 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +375 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +893 -0
  21. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  22. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  23. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +309 -0
  24. data/generated/google/apis/adexchangeseller_v2_0/service.rb +682 -0
  25. data/generated/google/apis/admin_directory_v1.rb +89 -0
  26. data/generated/google/apis/admin_directory_v1/classes.rb +2389 -0
  27. data/generated/google/apis/admin_directory_v1/representations.rb +780 -0
  28. data/generated/google/apis/admin_directory_v1/service.rb +2805 -0
  29. data/generated/google/apis/admin_reports_v1.rb +38 -0
  30. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  31. data/generated/google/apis/admin_reports_v1/representations.rb +231 -0
  32. data/generated/google/apis/admin_reports_v1/service.rb +341 -0
  33. data/generated/google/apis/adsense_v1_4.rb +38 -0
  34. data/generated/google/apis/adsense_v1_4/classes.rb +1279 -0
  35. data/generated/google/apis/adsense_v1_4/representations.rb +493 -0
  36. data/generated/google/apis/adsense_v1_4/service.rb +1752 -0
  37. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  38. data/generated/google/apis/adsensehost_v4_1/classes.rb +834 -0
  39. data/generated/google/apis/adsensehost_v4_1/representations.rb +327 -0
  40. data/generated/google/apis/adsensehost_v4_1/service.rb +1190 -0
  41. data/generated/google/apis/analytics_v3.rb +49 -0
  42. data/generated/google/apis/analytics_v3/classes.rb +5113 -0
  43. data/generated/google/apis/analytics_v3/representations.rb +1661 -0
  44. data/generated/google/apis/analytics_v3/service.rb +3600 -0
  45. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  46. data/generated/google/apis/androidenterprise_v1/classes.rb +1162 -0
  47. data/generated/google/apis/androidenterprise_v1/representations.rb +431 -0
  48. data/generated/google/apis/androidenterprise_v1/service.rb +1979 -0
  49. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  50. data/generated/google/apis/androidpublisher_v2/classes.rb +1374 -0
  51. data/generated/google/apis/androidpublisher_v2/representations.rb +630 -0
  52. data/generated/google/apis/androidpublisher_v2/service.rb +2390 -0
  53. data/generated/google/apis/appsactivity_v1.rb +46 -0
  54. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  55. data/generated/google/apis/appsactivity_v1/representations.rb +184 -0
  56. data/generated/google/apis/appsactivity_v1/service.rb +129 -0
  57. data/generated/google/apis/appstate_v1.rb +34 -0
  58. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  59. data/generated/google/apis/appstate_v1/representations.rb +79 -0
  60. data/generated/google/apis/appstate_v1/service.rb +265 -0
  61. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  62. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  63. data/generated/google/apis/autoscaler_v1beta2/representations.rb +281 -0
  64. data/generated/google/apis/autoscaler_v1beta2/service.rb +488 -0
  65. data/generated/google/apis/bigquery_v2.rb +49 -0
  66. data/generated/google/apis/bigquery_v2/classes.rb +2255 -0
  67. data/generated/google/apis/bigquery_v2/representations.rb +754 -0
  68. data/generated/google/apis/bigquery_v2/service.rb +1003 -0
  69. data/generated/google/apis/blogger_v3.rb +37 -0
  70. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  71. data/generated/google/apis/blogger_v3/representations.rb +562 -0
  72. data/generated/google/apis/blogger_v3/service.rb +1620 -0
  73. data/generated/google/apis/books_v1.rb +34 -0
  74. data/generated/google/apis/books_v1/classes.rb +3515 -0
  75. data/generated/google/apis/books_v1/representations.rb +1361 -0
  76. data/generated/google/apis/books_v1/service.rb +2170 -0
  77. data/generated/google/apis/calendar_v3.rb +37 -0
  78. data/generated/google/apis/calendar_v3/classes.rb +1702 -0
  79. data/generated/google/apis/calendar_v3/representations.rb +566 -0
  80. data/generated/google/apis/calendar_v3/service.rb +1943 -0
  81. data/generated/google/apis/civicinfo_v2.rb +31 -0
  82. data/generated/google/apis/civicinfo_v2/classes.rb +1057 -0
  83. data/generated/google/apis/civicinfo_v2/representations.rb +374 -0
  84. data/generated/google/apis/civicinfo_v2/service.rb +284 -0
  85. data/generated/google/apis/cloudmonitoring_v2beta2.rb +34 -0
  86. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  87. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +311 -0
  88. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +458 -0
  89. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  90. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +139 -0
  91. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +65 -0
  92. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +301 -0
  93. data/generated/google/apis/compute_v1.rb +49 -0
  94. data/generated/google/apis/compute_v1/classes.rb +6391 -0
  95. data/generated/google/apis/compute_v1/representations.rb +2209 -0
  96. data/generated/google/apis/compute_v1/service.rb +6352 -0
  97. data/generated/google/apis/container_v1beta1.rb +35 -0
  98. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  99. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  100. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  101. data/generated/google/apis/content_v2.rb +35 -0
  102. data/generated/google/apis/content_v2/classes.rb +3780 -0
  103. data/generated/google/apis/content_v2/representations.rb +1456 -0
  104. data/generated/google/apis/content_v2/service.rb +1706 -0
  105. data/generated/google/apis/coordinate_v1.rb +37 -0
  106. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  107. data/generated/google/apis/coordinate_v1/representations.rb +285 -0
  108. data/generated/google/apis/coordinate_v1/service.rb +687 -0
  109. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  110. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  111. data/generated/google/apis/customsearch_v1/representations.rb +276 -0
  112. data/generated/google/apis/customsearch_v1/service.rb +208 -0
  113. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  114. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  115. data/generated/google/apis/datastore_v1beta2/representations.rb +526 -0
  116. data/generated/google/apis/datastore_v1beta2/service.rb +300 -0
  117. data/generated/google/apis/deploymentmanager_v2beta2.rb +41 -0
  118. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +820 -0
  119. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +303 -0
  120. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +647 -0
  121. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  122. data/generated/google/apis/dfareporting_v2_1/classes.rb +10755 -0
  123. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  124. data/generated/google/apis/dfareporting_v2_1/service.rb +8775 -0
  125. data/generated/google/apis/discovery_v1.rb +32 -0
  126. data/generated/google/apis/discovery_v1/classes.rb +947 -0
  127. data/generated/google/apis/discovery_v1/representations.rb +355 -0
  128. data/generated/google/apis/discovery_v1/service.rb +144 -0
  129. data/generated/google/apis/dns_v1.rb +41 -0
  130. data/generated/google/apis/dns_v1/classes.rb +406 -0
  131. data/generated/google/apis/dns_v1/representations.rb +151 -0
  132. data/generated/google/apis/dns_v1/service.rb +460 -0
  133. data/{spec/google/api_client/request_spec.rb → generated/google/apis/doubleclickbidmanager_v1.rb} +15 -13
  134. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +709 -0
  135. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +297 -0
  136. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +349 -0
  137. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  138. data/generated/google/apis/doubleclicksearch_v2/classes.rb +947 -0
  139. data/generated/google/apis/doubleclicksearch_v2/representations.rb +315 -0
  140. data/generated/google/apis/doubleclicksearch_v2/service.rb +490 -0
  141. data/generated/google/apis/drive_v2.rb +55 -0
  142. data/generated/google/apis/drive_v2/classes.rb +2519 -0
  143. data/generated/google/apis/drive_v2/representations.rb +781 -0
  144. data/generated/google/apis/drive_v2/service.rb +2685 -0
  145. data/generated/google/apis/fitness_v1.rb +49 -0
  146. data/generated/google/apis/fitness_v1/classes.rb +809 -0
  147. data/generated/google/apis/fitness_v1/representations.rb +295 -0
  148. data/generated/google/apis/fitness_v1/service.rb +684 -0
  149. data/generated/google/apis/fusiontables_v2.rb +37 -0
  150. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  151. data/generated/google/apis/fusiontables_v2/representations.rb +409 -0
  152. data/generated/google/apis/fusiontables_v2/service.rb +1496 -0
  153. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  154. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  155. data/generated/google/apis/games_configuration_v1configuration/representations.rb +206 -0
  156. data/generated/google/apis/games_configuration_v1configuration/service.rb +578 -0
  157. data/generated/google/apis/games_v1.rb +40 -0
  158. data/generated/google/apis/games_v1/classes.rb +4578 -0
  159. data/generated/google/apis/games_v1/representations.rb +1570 -0
  160. data/generated/google/apis/games_v1/service.rb +2306 -0
  161. data/generated/google/apis/gan_v1beta1.rb +31 -0
  162. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  163. data/generated/google/apis/gan_v1beta1/representations.rb +428 -0
  164. data/generated/google/apis/gan_v1beta1/service.rb +692 -0
  165. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  166. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  167. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  168. data/generated/google/apis/genomics_v1beta2/service.rb +2356 -0
  169. data/generated/google/apis/gmail_v1.rb +49 -0
  170. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  171. data/generated/google/apis/gmail_v1/representations.rb +339 -0
  172. data/generated/google/apis/gmail_v1/service.rb +1502 -0
  173. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  174. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  175. data/generated/google/apis/groupsmigration_v1/representations.rb +38 -0
  176. data/generated/google/apis/groupsmigration_v1/service.rb +111 -0
  177. data/generated/google/apis/groupssettings_v1.rb +34 -0
  178. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  179. data/generated/google/apis/groupssettings_v1/representations.rb +64 -0
  180. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  181. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  182. data/generated/google/apis/identitytoolkit_v3/classes.rb +1229 -0
  183. data/generated/google/apis/identitytoolkit_v3/representations.rb +422 -0
  184. data/generated/google/apis/identitytoolkit_v3/service.rb +491 -0
  185. data/generated/google/apis/licensing_v1.rb +34 -0
  186. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  187. data/generated/google/apis/licensing_v1/representations.rb +68 -0
  188. data/generated/google/apis/licensing_v1/service.rb +376 -0
  189. data/generated/google/apis/logging_v1beta3.rb +35 -0
  190. data/generated/google/apis/logging_v1beta3/classes.rb +505 -0
  191. data/generated/google/apis/logging_v1beta3/representations.rb +222 -0
  192. data/generated/google/apis/logging_v1beta3/service.rb +670 -0
  193. data/generated/google/apis/manager_v1beta2.rb +50 -0
  194. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  195. data/generated/google/apis/manager_v1beta2/representations.rb +536 -0
  196. data/generated/google/apis/manager_v1beta2/service.rb +380 -0
  197. data/generated/google/apis/mapsengine_v1.rb +38 -0
  198. data/generated/google/apis/mapsengine_v1/classes.rb +2873 -0
  199. data/generated/google/apis/mapsengine_v1/representations.rb +1235 -0
  200. data/generated/google/apis/mapsengine_v1/service.rb +3465 -0
  201. data/generated/google/apis/mirror_v1.rb +37 -0
  202. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  203. data/generated/google/apis/mirror_v1/representations.rb +350 -0
  204. data/generated/google/apis/mirror_v1/service.rb +1001 -0
  205. data/generated/google/apis/oauth2_v2.rb +43 -0
  206. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  207. data/generated/google/apis/oauth2_v2/representations.rb +94 -0
  208. data/generated/google/apis/oauth2_v2/service.rb +203 -0
  209. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  210. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  211. data/generated/google/apis/pagespeedonline_v2/representations.rb +244 -0
  212. data/generated/google/apis/pagespeedonline_v2/service.rb +120 -0
  213. data/generated/google/apis/plus_domains_v1.rb +61 -0
  214. data/generated/google/apis/plus_domains_v1/classes.rb +2402 -0
  215. data/generated/google/apis/plus_domains_v1/representations.rb +873 -0
  216. data/generated/google/apis/plus_domains_v1/service.rb +924 -0
  217. data/generated/google/apis/plus_v1.rb +43 -0
  218. data/generated/google/apis/plus_v1/classes.rb +2384 -0
  219. data/generated/google/apis/plus_v1/representations.rb +812 -0
  220. data/generated/google/apis/plus_v1/service.rb +616 -0
  221. data/generated/google/apis/prediction_v1_6.rb +44 -0
  222. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  223. data/generated/google/apis/prediction_v1_6/representations.rb +327 -0
  224. data/generated/google/apis/prediction_v1_6/service.rb +388 -0
  225. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  226. data/generated/google/apis/pubsub_v1beta2/classes.rb +824 -0
  227. data/generated/google/apis/pubsub_v1beta2/representations.rb +366 -0
  228. data/generated/google/apis/pubsub_v1beta2/service.rb +778 -0
  229. data/generated/google/apis/qpx_express_v1.rb +31 -0
  230. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  231. data/generated/google/apis/qpx_express_v1/representations.rb +424 -0
  232. data/generated/google/apis/qpx_express_v1/service.rb +101 -0
  233. data/generated/google/apis/replicapool_v1beta2.rb +41 -0
  234. data/generated/google/apis/replicapool_v1beta2/classes.rb +621 -0
  235. data/generated/google/apis/replicapool_v1beta2/representations.rb +235 -0
  236. data/generated/google/apis/replicapool_v1beta2/service.rb +620 -0
  237. data/generated/google/apis/replicapoolupdater_v1beta1.rb +41 -0
  238. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +682 -0
  239. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +247 -0
  240. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +472 -0
  241. data/generated/google/apis/reseller_v1.rb +37 -0
  242. data/generated/google/apis/reseller_v1/classes.rb +502 -0
  243. data/generated/google/apis/reseller_v1/representations.rb +199 -0
  244. data/generated/google/apis/reseller_v1/service.rb +637 -0
  245. data/generated/google/apis/resourceviews_v1beta2.rb +47 -0
  246. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  247. data/generated/google/apis/resourceviews_v1beta2/representations.rb +269 -0
  248. data/generated/google/apis/resourceviews_v1beta2/service.rb +574 -0
  249. data/generated/google/apis/site_verification_v1.rb +37 -0
  250. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  251. data/generated/google/apis/site_verification_v1/representations.rb +101 -0
  252. data/generated/google/apis/site_verification_v1/service.rb +322 -0
  253. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  254. data/generated/google/apis/sqladmin_v1beta4/classes.rb +1817 -0
  255. data/generated/google/apis/sqladmin_v1beta4/representations.rb +688 -0
  256. data/generated/google/apis/sqladmin_v1beta4/service.rb +1534 -0
  257. data/generated/google/apis/storage_v1.rb +43 -0
  258. data/generated/google/apis/storage_v1/classes.rb +1177 -0
  259. data/generated/google/apis/storage_v1/representations.rb +427 -0
  260. data/generated/google/apis/storage_v1/service.rb +1920 -0
  261. data/generated/google/apis/tagmanager_v1.rb +52 -0
  262. data/generated/google/apis/tagmanager_v1/classes.rb +1226 -0
  263. data/generated/google/apis/tagmanager_v1/representations.rb +461 -0
  264. data/generated/google/apis/tagmanager_v1/service.rb +1978 -0
  265. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  266. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  267. data/generated/google/apis/taskqueue_v1beta2/representations.rb +114 -0
  268. data/generated/google/apis/taskqueue_v1beta2/service.rb +416 -0
  269. data/generated/google/apis/tasks_v1.rb +37 -0
  270. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  271. data/generated/google/apis/tasks_v1/representations.rb +115 -0
  272. data/generated/google/apis/tasks_v1/service.rb +657 -0
  273. data/generated/google/apis/translate_v2.rb +31 -0
  274. data/generated/google/apis/translate_v2/classes.rb +168 -0
  275. data/generated/google/apis/translate_v2/representations.rb +109 -0
  276. data/generated/google/apis/translate_v2/service.rb +185 -0
  277. data/generated/google/apis/urlshortener_v1.rb +34 -0
  278. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  279. data/generated/google/apis/urlshortener_v1/representations.rb +111 -0
  280. data/generated/google/apis/urlshortener_v1/service.rb +179 -0
  281. data/generated/google/apis/webmasters_v3.rb +37 -0
  282. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  283. data/generated/google/apis/webmasters_v3/representations.rb +250 -0
  284. data/generated/google/apis/webmasters_v3/service.rb +587 -0
  285. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  286. data/generated/google/apis/youtube_analytics_v1/classes.rb +540 -0
  287. data/generated/google/apis/youtube_analytics_v1/representations.rb +242 -0
  288. data/generated/google/apis/youtube_analytics_v1/service.rb +567 -0
  289. data/generated/google/apis/youtube_v3.rb +49 -0
  290. data/generated/google/apis/youtube_v3/classes.rb +7225 -0
  291. data/generated/google/apis/youtube_v3/representations.rb +2529 -0
  292. data/generated/google/apis/youtube_v3/service.rb +4051 -0
  293. data/google-api-client.gemspec +27 -39
  294. data/lib/google/api_client/auth/storage.rb +3 -2
  295. data/lib/google/api_client/auth/storages/file_store.rb +1 -3
  296. data/lib/google/api_client/auth/storages/redis_store.rb +6 -2
  297. data/lib/google/apis.rb +48 -0
  298. data/lib/google/apis/core/api_command.rb +128 -0
  299. data/lib/google/apis/core/base_service.rb +314 -0
  300. data/lib/google/apis/core/batch.rb +222 -0
  301. data/lib/google/apis/core/download.rb +94 -0
  302. data/lib/google/apis/core/hashable.rb +44 -0
  303. data/lib/google/apis/core/http_command.rb +275 -0
  304. data/lib/google/apis/core/json_representation.rb +122 -0
  305. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  306. data/lib/google/apis/core/multipart.rb +173 -0
  307. data/lib/google/apis/core/upload.rb +275 -0
  308. data/lib/google/{api_client → apis}/errors.rb +32 -28
  309. data/lib/google/apis/generator.rb +70 -0
  310. data/lib/google/apis/generator/annotator.rb +271 -0
  311. data/lib/google/apis/generator/helpers.rb +74 -0
  312. data/lib/google/apis/generator/model.rb +130 -0
  313. data/lib/google/apis/generator/template.rb +124 -0
  314. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  315. data/lib/google/apis/generator/templates/_method.tmpl +90 -0
  316. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  317. data/lib/google/apis/generator/templates/_representation_stub.tmpl +15 -0
  318. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  319. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  320. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  321. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  322. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  323. data/lib/google/apis/options.rb +79 -0
  324. data/lib/google/apis/version.rb +39 -0
  325. data/rakelib/metrics.rake +22 -0
  326. data/rakelib/rubocop.rake +10 -0
  327. data/rakelib/spec.rake +11 -0
  328. data/rakelib/yard.rake +11 -0
  329. data/samples/calendar/calendar.rb +43 -0
  330. data/samples/drive/drive.rb +40 -0
  331. data/samples/pubsub/pubsub.rb +52 -0
  332. data/{lib/google/api_client/discovery.rb → samples/translate/translate.rb} +14 -5
  333. data/script/generate +79 -0
  334. data/script/package +8 -0
  335. data/script/release +15 -0
  336. data/spec/fixtures/files/api_names.yaml +3 -0
  337. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  338. data/spec/fixtures/files/client_secrets.json +1 -0
  339. data/spec/fixtures/files/test.blah +1 -0
  340. data/spec/fixtures/files/test.txt +1 -0
  341. data/spec/fixtures/files/test_api.json +440 -0
  342. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  343. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  344. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  345. data/spec/google/apis/core/api_command_spec.rb +170 -0
  346. data/spec/google/apis/core/batch_spec.rb +128 -0
  347. data/spec/google/apis/core/download_spec.rb +90 -0
  348. data/spec/google/apis/core/hashable_spec.rb +60 -0
  349. data/spec/google/apis/core/http_command_spec.rb +238 -0
  350. data/spec/google/apis/core/json_representation_spec.rb +192 -0
  351. data/spec/google/apis/core/service_spec.rb +247 -0
  352. data/spec/google/apis/core/upload_spec.rb +238 -0
  353. data/{lib/google/api_client/service_account.rb → spec/google/apis/generated_spec.rb} +14 -8
  354. data/spec/google/apis/generator/generator_spec.rb +272 -0
  355. data/spec/google/apis/logging_spec.rb +45 -0
  356. data/spec/google/apis/options_spec.rb +40 -0
  357. data/spec/integration_tests/drive_spec.rb +35 -0
  358. data/spec/integration_tests/pubsub_spec.rb +48 -0
  359. data/spec/integration_tests/url_shortener_spec.rb +31 -0
  360. data/spec/spec_helper.rb +102 -46
  361. metadata +433 -178
  362. data/lib/compat/multi_json.rb +0 -19
  363. data/lib/google/api_client.rb +0 -750
  364. data/lib/google/api_client/auth/file_storage.rb +0 -59
  365. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  366. data/lib/google/api_client/auth/key_utils.rb +0 -93
  367. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  368. data/lib/google/api_client/batch.rb +0 -326
  369. data/lib/google/api_client/charset.rb +0 -33
  370. data/lib/google/api_client/discovery/api.rb +0 -310
  371. data/lib/google/api_client/discovery/media.rb +0 -77
  372. data/lib/google/api_client/discovery/method.rb +0 -363
  373. data/lib/google/api_client/discovery/resource.rb +0 -156
  374. data/lib/google/api_client/discovery/schema.rb +0 -117
  375. data/lib/google/api_client/environment.rb +0 -42
  376. data/lib/google/api_client/gzip.rb +0 -28
  377. data/lib/google/api_client/logging.rb +0 -32
  378. data/lib/google/api_client/media.rb +0 -259
  379. data/lib/google/api_client/railtie.rb +0 -18
  380. data/lib/google/api_client/request.rb +0 -350
  381. data/lib/google/api_client/result.rb +0 -255
  382. data/lib/google/api_client/service.rb +0 -233
  383. data/lib/google/api_client/service/batch.rb +0 -110
  384. data/lib/google/api_client/service/request.rb +0 -144
  385. data/lib/google/api_client/service/resource.rb +0 -40
  386. data/lib/google/api_client/service/result.rb +0 -162
  387. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  388. data/lib/google/api_client/service/stub_generator.rb +0 -61
  389. data/spec/google/api_client/batch_spec.rb +0 -248
  390. data/spec/google/api_client/discovery_spec.rb +0 -708
  391. data/spec/google/api_client/gzip_spec.rb +0 -98
  392. data/spec/google/api_client/media_spec.rb +0 -178
  393. data/spec/google/api_client/result_spec.rb +0 -207
  394. data/spec/google/api_client/service_account_spec.rb +0 -169
  395. data/spec/google/api_client/service_spec.rb +0 -618
  396. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  397. data/spec/google/api_client_spec.rb +0 -352
@@ -0,0 +1,2529 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module YoutubeV3
24
+
25
+ class AccessPolicy
26
+ class Representation < Google::Apis::Core::JsonRepresentation; end
27
+ end
28
+
29
+ class Activity
30
+ class Representation < Google::Apis::Core::JsonRepresentation; end
31
+ end
32
+
33
+ class ActivityContentDetails
34
+ class Representation < Google::Apis::Core::JsonRepresentation; end
35
+ end
36
+
37
+ class ActivityContentDetailsBulletin
38
+ class Representation < Google::Apis::Core::JsonRepresentation; end
39
+ end
40
+
41
+ class ActivityContentDetailsChannelItem
42
+ class Representation < Google::Apis::Core::JsonRepresentation; end
43
+ end
44
+
45
+ class ActivityContentDetailsComment
46
+ class Representation < Google::Apis::Core::JsonRepresentation; end
47
+ end
48
+
49
+ class ActivityContentDetailsFavorite
50
+ class Representation < Google::Apis::Core::JsonRepresentation; end
51
+ end
52
+
53
+ class ActivityContentDetailsLike
54
+ class Representation < Google::Apis::Core::JsonRepresentation; end
55
+ end
56
+
57
+ class ActivityContentDetailsPlaylistItem
58
+ class Representation < Google::Apis::Core::JsonRepresentation; end
59
+ end
60
+
61
+ class ActivityContentDetailsPromotedItem
62
+ class Representation < Google::Apis::Core::JsonRepresentation; end
63
+ end
64
+
65
+ class ActivityContentDetailsRecommendation
66
+ class Representation < Google::Apis::Core::JsonRepresentation; end
67
+ end
68
+
69
+ class ActivityContentDetailsSocial
70
+ class Representation < Google::Apis::Core::JsonRepresentation; end
71
+ end
72
+
73
+ class ActivityContentDetailsSubscription
74
+ class Representation < Google::Apis::Core::JsonRepresentation; end
75
+ end
76
+
77
+ class ActivityContentDetailsUpload
78
+ class Representation < Google::Apis::Core::JsonRepresentation; end
79
+ end
80
+
81
+ class ListActivitiesResponse
82
+ class Representation < Google::Apis::Core::JsonRepresentation; end
83
+ end
84
+
85
+ class ActivitySnippet
86
+ class Representation < Google::Apis::Core::JsonRepresentation; end
87
+ end
88
+
89
+ class Caption
90
+ class Representation < Google::Apis::Core::JsonRepresentation; end
91
+ end
92
+
93
+ class ListCaptionsResponse
94
+ class Representation < Google::Apis::Core::JsonRepresentation; end
95
+ end
96
+
97
+ class CaptionSnippet
98
+ class Representation < Google::Apis::Core::JsonRepresentation; end
99
+ end
100
+
101
+ class CdnSettings
102
+ class Representation < Google::Apis::Core::JsonRepresentation; end
103
+ end
104
+
105
+ class Channel
106
+ class Representation < Google::Apis::Core::JsonRepresentation; end
107
+ end
108
+
109
+ class ChannelAuditDetails
110
+ class Representation < Google::Apis::Core::JsonRepresentation; end
111
+ end
112
+
113
+ class ChannelBannerResource
114
+ class Representation < Google::Apis::Core::JsonRepresentation; end
115
+ end
116
+
117
+ class ChannelBrandingSettings
118
+ class Representation < Google::Apis::Core::JsonRepresentation; end
119
+ end
120
+
121
+ class ChannelContentDetails
122
+ class Representation < Google::Apis::Core::JsonRepresentation; end
123
+
124
+ class RelatedPlaylists
125
+ class Representation < Google::Apis::Core::JsonRepresentation; end
126
+ end
127
+ end
128
+
129
+ class ChannelContentOwnerDetails
130
+ class Representation < Google::Apis::Core::JsonRepresentation; end
131
+ end
132
+
133
+ class ChannelConversionPing
134
+ class Representation < Google::Apis::Core::JsonRepresentation; end
135
+ end
136
+
137
+ class ChannelConversionPings
138
+ class Representation < Google::Apis::Core::JsonRepresentation; end
139
+ end
140
+
141
+ class ChannelId
142
+ class Representation < Google::Apis::Core::JsonRepresentation; end
143
+ end
144
+
145
+ class ListChannelsResponse
146
+ class Representation < Google::Apis::Core::JsonRepresentation; end
147
+ end
148
+
149
+ class ChannelLocalization
150
+ class Representation < Google::Apis::Core::JsonRepresentation; end
151
+ end
152
+
153
+ class ChannelSection
154
+ class Representation < Google::Apis::Core::JsonRepresentation; end
155
+ end
156
+
157
+ class ChannelSectionContentDetails
158
+ class Representation < Google::Apis::Core::JsonRepresentation; end
159
+ end
160
+
161
+ class ListChannelSectionsResponse
162
+ class Representation < Google::Apis::Core::JsonRepresentation; end
163
+ end
164
+
165
+ class ChannelSectionLocalization
166
+ class Representation < Google::Apis::Core::JsonRepresentation; end
167
+ end
168
+
169
+ class ChannelSectionSnippet
170
+ class Representation < Google::Apis::Core::JsonRepresentation; end
171
+ end
172
+
173
+ class ChannelSectionTargeting
174
+ class Representation < Google::Apis::Core::JsonRepresentation; end
175
+ end
176
+
177
+ class ChannelSettings
178
+ class Representation < Google::Apis::Core::JsonRepresentation; end
179
+ end
180
+
181
+ class ChannelSnippet
182
+ class Representation < Google::Apis::Core::JsonRepresentation; end
183
+ end
184
+
185
+ class ChannelStatistics
186
+ class Representation < Google::Apis::Core::JsonRepresentation; end
187
+ end
188
+
189
+ class ChannelStatus
190
+ class Representation < Google::Apis::Core::JsonRepresentation; end
191
+ end
192
+
193
+ class ChannelTopicDetails
194
+ class Representation < Google::Apis::Core::JsonRepresentation; end
195
+ end
196
+
197
+ class Comment
198
+ class Representation < Google::Apis::Core::JsonRepresentation; end
199
+ end
200
+
201
+ class ListCommentsResponse
202
+ class Representation < Google::Apis::Core::JsonRepresentation; end
203
+ end
204
+
205
+ class CommentSnippet
206
+ class Representation < Google::Apis::Core::JsonRepresentation; end
207
+ end
208
+
209
+ class CommentThread
210
+ class Representation < Google::Apis::Core::JsonRepresentation; end
211
+ end
212
+
213
+ class ListCommentThreadsResponse
214
+ class Representation < Google::Apis::Core::JsonRepresentation; end
215
+ end
216
+
217
+ class CommentThreadReplies
218
+ class Representation < Google::Apis::Core::JsonRepresentation; end
219
+ end
220
+
221
+ class CommentThreadSnippet
222
+ class Representation < Google::Apis::Core::JsonRepresentation; end
223
+ end
224
+
225
+ class ContentRating
226
+ class Representation < Google::Apis::Core::JsonRepresentation; end
227
+ end
228
+
229
+ class GeoPoint
230
+ class Representation < Google::Apis::Core::JsonRepresentation; end
231
+ end
232
+
233
+ class GuideCategory
234
+ class Representation < Google::Apis::Core::JsonRepresentation; end
235
+ end
236
+
237
+ class ListGuideCategoriesResponse
238
+ class Representation < Google::Apis::Core::JsonRepresentation; end
239
+ end
240
+
241
+ class GuideCategorySnippet
242
+ class Representation < Google::Apis::Core::JsonRepresentation; end
243
+ end
244
+
245
+ class I18nLanguage
246
+ class Representation < Google::Apis::Core::JsonRepresentation; end
247
+ end
248
+
249
+ class ListI18nLanguagesResponse
250
+ class Representation < Google::Apis::Core::JsonRepresentation; end
251
+ end
252
+
253
+ class I18nLanguageSnippet
254
+ class Representation < Google::Apis::Core::JsonRepresentation; end
255
+ end
256
+
257
+ class I18nRegion
258
+ class Representation < Google::Apis::Core::JsonRepresentation; end
259
+ end
260
+
261
+ class ListI18nRegionsResponse
262
+ class Representation < Google::Apis::Core::JsonRepresentation; end
263
+ end
264
+
265
+ class I18nRegionSnippet
266
+ class Representation < Google::Apis::Core::JsonRepresentation; end
267
+ end
268
+
269
+ class ImageSettings
270
+ class Representation < Google::Apis::Core::JsonRepresentation; end
271
+ end
272
+
273
+ class IngestionInfo
274
+ class Representation < Google::Apis::Core::JsonRepresentation; end
275
+ end
276
+
277
+ class InvideoBranding
278
+ class Representation < Google::Apis::Core::JsonRepresentation; end
279
+ end
280
+
281
+ class InvideoPosition
282
+ class Representation < Google::Apis::Core::JsonRepresentation; end
283
+ end
284
+
285
+ class InvideoPromotion
286
+ class Representation < Google::Apis::Core::JsonRepresentation; end
287
+ end
288
+
289
+ class InvideoTiming
290
+ class Representation < Google::Apis::Core::JsonRepresentation; end
291
+ end
292
+
293
+ class LanguageTag
294
+ class Representation < Google::Apis::Core::JsonRepresentation; end
295
+ end
296
+
297
+ class LiveBroadcast
298
+ class Representation < Google::Apis::Core::JsonRepresentation; end
299
+ end
300
+
301
+ class LiveBroadcastContentDetails
302
+ class Representation < Google::Apis::Core::JsonRepresentation; end
303
+ end
304
+
305
+ class ListLiveBroadcastsResponse
306
+ class Representation < Google::Apis::Core::JsonRepresentation; end
307
+ end
308
+
309
+ class LiveBroadcastSnippet
310
+ class Representation < Google::Apis::Core::JsonRepresentation; end
311
+ end
312
+
313
+ class LiveBroadcastStatistics
314
+ class Representation < Google::Apis::Core::JsonRepresentation; end
315
+ end
316
+
317
+ class LiveBroadcastStatus
318
+ class Representation < Google::Apis::Core::JsonRepresentation; end
319
+ end
320
+
321
+ class LiveBroadcastTopic
322
+ class Representation < Google::Apis::Core::JsonRepresentation; end
323
+ end
324
+
325
+ class LiveBroadcastTopicDetails
326
+ class Representation < Google::Apis::Core::JsonRepresentation; end
327
+ end
328
+
329
+ class LiveBroadcastTopicSnippet
330
+ class Representation < Google::Apis::Core::JsonRepresentation; end
331
+ end
332
+
333
+ class LiveStream
334
+ class Representation < Google::Apis::Core::JsonRepresentation; end
335
+ end
336
+
337
+ class LiveStreamConfigurationIssue
338
+ class Representation < Google::Apis::Core::JsonRepresentation; end
339
+ end
340
+
341
+ class LiveStreamContentDetails
342
+ class Representation < Google::Apis::Core::JsonRepresentation; end
343
+ end
344
+
345
+ class LiveStreamHealthStatus
346
+ class Representation < Google::Apis::Core::JsonRepresentation; end
347
+ end
348
+
349
+ class ListLiveStreamsResponse
350
+ class Representation < Google::Apis::Core::JsonRepresentation; end
351
+ end
352
+
353
+ class LiveStreamSnippet
354
+ class Representation < Google::Apis::Core::JsonRepresentation; end
355
+ end
356
+
357
+ class LiveStreamStatus
358
+ class Representation < Google::Apis::Core::JsonRepresentation; end
359
+ end
360
+
361
+ class LocalizedProperty
362
+ class Representation < Google::Apis::Core::JsonRepresentation; end
363
+ end
364
+
365
+ class LocalizedString
366
+ class Representation < Google::Apis::Core::JsonRepresentation; end
367
+ end
368
+
369
+ class MonitorStreamInfo
370
+ class Representation < Google::Apis::Core::JsonRepresentation; end
371
+ end
372
+
373
+ class PageInfo
374
+ class Representation < Google::Apis::Core::JsonRepresentation; end
375
+ end
376
+
377
+ class Playlist
378
+ class Representation < Google::Apis::Core::JsonRepresentation; end
379
+ end
380
+
381
+ class PlaylistContentDetails
382
+ class Representation < Google::Apis::Core::JsonRepresentation; end
383
+ end
384
+
385
+ class PlaylistItem
386
+ class Representation < Google::Apis::Core::JsonRepresentation; end
387
+ end
388
+
389
+ class PlaylistItemContentDetails
390
+ class Representation < Google::Apis::Core::JsonRepresentation; end
391
+ end
392
+
393
+ class ListPlaylistItemsResponse
394
+ class Representation < Google::Apis::Core::JsonRepresentation; end
395
+ end
396
+
397
+ class PlaylistItemSnippet
398
+ class Representation < Google::Apis::Core::JsonRepresentation; end
399
+ end
400
+
401
+ class PlaylistItemStatus
402
+ class Representation < Google::Apis::Core::JsonRepresentation; end
403
+ end
404
+
405
+ class ListPlaylistResponse
406
+ class Representation < Google::Apis::Core::JsonRepresentation; end
407
+ end
408
+
409
+ class PlaylistLocalization
410
+ class Representation < Google::Apis::Core::JsonRepresentation; end
411
+ end
412
+
413
+ class PlaylistPlayer
414
+ class Representation < Google::Apis::Core::JsonRepresentation; end
415
+ end
416
+
417
+ class PlaylistSnippet
418
+ class Representation < Google::Apis::Core::JsonRepresentation; end
419
+ end
420
+
421
+ class PlaylistStatus
422
+ class Representation < Google::Apis::Core::JsonRepresentation; end
423
+ end
424
+
425
+ class PromotedItem
426
+ class Representation < Google::Apis::Core::JsonRepresentation; end
427
+ end
428
+
429
+ class PromotedItemId
430
+ class Representation < Google::Apis::Core::JsonRepresentation; end
431
+ end
432
+
433
+ class PropertyValue
434
+ class Representation < Google::Apis::Core::JsonRepresentation; end
435
+ end
436
+
437
+ class ResourceId
438
+ class Representation < Google::Apis::Core::JsonRepresentation; end
439
+ end
440
+
441
+ class SearchListsResponse
442
+ class Representation < Google::Apis::Core::JsonRepresentation; end
443
+ end
444
+
445
+ class SearchResult
446
+ class Representation < Google::Apis::Core::JsonRepresentation; end
447
+ end
448
+
449
+ class SearchResultSnippet
450
+ class Representation < Google::Apis::Core::JsonRepresentation; end
451
+ end
452
+
453
+ class Subscription
454
+ class Representation < Google::Apis::Core::JsonRepresentation; end
455
+ end
456
+
457
+ class SubscriptionContentDetails
458
+ class Representation < Google::Apis::Core::JsonRepresentation; end
459
+ end
460
+
461
+ class ListSubscriptionResponse
462
+ class Representation < Google::Apis::Core::JsonRepresentation; end
463
+ end
464
+
465
+ class SubscriptionSnippet
466
+ class Representation < Google::Apis::Core::JsonRepresentation; end
467
+ end
468
+
469
+ class SubscriptionSubscriberSnippet
470
+ class Representation < Google::Apis::Core::JsonRepresentation; end
471
+ end
472
+
473
+ class Thumbnail
474
+ class Representation < Google::Apis::Core::JsonRepresentation; end
475
+ end
476
+
477
+ class ThumbnailDetails
478
+ class Representation < Google::Apis::Core::JsonRepresentation; end
479
+ end
480
+
481
+ class SetThumbnailResponse
482
+ class Representation < Google::Apis::Core::JsonRepresentation; end
483
+ end
484
+
485
+ class TokenPagination
486
+ class Representation < Google::Apis::Core::JsonRepresentation; end
487
+ end
488
+
489
+ class Video
490
+ class Representation < Google::Apis::Core::JsonRepresentation; end
491
+ end
492
+
493
+ class VideoAbuseReport
494
+ class Representation < Google::Apis::Core::JsonRepresentation; end
495
+ end
496
+
497
+ class VideoAbuseReportReason
498
+ class Representation < Google::Apis::Core::JsonRepresentation; end
499
+ end
500
+
501
+ class ListVideoAbuseReportReasonResponse
502
+ class Representation < Google::Apis::Core::JsonRepresentation; end
503
+ end
504
+
505
+ class VideoAbuseReportReasonSnippet
506
+ class Representation < Google::Apis::Core::JsonRepresentation; end
507
+ end
508
+
509
+ class VideoAbuseReportSecondaryReason
510
+ class Representation < Google::Apis::Core::JsonRepresentation; end
511
+ end
512
+
513
+ class VideoAgeGating
514
+ class Representation < Google::Apis::Core::JsonRepresentation; end
515
+ end
516
+
517
+ class VideoCategory
518
+ class Representation < Google::Apis::Core::JsonRepresentation; end
519
+ end
520
+
521
+ class ListVideoCategoryResponse
522
+ class Representation < Google::Apis::Core::JsonRepresentation; end
523
+ end
524
+
525
+ class VideoCategorySnippet
526
+ class Representation < Google::Apis::Core::JsonRepresentation; end
527
+ end
528
+
529
+ class VideoContentDetails
530
+ class Representation < Google::Apis::Core::JsonRepresentation; end
531
+ end
532
+
533
+ class VideoContentDetailsRegionRestriction
534
+ class Representation < Google::Apis::Core::JsonRepresentation; end
535
+ end
536
+
537
+ class VideoConversionPing
538
+ class Representation < Google::Apis::Core::JsonRepresentation; end
539
+ end
540
+
541
+ class VideoConversionPings
542
+ class Representation < Google::Apis::Core::JsonRepresentation; end
543
+ end
544
+
545
+ class VideoFileDetails
546
+ class Representation < Google::Apis::Core::JsonRepresentation; end
547
+ end
548
+
549
+ class VideoFileDetailsAudioStream
550
+ class Representation < Google::Apis::Core::JsonRepresentation; end
551
+ end
552
+
553
+ class VideoFileDetailsVideoStream
554
+ class Representation < Google::Apis::Core::JsonRepresentation; end
555
+ end
556
+
557
+ class GetVideoRatingResponse
558
+ class Representation < Google::Apis::Core::JsonRepresentation; end
559
+ end
560
+
561
+ class ListVideosResponse
562
+ class Representation < Google::Apis::Core::JsonRepresentation; end
563
+ end
564
+
565
+ class VideoLiveStreamingDetails
566
+ class Representation < Google::Apis::Core::JsonRepresentation; end
567
+ end
568
+
569
+ class VideoLocalization
570
+ class Representation < Google::Apis::Core::JsonRepresentation; end
571
+ end
572
+
573
+ class VideoMonetizationDetails
574
+ class Representation < Google::Apis::Core::JsonRepresentation; end
575
+ end
576
+
577
+ class VideoPlayer
578
+ class Representation < Google::Apis::Core::JsonRepresentation; end
579
+ end
580
+
581
+ class VideoProcessingDetails
582
+ class Representation < Google::Apis::Core::JsonRepresentation; end
583
+ end
584
+
585
+ class VideoProcessingDetailsProcessingProgress
586
+ class Representation < Google::Apis::Core::JsonRepresentation; end
587
+ end
588
+
589
+ class VideoProjectDetails
590
+ class Representation < Google::Apis::Core::JsonRepresentation; end
591
+ end
592
+
593
+ class VideoRating
594
+ class Representation < Google::Apis::Core::JsonRepresentation; end
595
+ end
596
+
597
+ class VideoRecordingDetails
598
+ class Representation < Google::Apis::Core::JsonRepresentation; end
599
+ end
600
+
601
+ class VideoSnippet
602
+ class Representation < Google::Apis::Core::JsonRepresentation; end
603
+ end
604
+
605
+ class VideoStatistics
606
+ class Representation < Google::Apis::Core::JsonRepresentation; end
607
+ end
608
+
609
+ class VideoStatus
610
+ class Representation < Google::Apis::Core::JsonRepresentation; end
611
+ end
612
+
613
+ class VideoSuggestions
614
+ class Representation < Google::Apis::Core::JsonRepresentation; end
615
+ end
616
+
617
+ class VideoSuggestionsTagSuggestion
618
+ class Representation < Google::Apis::Core::JsonRepresentation; end
619
+ end
620
+
621
+ class VideoTopicDetails
622
+ class Representation < Google::Apis::Core::JsonRepresentation; end
623
+ end
624
+
625
+ class WatchSettings
626
+ class Representation < Google::Apis::Core::JsonRepresentation; end
627
+ end
628
+
629
+ class AccessPolicy
630
+ # @private
631
+ class Representation < Google::Apis::Core::JsonRepresentation
632
+ property :allowed, as: 'allowed'
633
+ collection :exception, as: 'exception'
634
+ end
635
+ end
636
+
637
+ class Activity
638
+ # @private
639
+ class Representation < Google::Apis::Core::JsonRepresentation
640
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::ActivityContentDetails, decorator: Google::Apis::YoutubeV3::ActivityContentDetails::Representation
641
+
642
+ property :etag, as: 'etag'
643
+ property :id, as: 'id'
644
+ property :kind, as: 'kind'
645
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::ActivitySnippet, decorator: Google::Apis::YoutubeV3::ActivitySnippet::Representation
646
+
647
+ end
648
+ end
649
+
650
+ class ActivityContentDetails
651
+ # @private
652
+ class Representation < Google::Apis::Core::JsonRepresentation
653
+ property :bulletin, as: 'bulletin', class: Google::Apis::YoutubeV3::ActivityContentDetailsBulletin, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsBulletin::Representation
654
+
655
+ property :channel_item, as: 'channelItem', class: Google::Apis::YoutubeV3::ActivityContentDetailsChannelItem, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsChannelItem::Representation
656
+
657
+ property :comment, as: 'comment', class: Google::Apis::YoutubeV3::ActivityContentDetailsComment, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsComment::Representation
658
+
659
+ property :favorite, as: 'favorite', class: Google::Apis::YoutubeV3::ActivityContentDetailsFavorite, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsFavorite::Representation
660
+
661
+ property :like, as: 'like', class: Google::Apis::YoutubeV3::ActivityContentDetailsLike, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsLike::Representation
662
+
663
+ property :playlist_item, as: 'playlistItem', class: Google::Apis::YoutubeV3::ActivityContentDetailsPlaylistItem, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsPlaylistItem::Representation
664
+
665
+ property :promoted_item, as: 'promotedItem', class: Google::Apis::YoutubeV3::ActivityContentDetailsPromotedItem, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsPromotedItem::Representation
666
+
667
+ property :recommendation, as: 'recommendation', class: Google::Apis::YoutubeV3::ActivityContentDetailsRecommendation, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsRecommendation::Representation
668
+
669
+ property :social, as: 'social', class: Google::Apis::YoutubeV3::ActivityContentDetailsSocial, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsSocial::Representation
670
+
671
+ property :subscription, as: 'subscription', class: Google::Apis::YoutubeV3::ActivityContentDetailsSubscription, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsSubscription::Representation
672
+
673
+ property :upload, as: 'upload', class: Google::Apis::YoutubeV3::ActivityContentDetailsUpload, decorator: Google::Apis::YoutubeV3::ActivityContentDetailsUpload::Representation
674
+
675
+ end
676
+ end
677
+
678
+ class ActivityContentDetailsBulletin
679
+ # @private
680
+ class Representation < Google::Apis::Core::JsonRepresentation
681
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
682
+
683
+ end
684
+ end
685
+
686
+ class ActivityContentDetailsChannelItem
687
+ # @private
688
+ class Representation < Google::Apis::Core::JsonRepresentation
689
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
690
+
691
+ end
692
+ end
693
+
694
+ class ActivityContentDetailsComment
695
+ # @private
696
+ class Representation < Google::Apis::Core::JsonRepresentation
697
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
698
+
699
+ end
700
+ end
701
+
702
+ class ActivityContentDetailsFavorite
703
+ # @private
704
+ class Representation < Google::Apis::Core::JsonRepresentation
705
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
706
+
707
+ end
708
+ end
709
+
710
+ class ActivityContentDetailsLike
711
+ # @private
712
+ class Representation < Google::Apis::Core::JsonRepresentation
713
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
714
+
715
+ end
716
+ end
717
+
718
+ class ActivityContentDetailsPlaylistItem
719
+ # @private
720
+ class Representation < Google::Apis::Core::JsonRepresentation
721
+ property :playlist_id, as: 'playlistId'
722
+ property :playlist_item_id, as: 'playlistItemId'
723
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
724
+
725
+ end
726
+ end
727
+
728
+ class ActivityContentDetailsPromotedItem
729
+ # @private
730
+ class Representation < Google::Apis::Core::JsonRepresentation
731
+ property :ad_tag, as: 'adTag'
732
+ property :click_tracking_url, as: 'clickTrackingUrl'
733
+ property :creative_view_url, as: 'creativeViewUrl'
734
+ property :cta_type, as: 'ctaType'
735
+ property :custom_cta_button_text, as: 'customCtaButtonText'
736
+ property :description_text, as: 'descriptionText'
737
+ property :destination_url, as: 'destinationUrl'
738
+ collection :forecasting_url, as: 'forecastingUrl'
739
+ collection :impression_url, as: 'impressionUrl'
740
+ property :video_id, as: 'videoId'
741
+ end
742
+ end
743
+
744
+ class ActivityContentDetailsRecommendation
745
+ # @private
746
+ class Representation < Google::Apis::Core::JsonRepresentation
747
+ property :reason, as: 'reason'
748
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
749
+
750
+ property :seed_resource_id, as: 'seedResourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
751
+
752
+ end
753
+ end
754
+
755
+ class ActivityContentDetailsSocial
756
+ # @private
757
+ class Representation < Google::Apis::Core::JsonRepresentation
758
+ property :author, as: 'author'
759
+ property :image_url, as: 'imageUrl'
760
+ property :reference_url, as: 'referenceUrl'
761
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
762
+
763
+ property :type, as: 'type'
764
+ end
765
+ end
766
+
767
+ class ActivityContentDetailsSubscription
768
+ # @private
769
+ class Representation < Google::Apis::Core::JsonRepresentation
770
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
771
+
772
+ end
773
+ end
774
+
775
+ class ActivityContentDetailsUpload
776
+ # @private
777
+ class Representation < Google::Apis::Core::JsonRepresentation
778
+ property :video_id, as: 'videoId'
779
+ end
780
+ end
781
+
782
+ class ListActivitiesResponse
783
+ # @private
784
+ class Representation < Google::Apis::Core::JsonRepresentation
785
+ property :etag, as: 'etag'
786
+ property :event_id, as: 'eventId'
787
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Activity, decorator: Google::Apis::YoutubeV3::Activity::Representation
788
+
789
+ property :kind, as: 'kind'
790
+ property :next_page_token, as: 'nextPageToken'
791
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
792
+
793
+ property :prev_page_token, as: 'prevPageToken'
794
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
795
+
796
+ property :visitor_id, as: 'visitorId'
797
+ end
798
+ end
799
+
800
+ class ActivitySnippet
801
+ # @private
802
+ class Representation < Google::Apis::Core::JsonRepresentation
803
+ property :channel_id, as: 'channelId'
804
+ property :channel_title, as: 'channelTitle'
805
+ property :description, as: 'description'
806
+ property :group_id, as: 'groupId'
807
+ property :published_at, as: 'publishedAt', type: DateTime
808
+
809
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
810
+
811
+ property :title, as: 'title'
812
+ property :type, as: 'type'
813
+ end
814
+ end
815
+
816
+ class Caption
817
+ # @private
818
+ class Representation < Google::Apis::Core::JsonRepresentation
819
+ property :etag, as: 'etag'
820
+ property :id, as: 'id'
821
+ property :kind, as: 'kind'
822
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::CaptionSnippet, decorator: Google::Apis::YoutubeV3::CaptionSnippet::Representation
823
+
824
+ end
825
+ end
826
+
827
+ class ListCaptionsResponse
828
+ # @private
829
+ class Representation < Google::Apis::Core::JsonRepresentation
830
+ property :etag, as: 'etag'
831
+ property :event_id, as: 'eventId'
832
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Caption, decorator: Google::Apis::YoutubeV3::Caption::Representation
833
+
834
+ property :kind, as: 'kind'
835
+ property :visitor_id, as: 'visitorId'
836
+ end
837
+ end
838
+
839
+ class CaptionSnippet
840
+ # @private
841
+ class Representation < Google::Apis::Core::JsonRepresentation
842
+ property :audio_track_type, as: 'audioTrackType'
843
+ property :failure_reason, as: 'failureReason'
844
+ property :is_auto_synced, as: 'isAutoSynced'
845
+ property :is_cc, as: 'isCC'
846
+ property :is_draft, as: 'isDraft'
847
+ property :is_easy_reader, as: 'isEasyReader'
848
+ property :is_large, as: 'isLarge'
849
+ property :language, as: 'language'
850
+ property :last_updated, as: 'lastUpdated', type: DateTime
851
+
852
+ property :name, as: 'name'
853
+ property :status, as: 'status'
854
+ property :track_kind, as: 'trackKind'
855
+ property :video_id, as: 'videoId'
856
+ end
857
+ end
858
+
859
+ class CdnSettings
860
+ # @private
861
+ class Representation < Google::Apis::Core::JsonRepresentation
862
+ property :format, as: 'format'
863
+ property :ingestion_info, as: 'ingestionInfo', class: Google::Apis::YoutubeV3::IngestionInfo, decorator: Google::Apis::YoutubeV3::IngestionInfo::Representation
864
+
865
+ property :ingestion_type, as: 'ingestionType'
866
+ end
867
+ end
868
+
869
+ class Channel
870
+ # @private
871
+ class Representation < Google::Apis::Core::JsonRepresentation
872
+ property :audit_details, as: 'auditDetails', class: Google::Apis::YoutubeV3::ChannelAuditDetails, decorator: Google::Apis::YoutubeV3::ChannelAuditDetails::Representation
873
+
874
+ property :branding_settings, as: 'brandingSettings', class: Google::Apis::YoutubeV3::ChannelBrandingSettings, decorator: Google::Apis::YoutubeV3::ChannelBrandingSettings::Representation
875
+
876
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::ChannelContentDetails, decorator: Google::Apis::YoutubeV3::ChannelContentDetails::Representation
877
+
878
+ property :content_owner_details, as: 'contentOwnerDetails', class: Google::Apis::YoutubeV3::ChannelContentOwnerDetails, decorator: Google::Apis::YoutubeV3::ChannelContentOwnerDetails::Representation
879
+
880
+ property :conversion_pings, as: 'conversionPings', class: Google::Apis::YoutubeV3::ChannelConversionPings, decorator: Google::Apis::YoutubeV3::ChannelConversionPings::Representation
881
+
882
+ property :etag, as: 'etag'
883
+ property :id, as: 'id'
884
+ property :invideo_promotion, as: 'invideoPromotion', class: Google::Apis::YoutubeV3::InvideoPromotion, decorator: Google::Apis::YoutubeV3::InvideoPromotion::Representation
885
+
886
+ property :kind, as: 'kind'
887
+ hash :localizations, as: 'localizations', class: Google::Apis::YoutubeV3::ChannelLocalization, decorator: Google::Apis::YoutubeV3::ChannelLocalization::Representation
888
+
889
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::ChannelSnippet, decorator: Google::Apis::YoutubeV3::ChannelSnippet::Representation
890
+
891
+ property :statistics, as: 'statistics', class: Google::Apis::YoutubeV3::ChannelStatistics, decorator: Google::Apis::YoutubeV3::ChannelStatistics::Representation
892
+
893
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::ChannelStatus, decorator: Google::Apis::YoutubeV3::ChannelStatus::Representation
894
+
895
+ property :topic_details, as: 'topicDetails', class: Google::Apis::YoutubeV3::ChannelTopicDetails, decorator: Google::Apis::YoutubeV3::ChannelTopicDetails::Representation
896
+
897
+ end
898
+ end
899
+
900
+ class ChannelAuditDetails
901
+ # @private
902
+ class Representation < Google::Apis::Core::JsonRepresentation
903
+ property :community_guidelines_good_standing, as: 'communityGuidelinesGoodStanding'
904
+ property :content_id_claims_good_standing, as: 'contentIdClaimsGoodStanding'
905
+ property :copyright_strikes_good_standing, as: 'copyrightStrikesGoodStanding'
906
+ property :overall_good_standing, as: 'overallGoodStanding'
907
+ end
908
+ end
909
+
910
+ class ChannelBannerResource
911
+ # @private
912
+ class Representation < Google::Apis::Core::JsonRepresentation
913
+ property :etag, as: 'etag'
914
+ property :kind, as: 'kind'
915
+ property :url, as: 'url'
916
+ end
917
+ end
918
+
919
+ class ChannelBrandingSettings
920
+ # @private
921
+ class Representation < Google::Apis::Core::JsonRepresentation
922
+ property :channel, as: 'channel', class: Google::Apis::YoutubeV3::ChannelSettings, decorator: Google::Apis::YoutubeV3::ChannelSettings::Representation
923
+
924
+ collection :hints, as: 'hints', class: Google::Apis::YoutubeV3::PropertyValue, decorator: Google::Apis::YoutubeV3::PropertyValue::Representation
925
+
926
+ property :image, as: 'image', class: Google::Apis::YoutubeV3::ImageSettings, decorator: Google::Apis::YoutubeV3::ImageSettings::Representation
927
+
928
+ property :watch, as: 'watch', class: Google::Apis::YoutubeV3::WatchSettings, decorator: Google::Apis::YoutubeV3::WatchSettings::Representation
929
+
930
+ end
931
+ end
932
+
933
+ class ChannelContentDetails
934
+ # @private
935
+ class Representation < Google::Apis::Core::JsonRepresentation
936
+ property :google_plus_user_id, as: 'googlePlusUserId'
937
+ property :related_playlists, as: 'relatedPlaylists', class: Google::Apis::YoutubeV3::ChannelContentDetails::RelatedPlaylists, decorator: Google::Apis::YoutubeV3::ChannelContentDetails::RelatedPlaylists::Representation
938
+
939
+ end
940
+
941
+ class RelatedPlaylists
942
+ # @private
943
+ class Representation < Google::Apis::Core::JsonRepresentation
944
+ property :favorites, as: 'favorites'
945
+ property :likes, as: 'likes'
946
+ property :uploads, as: 'uploads'
947
+ property :watch_history, as: 'watchHistory'
948
+ property :watch_later, as: 'watchLater'
949
+ end
950
+ end
951
+ end
952
+
953
+ class ChannelContentOwnerDetails
954
+ # @private
955
+ class Representation < Google::Apis::Core::JsonRepresentation
956
+ property :content_owner, as: 'contentOwner'
957
+ property :time_linked, as: 'timeLinked', type: DateTime
958
+
959
+ end
960
+ end
961
+
962
+ class ChannelConversionPing
963
+ # @private
964
+ class Representation < Google::Apis::Core::JsonRepresentation
965
+ property :context, as: 'context'
966
+ property :conversion_url, as: 'conversionUrl'
967
+ end
968
+ end
969
+
970
+ class ChannelConversionPings
971
+ # @private
972
+ class Representation < Google::Apis::Core::JsonRepresentation
973
+ collection :pings, as: 'pings', class: Google::Apis::YoutubeV3::ChannelConversionPing, decorator: Google::Apis::YoutubeV3::ChannelConversionPing::Representation
974
+
975
+ end
976
+ end
977
+
978
+ class ChannelId
979
+ # @private
980
+ class Representation < Google::Apis::Core::JsonRepresentation
981
+ property :value, as: 'value'
982
+ end
983
+ end
984
+
985
+ class ListChannelsResponse
986
+ # @private
987
+ class Representation < Google::Apis::Core::JsonRepresentation
988
+ property :etag, as: 'etag'
989
+ property :event_id, as: 'eventId'
990
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Channel, decorator: Google::Apis::YoutubeV3::Channel::Representation
991
+
992
+ property :kind, as: 'kind'
993
+ property :next_page_token, as: 'nextPageToken'
994
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
995
+
996
+ property :prev_page_token, as: 'prevPageToken'
997
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
998
+
999
+ property :visitor_id, as: 'visitorId'
1000
+ end
1001
+ end
1002
+
1003
+ class ChannelLocalization
1004
+ # @private
1005
+ class Representation < Google::Apis::Core::JsonRepresentation
1006
+ property :description, as: 'description'
1007
+ property :title, as: 'title'
1008
+ end
1009
+ end
1010
+
1011
+ class ChannelSection
1012
+ # @private
1013
+ class Representation < Google::Apis::Core::JsonRepresentation
1014
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::ChannelSectionContentDetails, decorator: Google::Apis::YoutubeV3::ChannelSectionContentDetails::Representation
1015
+
1016
+ property :etag, as: 'etag'
1017
+ property :id, as: 'id'
1018
+ property :kind, as: 'kind'
1019
+ hash :localizations, as: 'localizations', class: Google::Apis::YoutubeV3::ChannelSectionLocalization, decorator: Google::Apis::YoutubeV3::ChannelSectionLocalization::Representation
1020
+
1021
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::ChannelSectionSnippet, decorator: Google::Apis::YoutubeV3::ChannelSectionSnippet::Representation
1022
+
1023
+ property :targeting, as: 'targeting', class: Google::Apis::YoutubeV3::ChannelSectionTargeting, decorator: Google::Apis::YoutubeV3::ChannelSectionTargeting::Representation
1024
+
1025
+ end
1026
+ end
1027
+
1028
+ class ChannelSectionContentDetails
1029
+ # @private
1030
+ class Representation < Google::Apis::Core::JsonRepresentation
1031
+ collection :channels, as: 'channels'
1032
+ collection :playlists, as: 'playlists'
1033
+ end
1034
+ end
1035
+
1036
+ class ListChannelSectionsResponse
1037
+ # @private
1038
+ class Representation < Google::Apis::Core::JsonRepresentation
1039
+ property :etag, as: 'etag'
1040
+ property :event_id, as: 'eventId'
1041
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::ChannelSection, decorator: Google::Apis::YoutubeV3::ChannelSection::Representation
1042
+
1043
+ property :kind, as: 'kind'
1044
+ property :visitor_id, as: 'visitorId'
1045
+ end
1046
+ end
1047
+
1048
+ class ChannelSectionLocalization
1049
+ # @private
1050
+ class Representation < Google::Apis::Core::JsonRepresentation
1051
+ property :title, as: 'title'
1052
+ end
1053
+ end
1054
+
1055
+ class ChannelSectionSnippet
1056
+ # @private
1057
+ class Representation < Google::Apis::Core::JsonRepresentation
1058
+ property :channel_id, as: 'channelId'
1059
+ property :default_language, as: 'defaultLanguage'
1060
+ property :localized, as: 'localized', class: Google::Apis::YoutubeV3::ChannelSectionLocalization, decorator: Google::Apis::YoutubeV3::ChannelSectionLocalization::Representation
1061
+
1062
+ property :position, as: 'position'
1063
+ property :style, as: 'style'
1064
+ property :title, as: 'title'
1065
+ property :type, as: 'type'
1066
+ end
1067
+ end
1068
+
1069
+ class ChannelSectionTargeting
1070
+ # @private
1071
+ class Representation < Google::Apis::Core::JsonRepresentation
1072
+ collection :countries, as: 'countries'
1073
+ collection :languages, as: 'languages'
1074
+ collection :regions, as: 'regions'
1075
+ end
1076
+ end
1077
+
1078
+ class ChannelSettings
1079
+ # @private
1080
+ class Representation < Google::Apis::Core::JsonRepresentation
1081
+ property :country, as: 'country'
1082
+ property :default_language, as: 'defaultLanguage'
1083
+ property :default_tab, as: 'defaultTab'
1084
+ property :description, as: 'description'
1085
+ property :featured_channels_title, as: 'featuredChannelsTitle'
1086
+ collection :featured_channels_urls, as: 'featuredChannelsUrls'
1087
+ property :keywords, as: 'keywords'
1088
+ property :moderate_comments, as: 'moderateComments'
1089
+ property :profile_color, as: 'profileColor'
1090
+ property :show_browse_view, as: 'showBrowseView'
1091
+ property :show_related_channels, as: 'showRelatedChannels'
1092
+ property :title, as: 'title'
1093
+ property :tracking_analytics_account_id, as: 'trackingAnalyticsAccountId'
1094
+ property :unsubscribed_trailer, as: 'unsubscribedTrailer'
1095
+ end
1096
+ end
1097
+
1098
+ class ChannelSnippet
1099
+ # @private
1100
+ class Representation < Google::Apis::Core::JsonRepresentation
1101
+ property :country, as: 'country'
1102
+ property :default_language, as: 'defaultLanguage'
1103
+ property :description, as: 'description'
1104
+ property :localized, as: 'localized', class: Google::Apis::YoutubeV3::ChannelLocalization, decorator: Google::Apis::YoutubeV3::ChannelLocalization::Representation
1105
+
1106
+ property :published_at, as: 'publishedAt', type: DateTime
1107
+
1108
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
1109
+
1110
+ property :title, as: 'title'
1111
+ end
1112
+ end
1113
+
1114
+ class ChannelStatistics
1115
+ # @private
1116
+ class Representation < Google::Apis::Core::JsonRepresentation
1117
+ property :comment_count, as: 'commentCount'
1118
+ property :hidden_subscriber_count, as: 'hiddenSubscriberCount'
1119
+ property :subscriber_count, as: 'subscriberCount'
1120
+ property :video_count, as: 'videoCount'
1121
+ property :view_count, as: 'viewCount'
1122
+ end
1123
+ end
1124
+
1125
+ class ChannelStatus
1126
+ # @private
1127
+ class Representation < Google::Apis::Core::JsonRepresentation
1128
+ property :is_linked, as: 'isLinked'
1129
+ property :long_uploads_status, as: 'longUploadsStatus'
1130
+ property :privacy_status, as: 'privacyStatus'
1131
+ end
1132
+ end
1133
+
1134
+ class ChannelTopicDetails
1135
+ # @private
1136
+ class Representation < Google::Apis::Core::JsonRepresentation
1137
+ collection :topic_ids, as: 'topicIds'
1138
+ end
1139
+ end
1140
+
1141
+ class Comment
1142
+ # @private
1143
+ class Representation < Google::Apis::Core::JsonRepresentation
1144
+ property :etag, as: 'etag'
1145
+ property :id, as: 'id'
1146
+ property :kind, as: 'kind'
1147
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::CommentSnippet, decorator: Google::Apis::YoutubeV3::CommentSnippet::Representation
1148
+
1149
+ end
1150
+ end
1151
+
1152
+ class ListCommentsResponse
1153
+ # @private
1154
+ class Representation < Google::Apis::Core::JsonRepresentation
1155
+ property :etag, as: 'etag'
1156
+ property :event_id, as: 'eventId'
1157
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Comment, decorator: Google::Apis::YoutubeV3::Comment::Representation
1158
+
1159
+ property :kind, as: 'kind'
1160
+ property :next_page_token, as: 'nextPageToken'
1161
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1162
+
1163
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1164
+
1165
+ property :visitor_id, as: 'visitorId'
1166
+ end
1167
+ end
1168
+
1169
+ class CommentSnippet
1170
+ # @private
1171
+ class Representation < Google::Apis::Core::JsonRepresentation
1172
+ property :author_channel_id, as: 'authorChannelId', class: Google::Apis::YoutubeV3::ChannelId, decorator: Google::Apis::YoutubeV3::ChannelId::Representation
1173
+
1174
+ property :author_channel_url, as: 'authorChannelUrl'
1175
+ property :author_display_name, as: 'authorDisplayName'
1176
+ property :author_googleplus_profile_url, as: 'authorGoogleplusProfileUrl'
1177
+ property :author_profile_image_url, as: 'authorProfileImageUrl'
1178
+ property :can_rate, as: 'canRate'
1179
+ property :channel_id, as: 'channelId'
1180
+ property :like_count, as: 'likeCount'
1181
+ property :moderation_status, as: 'moderationStatus'
1182
+ property :parent_id, as: 'parentId'
1183
+ property :published_at, as: 'publishedAt', type: DateTime
1184
+
1185
+ property :text_display, as: 'textDisplay'
1186
+ property :text_original, as: 'textOriginal'
1187
+ property :updated_at, as: 'updatedAt', type: DateTime
1188
+
1189
+ property :video_id, as: 'videoId'
1190
+ property :viewer_rating, as: 'viewerRating'
1191
+ end
1192
+ end
1193
+
1194
+ class CommentThread
1195
+ # @private
1196
+ class Representation < Google::Apis::Core::JsonRepresentation
1197
+ property :etag, as: 'etag'
1198
+ property :id, as: 'id'
1199
+ property :kind, as: 'kind'
1200
+ property :replies, as: 'replies', class: Google::Apis::YoutubeV3::CommentThreadReplies, decorator: Google::Apis::YoutubeV3::CommentThreadReplies::Representation
1201
+
1202
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::CommentThreadSnippet, decorator: Google::Apis::YoutubeV3::CommentThreadSnippet::Representation
1203
+
1204
+ end
1205
+ end
1206
+
1207
+ class ListCommentThreadsResponse
1208
+ # @private
1209
+ class Representation < Google::Apis::Core::JsonRepresentation
1210
+ property :etag, as: 'etag'
1211
+ property :event_id, as: 'eventId'
1212
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::CommentThread, decorator: Google::Apis::YoutubeV3::CommentThread::Representation
1213
+
1214
+ property :kind, as: 'kind'
1215
+ property :next_page_token, as: 'nextPageToken'
1216
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1217
+
1218
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1219
+
1220
+ property :visitor_id, as: 'visitorId'
1221
+ end
1222
+ end
1223
+
1224
+ class CommentThreadReplies
1225
+ # @private
1226
+ class Representation < Google::Apis::Core::JsonRepresentation
1227
+ collection :comments, as: 'comments', class: Google::Apis::YoutubeV3::Comment, decorator: Google::Apis::YoutubeV3::Comment::Representation
1228
+
1229
+ end
1230
+ end
1231
+
1232
+ class CommentThreadSnippet
1233
+ # @private
1234
+ class Representation < Google::Apis::Core::JsonRepresentation
1235
+ property :can_reply, as: 'canReply'
1236
+ property :channel_id, as: 'channelId'
1237
+ property :is_public, as: 'isPublic'
1238
+ property :top_level_comment, as: 'topLevelComment', class: Google::Apis::YoutubeV3::Comment, decorator: Google::Apis::YoutubeV3::Comment::Representation
1239
+
1240
+ property :total_reply_count, as: 'totalReplyCount'
1241
+ property :video_id, as: 'videoId'
1242
+ end
1243
+ end
1244
+
1245
+ class ContentRating
1246
+ # @private
1247
+ class Representation < Google::Apis::Core::JsonRepresentation
1248
+ property :acb_rating, as: 'acbRating'
1249
+ property :agcom_rating, as: 'agcomRating'
1250
+ property :anatel_rating, as: 'anatelRating'
1251
+ property :bbfc_rating, as: 'bbfcRating'
1252
+ property :bfvc_rating, as: 'bfvcRating'
1253
+ property :bmukk_rating, as: 'bmukkRating'
1254
+ property :catv_rating, as: 'catvRating'
1255
+ property :catvfr_rating, as: 'catvfrRating'
1256
+ property :cbfc_rating, as: 'cbfcRating'
1257
+ property :ccc_rating, as: 'cccRating'
1258
+ property :cce_rating, as: 'cceRating'
1259
+ property :chfilm_rating, as: 'chfilmRating'
1260
+ property :chvrs_rating, as: 'chvrsRating'
1261
+ property :cicf_rating, as: 'cicfRating'
1262
+ property :cna_rating, as: 'cnaRating'
1263
+ property :csa_rating, as: 'csaRating'
1264
+ property :cscf_rating, as: 'cscfRating'
1265
+ property :czfilm_rating, as: 'czfilmRating'
1266
+ property :djctq_rating, as: 'djctqRating'
1267
+ collection :djctq_rating_reasons, as: 'djctqRatingReasons'
1268
+ property :eefilm_rating, as: 'eefilmRating'
1269
+ property :egfilm_rating, as: 'egfilmRating'
1270
+ property :eirin_rating, as: 'eirinRating'
1271
+ property :fcbm_rating, as: 'fcbmRating'
1272
+ property :fco_rating, as: 'fcoRating'
1273
+ property :fmoc_rating, as: 'fmocRating'
1274
+ property :fpb_rating, as: 'fpbRating'
1275
+ property :fsk_rating, as: 'fskRating'
1276
+ property :grfilm_rating, as: 'grfilmRating'
1277
+ property :icaa_rating, as: 'icaaRating'
1278
+ property :ifco_rating, as: 'ifcoRating'
1279
+ property :ilfilm_rating, as: 'ilfilmRating'
1280
+ property :incaa_rating, as: 'incaaRating'
1281
+ property :kfcb_rating, as: 'kfcbRating'
1282
+ property :kijkwijzer_rating, as: 'kijkwijzerRating'
1283
+ property :kmrb_rating, as: 'kmrbRating'
1284
+ property :lsf_rating, as: 'lsfRating'
1285
+ property :mccaa_rating, as: 'mccaaRating'
1286
+ property :mccyp_rating, as: 'mccypRating'
1287
+ property :mda_rating, as: 'mdaRating'
1288
+ property :medietilsynet_rating, as: 'medietilsynetRating'
1289
+ property :meku_rating, as: 'mekuRating'
1290
+ property :mibac_rating, as: 'mibacRating'
1291
+ property :moc_rating, as: 'mocRating'
1292
+ property :moctw_rating, as: 'moctwRating'
1293
+ property :mpaa_rating, as: 'mpaaRating'
1294
+ property :mtrcb_rating, as: 'mtrcbRating'
1295
+ property :nbc_rating, as: 'nbcRating'
1296
+ property :nbcpl_rating, as: 'nbcplRating'
1297
+ property :nfrc_rating, as: 'nfrcRating'
1298
+ property :nfvcb_rating, as: 'nfvcbRating'
1299
+ property :nkclv_rating, as: 'nkclvRating'
1300
+ property :oflc_rating, as: 'oflcRating'
1301
+ property :pefilm_rating, as: 'pefilmRating'
1302
+ property :rcnof_rating, as: 'rcnofRating'
1303
+ property :resorteviolencia_rating, as: 'resorteviolenciaRating'
1304
+ property :rtc_rating, as: 'rtcRating'
1305
+ property :rte_rating, as: 'rteRating'
1306
+ property :russia_rating, as: 'russiaRating'
1307
+ property :skfilm_rating, as: 'skfilmRating'
1308
+ property :smais_rating, as: 'smaisRating'
1309
+ property :smsa_rating, as: 'smsaRating'
1310
+ property :tvpg_rating, as: 'tvpgRating'
1311
+ property :yt_rating, as: 'ytRating'
1312
+ end
1313
+ end
1314
+
1315
+ class GeoPoint
1316
+ # @private
1317
+ class Representation < Google::Apis::Core::JsonRepresentation
1318
+ property :altitude, as: 'altitude'
1319
+ property :latitude, as: 'latitude'
1320
+ property :longitude, as: 'longitude'
1321
+ end
1322
+ end
1323
+
1324
+ class GuideCategory
1325
+ # @private
1326
+ class Representation < Google::Apis::Core::JsonRepresentation
1327
+ property :etag, as: 'etag'
1328
+ property :id, as: 'id'
1329
+ property :kind, as: 'kind'
1330
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::GuideCategorySnippet, decorator: Google::Apis::YoutubeV3::GuideCategorySnippet::Representation
1331
+
1332
+ end
1333
+ end
1334
+
1335
+ class ListGuideCategoriesResponse
1336
+ # @private
1337
+ class Representation < Google::Apis::Core::JsonRepresentation
1338
+ property :etag, as: 'etag'
1339
+ property :event_id, as: 'eventId'
1340
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::GuideCategory, decorator: Google::Apis::YoutubeV3::GuideCategory::Representation
1341
+
1342
+ property :kind, as: 'kind'
1343
+ property :next_page_token, as: 'nextPageToken'
1344
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1345
+
1346
+ property :prev_page_token, as: 'prevPageToken'
1347
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1348
+
1349
+ property :visitor_id, as: 'visitorId'
1350
+ end
1351
+ end
1352
+
1353
+ class GuideCategorySnippet
1354
+ # @private
1355
+ class Representation < Google::Apis::Core::JsonRepresentation
1356
+ property :channel_id, as: 'channelId'
1357
+ property :title, as: 'title'
1358
+ end
1359
+ end
1360
+
1361
+ class I18nLanguage
1362
+ # @private
1363
+ class Representation < Google::Apis::Core::JsonRepresentation
1364
+ property :etag, as: 'etag'
1365
+ property :id, as: 'id'
1366
+ property :kind, as: 'kind'
1367
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::I18nLanguageSnippet, decorator: Google::Apis::YoutubeV3::I18nLanguageSnippet::Representation
1368
+
1369
+ end
1370
+ end
1371
+
1372
+ class ListI18nLanguagesResponse
1373
+ # @private
1374
+ class Representation < Google::Apis::Core::JsonRepresentation
1375
+ property :etag, as: 'etag'
1376
+ property :event_id, as: 'eventId'
1377
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::I18nLanguage, decorator: Google::Apis::YoutubeV3::I18nLanguage::Representation
1378
+
1379
+ property :kind, as: 'kind'
1380
+ property :visitor_id, as: 'visitorId'
1381
+ end
1382
+ end
1383
+
1384
+ class I18nLanguageSnippet
1385
+ # @private
1386
+ class Representation < Google::Apis::Core::JsonRepresentation
1387
+ property :hl, as: 'hl'
1388
+ property :name, as: 'name'
1389
+ end
1390
+ end
1391
+
1392
+ class I18nRegion
1393
+ # @private
1394
+ class Representation < Google::Apis::Core::JsonRepresentation
1395
+ property :etag, as: 'etag'
1396
+ property :id, as: 'id'
1397
+ property :kind, as: 'kind'
1398
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::I18nRegionSnippet, decorator: Google::Apis::YoutubeV3::I18nRegionSnippet::Representation
1399
+
1400
+ end
1401
+ end
1402
+
1403
+ class ListI18nRegionsResponse
1404
+ # @private
1405
+ class Representation < Google::Apis::Core::JsonRepresentation
1406
+ property :etag, as: 'etag'
1407
+ property :event_id, as: 'eventId'
1408
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::I18nRegion, decorator: Google::Apis::YoutubeV3::I18nRegion::Representation
1409
+
1410
+ property :kind, as: 'kind'
1411
+ property :visitor_id, as: 'visitorId'
1412
+ end
1413
+ end
1414
+
1415
+ class I18nRegionSnippet
1416
+ # @private
1417
+ class Representation < Google::Apis::Core::JsonRepresentation
1418
+ property :gl, as: 'gl'
1419
+ property :name, as: 'name'
1420
+ end
1421
+ end
1422
+
1423
+ class ImageSettings
1424
+ # @private
1425
+ class Representation < Google::Apis::Core::JsonRepresentation
1426
+ property :background_image_url, as: 'backgroundImageUrl', class: Google::Apis::YoutubeV3::LocalizedProperty, decorator: Google::Apis::YoutubeV3::LocalizedProperty::Representation
1427
+
1428
+ property :banner_external_url, as: 'bannerExternalUrl'
1429
+ property :banner_image_url, as: 'bannerImageUrl'
1430
+ property :banner_mobile_extra_hd_image_url, as: 'bannerMobileExtraHdImageUrl'
1431
+ property :banner_mobile_hd_image_url, as: 'bannerMobileHdImageUrl'
1432
+ property :banner_mobile_image_url, as: 'bannerMobileImageUrl'
1433
+ property :banner_mobile_low_image_url, as: 'bannerMobileLowImageUrl'
1434
+ property :banner_mobile_medium_hd_image_url, as: 'bannerMobileMediumHdImageUrl'
1435
+ property :banner_tablet_extra_hd_image_url, as: 'bannerTabletExtraHdImageUrl'
1436
+ property :banner_tablet_hd_image_url, as: 'bannerTabletHdImageUrl'
1437
+ property :banner_tablet_image_url, as: 'bannerTabletImageUrl'
1438
+ property :banner_tablet_low_image_url, as: 'bannerTabletLowImageUrl'
1439
+ property :banner_tv_high_image_url, as: 'bannerTvHighImageUrl'
1440
+ property :banner_tv_image_url, as: 'bannerTvImageUrl'
1441
+ property :banner_tv_low_image_url, as: 'bannerTvLowImageUrl'
1442
+ property :banner_tv_medium_image_url, as: 'bannerTvMediumImageUrl'
1443
+ property :large_branded_banner_image_imap_script, as: 'largeBrandedBannerImageImapScript', class: Google::Apis::YoutubeV3::LocalizedProperty, decorator: Google::Apis::YoutubeV3::LocalizedProperty::Representation
1444
+
1445
+ property :large_branded_banner_image_url, as: 'largeBrandedBannerImageUrl', class: Google::Apis::YoutubeV3::LocalizedProperty, decorator: Google::Apis::YoutubeV3::LocalizedProperty::Representation
1446
+
1447
+ property :small_branded_banner_image_imap_script, as: 'smallBrandedBannerImageImapScript', class: Google::Apis::YoutubeV3::LocalizedProperty, decorator: Google::Apis::YoutubeV3::LocalizedProperty::Representation
1448
+
1449
+ property :small_branded_banner_image_url, as: 'smallBrandedBannerImageUrl', class: Google::Apis::YoutubeV3::LocalizedProperty, decorator: Google::Apis::YoutubeV3::LocalizedProperty::Representation
1450
+
1451
+ property :tracking_image_url, as: 'trackingImageUrl'
1452
+ property :watch_icon_image_url, as: 'watchIconImageUrl'
1453
+ end
1454
+ end
1455
+
1456
+ class IngestionInfo
1457
+ # @private
1458
+ class Representation < Google::Apis::Core::JsonRepresentation
1459
+ property :backup_ingestion_address, as: 'backupIngestionAddress'
1460
+ property :ingestion_address, as: 'ingestionAddress'
1461
+ property :stream_name, as: 'streamName'
1462
+ end
1463
+ end
1464
+
1465
+ class InvideoBranding
1466
+ # @private
1467
+ class Representation < Google::Apis::Core::JsonRepresentation
1468
+ property :image_bytes, :base64 => true, as: 'imageBytes'
1469
+ property :image_url, as: 'imageUrl'
1470
+ property :position, as: 'position', class: Google::Apis::YoutubeV3::InvideoPosition, decorator: Google::Apis::YoutubeV3::InvideoPosition::Representation
1471
+
1472
+ property :target_channel_id, as: 'targetChannelId'
1473
+ property :timing, as: 'timing', class: Google::Apis::YoutubeV3::InvideoTiming, decorator: Google::Apis::YoutubeV3::InvideoTiming::Representation
1474
+
1475
+ end
1476
+ end
1477
+
1478
+ class InvideoPosition
1479
+ # @private
1480
+ class Representation < Google::Apis::Core::JsonRepresentation
1481
+ property :corner_position, as: 'cornerPosition'
1482
+ property :type, as: 'type'
1483
+ end
1484
+ end
1485
+
1486
+ class InvideoPromotion
1487
+ # @private
1488
+ class Representation < Google::Apis::Core::JsonRepresentation
1489
+ property :default_timing, as: 'defaultTiming', class: Google::Apis::YoutubeV3::InvideoTiming, decorator: Google::Apis::YoutubeV3::InvideoTiming::Representation
1490
+
1491
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::PromotedItem, decorator: Google::Apis::YoutubeV3::PromotedItem::Representation
1492
+
1493
+ property :position, as: 'position', class: Google::Apis::YoutubeV3::InvideoPosition, decorator: Google::Apis::YoutubeV3::InvideoPosition::Representation
1494
+
1495
+ property :use_smart_timing, as: 'useSmartTiming'
1496
+ end
1497
+ end
1498
+
1499
+ class InvideoTiming
1500
+ # @private
1501
+ class Representation < Google::Apis::Core::JsonRepresentation
1502
+ property :duration_ms, as: 'durationMs'
1503
+ property :offset_ms, as: 'offsetMs'
1504
+ property :type, as: 'type'
1505
+ end
1506
+ end
1507
+
1508
+ class LanguageTag
1509
+ # @private
1510
+ class Representation < Google::Apis::Core::JsonRepresentation
1511
+ property :value, as: 'value'
1512
+ end
1513
+ end
1514
+
1515
+ class LiveBroadcast
1516
+ # @private
1517
+ class Representation < Google::Apis::Core::JsonRepresentation
1518
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::LiveBroadcastContentDetails, decorator: Google::Apis::YoutubeV3::LiveBroadcastContentDetails::Representation
1519
+
1520
+ property :etag, as: 'etag'
1521
+ property :id, as: 'id'
1522
+ property :kind, as: 'kind'
1523
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::LiveBroadcastSnippet, decorator: Google::Apis::YoutubeV3::LiveBroadcastSnippet::Representation
1524
+
1525
+ property :statistics, as: 'statistics', class: Google::Apis::YoutubeV3::LiveBroadcastStatistics, decorator: Google::Apis::YoutubeV3::LiveBroadcastStatistics::Representation
1526
+
1527
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::LiveBroadcastStatus, decorator: Google::Apis::YoutubeV3::LiveBroadcastStatus::Representation
1528
+
1529
+ property :topic_details, as: 'topicDetails', class: Google::Apis::YoutubeV3::LiveBroadcastTopicDetails, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopicDetails::Representation
1530
+
1531
+ end
1532
+ end
1533
+
1534
+ class LiveBroadcastContentDetails
1535
+ # @private
1536
+ class Representation < Google::Apis::Core::JsonRepresentation
1537
+ property :bound_stream_id, as: 'boundStreamId'
1538
+ property :enable_closed_captions, as: 'enableClosedCaptions'
1539
+ property :enable_content_encryption, as: 'enableContentEncryption'
1540
+ property :enable_dvr, as: 'enableDvr'
1541
+ property :enable_embed, as: 'enableEmbed'
1542
+ property :enable_low_latency, as: 'enableLowLatency'
1543
+ property :monitor_stream, as: 'monitorStream', class: Google::Apis::YoutubeV3::MonitorStreamInfo, decorator: Google::Apis::YoutubeV3::MonitorStreamInfo::Representation
1544
+
1545
+ property :record_from_start, as: 'recordFromStart'
1546
+ property :start_with_slate, as: 'startWithSlate'
1547
+ end
1548
+ end
1549
+
1550
+ class ListLiveBroadcastsResponse
1551
+ # @private
1552
+ class Representation < Google::Apis::Core::JsonRepresentation
1553
+ property :etag, as: 'etag'
1554
+ property :event_id, as: 'eventId'
1555
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::LiveBroadcast, decorator: Google::Apis::YoutubeV3::LiveBroadcast::Representation
1556
+
1557
+ property :kind, as: 'kind'
1558
+ property :next_page_token, as: 'nextPageToken'
1559
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1560
+
1561
+ property :prev_page_token, as: 'prevPageToken'
1562
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1563
+
1564
+ property :visitor_id, as: 'visitorId'
1565
+ end
1566
+ end
1567
+
1568
+ class LiveBroadcastSnippet
1569
+ # @private
1570
+ class Representation < Google::Apis::Core::JsonRepresentation
1571
+ property :actual_end_time, as: 'actualEndTime', type: DateTime
1572
+
1573
+ property :actual_start_time, as: 'actualStartTime', type: DateTime
1574
+
1575
+ property :channel_id, as: 'channelId'
1576
+ property :description, as: 'description'
1577
+ property :is_default_broadcast, as: 'isDefaultBroadcast'
1578
+ property :published_at, as: 'publishedAt', type: DateTime
1579
+
1580
+ property :scheduled_end_time, as: 'scheduledEndTime', type: DateTime
1581
+
1582
+ property :scheduled_start_time, as: 'scheduledStartTime', type: DateTime
1583
+
1584
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
1585
+
1586
+ property :title, as: 'title'
1587
+ end
1588
+ end
1589
+
1590
+ class LiveBroadcastStatistics
1591
+ # @private
1592
+ class Representation < Google::Apis::Core::JsonRepresentation
1593
+ property :concurrent_viewers, as: 'concurrentViewers'
1594
+ property :total_chat_count, as: 'totalChatCount'
1595
+ end
1596
+ end
1597
+
1598
+ class LiveBroadcastStatus
1599
+ # @private
1600
+ class Representation < Google::Apis::Core::JsonRepresentation
1601
+ property :life_cycle_status, as: 'lifeCycleStatus'
1602
+ property :live_broadcast_priority, as: 'liveBroadcastPriority'
1603
+ property :privacy_status, as: 'privacyStatus'
1604
+ property :recording_status, as: 'recordingStatus'
1605
+ end
1606
+ end
1607
+
1608
+ class LiveBroadcastTopic
1609
+ # @private
1610
+ class Representation < Google::Apis::Core::JsonRepresentation
1611
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::LiveBroadcastTopicSnippet, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopicSnippet::Representation
1612
+
1613
+ property :type, as: 'type'
1614
+ property :unmatched, as: 'unmatched'
1615
+ end
1616
+ end
1617
+
1618
+ class LiveBroadcastTopicDetails
1619
+ # @private
1620
+ class Representation < Google::Apis::Core::JsonRepresentation
1621
+ collection :topics, as: 'topics', class: Google::Apis::YoutubeV3::LiveBroadcastTopic, decorator: Google::Apis::YoutubeV3::LiveBroadcastTopic::Representation
1622
+
1623
+ end
1624
+ end
1625
+
1626
+ class LiveBroadcastTopicSnippet
1627
+ # @private
1628
+ class Representation < Google::Apis::Core::JsonRepresentation
1629
+ property :name, as: 'name'
1630
+ property :release_date, as: 'releaseDate'
1631
+ end
1632
+ end
1633
+
1634
+ class LiveStream
1635
+ # @private
1636
+ class Representation < Google::Apis::Core::JsonRepresentation
1637
+ property :cdn, as: 'cdn', class: Google::Apis::YoutubeV3::CdnSettings, decorator: Google::Apis::YoutubeV3::CdnSettings::Representation
1638
+
1639
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::LiveStreamContentDetails, decorator: Google::Apis::YoutubeV3::LiveStreamContentDetails::Representation
1640
+
1641
+ property :etag, as: 'etag'
1642
+ property :id, as: 'id'
1643
+ property :kind, as: 'kind'
1644
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::LiveStreamSnippet, decorator: Google::Apis::YoutubeV3::LiveStreamSnippet::Representation
1645
+
1646
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::LiveStreamStatus, decorator: Google::Apis::YoutubeV3::LiveStreamStatus::Representation
1647
+
1648
+ end
1649
+ end
1650
+
1651
+ class LiveStreamConfigurationIssue
1652
+ # @private
1653
+ class Representation < Google::Apis::Core::JsonRepresentation
1654
+ property :description, as: 'description'
1655
+ property :reason, as: 'reason'
1656
+ property :severity, as: 'severity'
1657
+ property :type, as: 'type'
1658
+ end
1659
+ end
1660
+
1661
+ class LiveStreamContentDetails
1662
+ # @private
1663
+ class Representation < Google::Apis::Core::JsonRepresentation
1664
+ property :closed_captions_ingestion_url, as: 'closedCaptionsIngestionUrl'
1665
+ property :is_reusable, as: 'isReusable'
1666
+ end
1667
+ end
1668
+
1669
+ class LiveStreamHealthStatus
1670
+ # @private
1671
+ class Representation < Google::Apis::Core::JsonRepresentation
1672
+ collection :configuration_issues, as: 'configurationIssues', class: Google::Apis::YoutubeV3::LiveStreamConfigurationIssue, decorator: Google::Apis::YoutubeV3::LiveStreamConfigurationIssue::Representation
1673
+
1674
+ property :last_update_time_s, as: 'lastUpdateTimeS'
1675
+ property :status, as: 'status'
1676
+ end
1677
+ end
1678
+
1679
+ class ListLiveStreamsResponse
1680
+ # @private
1681
+ class Representation < Google::Apis::Core::JsonRepresentation
1682
+ property :etag, as: 'etag'
1683
+ property :event_id, as: 'eventId'
1684
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::LiveStream, decorator: Google::Apis::YoutubeV3::LiveStream::Representation
1685
+
1686
+ property :kind, as: 'kind'
1687
+ property :next_page_token, as: 'nextPageToken'
1688
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1689
+
1690
+ property :prev_page_token, as: 'prevPageToken'
1691
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1692
+
1693
+ property :visitor_id, as: 'visitorId'
1694
+ end
1695
+ end
1696
+
1697
+ class LiveStreamSnippet
1698
+ # @private
1699
+ class Representation < Google::Apis::Core::JsonRepresentation
1700
+ property :channel_id, as: 'channelId'
1701
+ property :description, as: 'description'
1702
+ property :is_default_stream, as: 'isDefaultStream'
1703
+ property :published_at, as: 'publishedAt', type: DateTime
1704
+
1705
+ property :title, as: 'title'
1706
+ end
1707
+ end
1708
+
1709
+ class LiveStreamStatus
1710
+ # @private
1711
+ class Representation < Google::Apis::Core::JsonRepresentation
1712
+ property :health_status, as: 'healthStatus', class: Google::Apis::YoutubeV3::LiveStreamHealthStatus, decorator: Google::Apis::YoutubeV3::LiveStreamHealthStatus::Representation
1713
+
1714
+ property :stream_status, as: 'streamStatus'
1715
+ end
1716
+ end
1717
+
1718
+ class LocalizedProperty
1719
+ # @private
1720
+ class Representation < Google::Apis::Core::JsonRepresentation
1721
+ property :default, as: 'default'
1722
+ property :default_language, as: 'defaultLanguage', class: Google::Apis::YoutubeV3::LanguageTag, decorator: Google::Apis::YoutubeV3::LanguageTag::Representation
1723
+
1724
+ collection :localized, as: 'localized', class: Google::Apis::YoutubeV3::LocalizedString, decorator: Google::Apis::YoutubeV3::LocalizedString::Representation
1725
+
1726
+ end
1727
+ end
1728
+
1729
+ class LocalizedString
1730
+ # @private
1731
+ class Representation < Google::Apis::Core::JsonRepresentation
1732
+ property :language, as: 'language'
1733
+ property :value, as: 'value'
1734
+ end
1735
+ end
1736
+
1737
+ class MonitorStreamInfo
1738
+ # @private
1739
+ class Representation < Google::Apis::Core::JsonRepresentation
1740
+ property :broadcast_stream_delay_ms, as: 'broadcastStreamDelayMs'
1741
+ property :embed_html, as: 'embedHtml'
1742
+ property :enable_monitor_stream, as: 'enableMonitorStream'
1743
+ end
1744
+ end
1745
+
1746
+ class PageInfo
1747
+ # @private
1748
+ class Representation < Google::Apis::Core::JsonRepresentation
1749
+ property :results_per_page, as: 'resultsPerPage'
1750
+ property :total_results, as: 'totalResults'
1751
+ end
1752
+ end
1753
+
1754
+ class Playlist
1755
+ # @private
1756
+ class Representation < Google::Apis::Core::JsonRepresentation
1757
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::PlaylistContentDetails, decorator: Google::Apis::YoutubeV3::PlaylistContentDetails::Representation
1758
+
1759
+ property :etag, as: 'etag'
1760
+ property :id, as: 'id'
1761
+ property :kind, as: 'kind'
1762
+ hash :localizations, as: 'localizations', class: Google::Apis::YoutubeV3::PlaylistLocalization, decorator: Google::Apis::YoutubeV3::PlaylistLocalization::Representation
1763
+
1764
+ property :player, as: 'player', class: Google::Apis::YoutubeV3::PlaylistPlayer, decorator: Google::Apis::YoutubeV3::PlaylistPlayer::Representation
1765
+
1766
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::PlaylistSnippet, decorator: Google::Apis::YoutubeV3::PlaylistSnippet::Representation
1767
+
1768
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::PlaylistStatus, decorator: Google::Apis::YoutubeV3::PlaylistStatus::Representation
1769
+
1770
+ end
1771
+ end
1772
+
1773
+ class PlaylistContentDetails
1774
+ # @private
1775
+ class Representation < Google::Apis::Core::JsonRepresentation
1776
+ property :item_count, as: 'itemCount'
1777
+ end
1778
+ end
1779
+
1780
+ class PlaylistItem
1781
+ # @private
1782
+ class Representation < Google::Apis::Core::JsonRepresentation
1783
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::PlaylistItemContentDetails, decorator: Google::Apis::YoutubeV3::PlaylistItemContentDetails::Representation
1784
+
1785
+ property :etag, as: 'etag'
1786
+ property :id, as: 'id'
1787
+ property :kind, as: 'kind'
1788
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::PlaylistItemSnippet, decorator: Google::Apis::YoutubeV3::PlaylistItemSnippet::Representation
1789
+
1790
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::PlaylistItemStatus, decorator: Google::Apis::YoutubeV3::PlaylistItemStatus::Representation
1791
+
1792
+ end
1793
+ end
1794
+
1795
+ class PlaylistItemContentDetails
1796
+ # @private
1797
+ class Representation < Google::Apis::Core::JsonRepresentation
1798
+ property :end_at, as: 'endAt'
1799
+ property :note, as: 'note'
1800
+ property :start_at, as: 'startAt'
1801
+ property :video_id, as: 'videoId'
1802
+ end
1803
+ end
1804
+
1805
+ class ListPlaylistItemsResponse
1806
+ # @private
1807
+ class Representation < Google::Apis::Core::JsonRepresentation
1808
+ property :etag, as: 'etag'
1809
+ property :event_id, as: 'eventId'
1810
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::PlaylistItem, decorator: Google::Apis::YoutubeV3::PlaylistItem::Representation
1811
+
1812
+ property :kind, as: 'kind'
1813
+ property :next_page_token, as: 'nextPageToken'
1814
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1815
+
1816
+ property :prev_page_token, as: 'prevPageToken'
1817
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1818
+
1819
+ property :visitor_id, as: 'visitorId'
1820
+ end
1821
+ end
1822
+
1823
+ class PlaylistItemSnippet
1824
+ # @private
1825
+ class Representation < Google::Apis::Core::JsonRepresentation
1826
+ property :channel_id, as: 'channelId'
1827
+ property :channel_title, as: 'channelTitle'
1828
+ property :description, as: 'description'
1829
+ property :playlist_id, as: 'playlistId'
1830
+ property :position, as: 'position'
1831
+ property :published_at, as: 'publishedAt', type: DateTime
1832
+
1833
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
1834
+
1835
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
1836
+
1837
+ property :title, as: 'title'
1838
+ end
1839
+ end
1840
+
1841
+ class PlaylistItemStatus
1842
+ # @private
1843
+ class Representation < Google::Apis::Core::JsonRepresentation
1844
+ property :privacy_status, as: 'privacyStatus'
1845
+ end
1846
+ end
1847
+
1848
+ class ListPlaylistResponse
1849
+ # @private
1850
+ class Representation < Google::Apis::Core::JsonRepresentation
1851
+ property :etag, as: 'etag'
1852
+ property :event_id, as: 'eventId'
1853
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Playlist, decorator: Google::Apis::YoutubeV3::Playlist::Representation
1854
+
1855
+ property :kind, as: 'kind'
1856
+ property :next_page_token, as: 'nextPageToken'
1857
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1858
+
1859
+ property :prev_page_token, as: 'prevPageToken'
1860
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1861
+
1862
+ property :visitor_id, as: 'visitorId'
1863
+ end
1864
+ end
1865
+
1866
+ class PlaylistLocalization
1867
+ # @private
1868
+ class Representation < Google::Apis::Core::JsonRepresentation
1869
+ property :description, as: 'description'
1870
+ property :title, as: 'title'
1871
+ end
1872
+ end
1873
+
1874
+ class PlaylistPlayer
1875
+ # @private
1876
+ class Representation < Google::Apis::Core::JsonRepresentation
1877
+ property :embed_html, as: 'embedHtml'
1878
+ end
1879
+ end
1880
+
1881
+ class PlaylistSnippet
1882
+ # @private
1883
+ class Representation < Google::Apis::Core::JsonRepresentation
1884
+ property :channel_id, as: 'channelId'
1885
+ property :channel_title, as: 'channelTitle'
1886
+ property :default_language, as: 'defaultLanguage'
1887
+ property :description, as: 'description'
1888
+ property :localized, as: 'localized', class: Google::Apis::YoutubeV3::PlaylistLocalization, decorator: Google::Apis::YoutubeV3::PlaylistLocalization::Representation
1889
+
1890
+ property :published_at, as: 'publishedAt', type: DateTime
1891
+
1892
+ collection :tags, as: 'tags'
1893
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
1894
+
1895
+ property :title, as: 'title'
1896
+ end
1897
+ end
1898
+
1899
+ class PlaylistStatus
1900
+ # @private
1901
+ class Representation < Google::Apis::Core::JsonRepresentation
1902
+ property :privacy_status, as: 'privacyStatus'
1903
+ end
1904
+ end
1905
+
1906
+ class PromotedItem
1907
+ # @private
1908
+ class Representation < Google::Apis::Core::JsonRepresentation
1909
+ property :custom_message, as: 'customMessage'
1910
+ property :id, as: 'id', class: Google::Apis::YoutubeV3::PromotedItemId, decorator: Google::Apis::YoutubeV3::PromotedItemId::Representation
1911
+
1912
+ property :promoted_by_content_owner, as: 'promotedByContentOwner'
1913
+ property :timing, as: 'timing', class: Google::Apis::YoutubeV3::InvideoTiming, decorator: Google::Apis::YoutubeV3::InvideoTiming::Representation
1914
+
1915
+ end
1916
+ end
1917
+
1918
+ class PromotedItemId
1919
+ # @private
1920
+ class Representation < Google::Apis::Core::JsonRepresentation
1921
+ property :recently_uploaded_by, as: 'recentlyUploadedBy'
1922
+ property :type, as: 'type'
1923
+ property :video_id, as: 'videoId'
1924
+ property :website_url, as: 'websiteUrl'
1925
+ end
1926
+ end
1927
+
1928
+ class PropertyValue
1929
+ # @private
1930
+ class Representation < Google::Apis::Core::JsonRepresentation
1931
+ property :property, as: 'property'
1932
+ property :value, as: 'value'
1933
+ end
1934
+ end
1935
+
1936
+ class ResourceId
1937
+ # @private
1938
+ class Representation < Google::Apis::Core::JsonRepresentation
1939
+ property :channel_id, as: 'channelId'
1940
+ property :kind, as: 'kind'
1941
+ property :playlist_id, as: 'playlistId'
1942
+ property :video_id, as: 'videoId'
1943
+ end
1944
+ end
1945
+
1946
+ class SearchListsResponse
1947
+ # @private
1948
+ class Representation < Google::Apis::Core::JsonRepresentation
1949
+ property :etag, as: 'etag'
1950
+ property :event_id, as: 'eventId'
1951
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::SearchResult, decorator: Google::Apis::YoutubeV3::SearchResult::Representation
1952
+
1953
+ property :kind, as: 'kind'
1954
+ property :next_page_token, as: 'nextPageToken'
1955
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
1956
+
1957
+ property :prev_page_token, as: 'prevPageToken'
1958
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
1959
+
1960
+ property :visitor_id, as: 'visitorId'
1961
+ end
1962
+ end
1963
+
1964
+ class SearchResult
1965
+ # @private
1966
+ class Representation < Google::Apis::Core::JsonRepresentation
1967
+ property :etag, as: 'etag'
1968
+ property :id, as: 'id', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
1969
+
1970
+ property :kind, as: 'kind'
1971
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::SearchResultSnippet, decorator: Google::Apis::YoutubeV3::SearchResultSnippet::Representation
1972
+
1973
+ end
1974
+ end
1975
+
1976
+ class SearchResultSnippet
1977
+ # @private
1978
+ class Representation < Google::Apis::Core::JsonRepresentation
1979
+ property :channel_id, as: 'channelId'
1980
+ property :channel_title, as: 'channelTitle'
1981
+ property :description, as: 'description'
1982
+ property :live_broadcast_content, as: 'liveBroadcastContent'
1983
+ property :published_at, as: 'publishedAt', type: DateTime
1984
+
1985
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
1986
+
1987
+ property :title, as: 'title'
1988
+ end
1989
+ end
1990
+
1991
+ class Subscription
1992
+ # @private
1993
+ class Representation < Google::Apis::Core::JsonRepresentation
1994
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::SubscriptionContentDetails, decorator: Google::Apis::YoutubeV3::SubscriptionContentDetails::Representation
1995
+
1996
+ property :etag, as: 'etag'
1997
+ property :id, as: 'id'
1998
+ property :kind, as: 'kind'
1999
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::SubscriptionSnippet, decorator: Google::Apis::YoutubeV3::SubscriptionSnippet::Representation
2000
+
2001
+ property :subscriber_snippet, as: 'subscriberSnippet', class: Google::Apis::YoutubeV3::SubscriptionSubscriberSnippet, decorator: Google::Apis::YoutubeV3::SubscriptionSubscriberSnippet::Representation
2002
+
2003
+ end
2004
+ end
2005
+
2006
+ class SubscriptionContentDetails
2007
+ # @private
2008
+ class Representation < Google::Apis::Core::JsonRepresentation
2009
+ property :activity_type, as: 'activityType'
2010
+ property :new_item_count, as: 'newItemCount'
2011
+ property :total_item_count, as: 'totalItemCount'
2012
+ end
2013
+ end
2014
+
2015
+ class ListSubscriptionResponse
2016
+ # @private
2017
+ class Representation < Google::Apis::Core::JsonRepresentation
2018
+ property :etag, as: 'etag'
2019
+ property :event_id, as: 'eventId'
2020
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Subscription, decorator: Google::Apis::YoutubeV3::Subscription::Representation
2021
+
2022
+ property :kind, as: 'kind'
2023
+ property :next_page_token, as: 'nextPageToken'
2024
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
2025
+
2026
+ property :prev_page_token, as: 'prevPageToken'
2027
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
2028
+
2029
+ property :visitor_id, as: 'visitorId'
2030
+ end
2031
+ end
2032
+
2033
+ class SubscriptionSnippet
2034
+ # @private
2035
+ class Representation < Google::Apis::Core::JsonRepresentation
2036
+ property :channel_id, as: 'channelId'
2037
+ property :channel_title, as: 'channelTitle'
2038
+ property :description, as: 'description'
2039
+ property :published_at, as: 'publishedAt', type: DateTime
2040
+
2041
+ property :resource_id, as: 'resourceId', class: Google::Apis::YoutubeV3::ResourceId, decorator: Google::Apis::YoutubeV3::ResourceId::Representation
2042
+
2043
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
2044
+
2045
+ property :title, as: 'title'
2046
+ end
2047
+ end
2048
+
2049
+ class SubscriptionSubscriberSnippet
2050
+ # @private
2051
+ class Representation < Google::Apis::Core::JsonRepresentation
2052
+ property :channel_id, as: 'channelId'
2053
+ property :description, as: 'description'
2054
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
2055
+
2056
+ property :title, as: 'title'
2057
+ end
2058
+ end
2059
+
2060
+ class Thumbnail
2061
+ # @private
2062
+ class Representation < Google::Apis::Core::JsonRepresentation
2063
+ property :height, as: 'height'
2064
+ property :url, as: 'url'
2065
+ property :width, as: 'width'
2066
+ end
2067
+ end
2068
+
2069
+ class ThumbnailDetails
2070
+ # @private
2071
+ class Representation < Google::Apis::Core::JsonRepresentation
2072
+ property :default, as: 'default', class: Google::Apis::YoutubeV3::Thumbnail, decorator: Google::Apis::YoutubeV3::Thumbnail::Representation
2073
+
2074
+ property :high, as: 'high', class: Google::Apis::YoutubeV3::Thumbnail, decorator: Google::Apis::YoutubeV3::Thumbnail::Representation
2075
+
2076
+ property :maxres, as: 'maxres', class: Google::Apis::YoutubeV3::Thumbnail, decorator: Google::Apis::YoutubeV3::Thumbnail::Representation
2077
+
2078
+ property :medium, as: 'medium', class: Google::Apis::YoutubeV3::Thumbnail, decorator: Google::Apis::YoutubeV3::Thumbnail::Representation
2079
+
2080
+ property :standard, as: 'standard', class: Google::Apis::YoutubeV3::Thumbnail, decorator: Google::Apis::YoutubeV3::Thumbnail::Representation
2081
+
2082
+ end
2083
+ end
2084
+
2085
+ class SetThumbnailResponse
2086
+ # @private
2087
+ class Representation < Google::Apis::Core::JsonRepresentation
2088
+ property :etag, as: 'etag'
2089
+ property :event_id, as: 'eventId'
2090
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
2091
+
2092
+ property :kind, as: 'kind'
2093
+ property :visitor_id, as: 'visitorId'
2094
+ end
2095
+ end
2096
+
2097
+ class TokenPagination
2098
+ # @private
2099
+ class Representation < Google::Apis::Core::JsonRepresentation
2100
+ end
2101
+ end
2102
+
2103
+ class Video
2104
+ # @private
2105
+ class Representation < Google::Apis::Core::JsonRepresentation
2106
+ property :age_gating, as: 'ageGating', class: Google::Apis::YoutubeV3::VideoAgeGating, decorator: Google::Apis::YoutubeV3::VideoAgeGating::Representation
2107
+
2108
+ property :content_details, as: 'contentDetails', class: Google::Apis::YoutubeV3::VideoContentDetails, decorator: Google::Apis::YoutubeV3::VideoContentDetails::Representation
2109
+
2110
+ property :conversion_pings, as: 'conversionPings', class: Google::Apis::YoutubeV3::VideoConversionPings, decorator: Google::Apis::YoutubeV3::VideoConversionPings::Representation
2111
+
2112
+ property :etag, as: 'etag'
2113
+ property :file_details, as: 'fileDetails', class: Google::Apis::YoutubeV3::VideoFileDetails, decorator: Google::Apis::YoutubeV3::VideoFileDetails::Representation
2114
+
2115
+ property :id, as: 'id'
2116
+ property :kind, as: 'kind'
2117
+ property :live_streaming_details, as: 'liveStreamingDetails', class: Google::Apis::YoutubeV3::VideoLiveStreamingDetails, decorator: Google::Apis::YoutubeV3::VideoLiveStreamingDetails::Representation
2118
+
2119
+ hash :localizations, as: 'localizations', class: Google::Apis::YoutubeV3::VideoLocalization, decorator: Google::Apis::YoutubeV3::VideoLocalization::Representation
2120
+
2121
+ property :monetization_details, as: 'monetizationDetails', class: Google::Apis::YoutubeV3::VideoMonetizationDetails, decorator: Google::Apis::YoutubeV3::VideoMonetizationDetails::Representation
2122
+
2123
+ property :player, as: 'player', class: Google::Apis::YoutubeV3::VideoPlayer, decorator: Google::Apis::YoutubeV3::VideoPlayer::Representation
2124
+
2125
+ property :processing_details, as: 'processingDetails', class: Google::Apis::YoutubeV3::VideoProcessingDetails, decorator: Google::Apis::YoutubeV3::VideoProcessingDetails::Representation
2126
+
2127
+ property :project_details, as: 'projectDetails', class: Google::Apis::YoutubeV3::VideoProjectDetails, decorator: Google::Apis::YoutubeV3::VideoProjectDetails::Representation
2128
+
2129
+ property :recording_details, as: 'recordingDetails', class: Google::Apis::YoutubeV3::VideoRecordingDetails, decorator: Google::Apis::YoutubeV3::VideoRecordingDetails::Representation
2130
+
2131
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::VideoSnippet, decorator: Google::Apis::YoutubeV3::VideoSnippet::Representation
2132
+
2133
+ property :statistics, as: 'statistics', class: Google::Apis::YoutubeV3::VideoStatistics, decorator: Google::Apis::YoutubeV3::VideoStatistics::Representation
2134
+
2135
+ property :status, as: 'status', class: Google::Apis::YoutubeV3::VideoStatus, decorator: Google::Apis::YoutubeV3::VideoStatus::Representation
2136
+
2137
+ property :suggestions, as: 'suggestions', class: Google::Apis::YoutubeV3::VideoSuggestions, decorator: Google::Apis::YoutubeV3::VideoSuggestions::Representation
2138
+
2139
+ property :topic_details, as: 'topicDetails', class: Google::Apis::YoutubeV3::VideoTopicDetails, decorator: Google::Apis::YoutubeV3::VideoTopicDetails::Representation
2140
+
2141
+ end
2142
+ end
2143
+
2144
+ class VideoAbuseReport
2145
+ # @private
2146
+ class Representation < Google::Apis::Core::JsonRepresentation
2147
+ property :comments, as: 'comments'
2148
+ property :language, as: 'language'
2149
+ property :reason_id, as: 'reasonId'
2150
+ property :secondary_reason_id, as: 'secondaryReasonId'
2151
+ property :video_id, as: 'videoId'
2152
+ end
2153
+ end
2154
+
2155
+ class VideoAbuseReportReason
2156
+ # @private
2157
+ class Representation < Google::Apis::Core::JsonRepresentation
2158
+ property :etag, as: 'etag'
2159
+ property :id, as: 'id'
2160
+ property :kind, as: 'kind'
2161
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::VideoAbuseReportReasonSnippet, decorator: Google::Apis::YoutubeV3::VideoAbuseReportReasonSnippet::Representation
2162
+
2163
+ end
2164
+ end
2165
+
2166
+ class ListVideoAbuseReportReasonResponse
2167
+ # @private
2168
+ class Representation < Google::Apis::Core::JsonRepresentation
2169
+ property :etag, as: 'etag'
2170
+ property :event_id, as: 'eventId'
2171
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::VideoAbuseReportReason, decorator: Google::Apis::YoutubeV3::VideoAbuseReportReason::Representation
2172
+
2173
+ property :kind, as: 'kind'
2174
+ property :visitor_id, as: 'visitorId'
2175
+ end
2176
+ end
2177
+
2178
+ class VideoAbuseReportReasonSnippet
2179
+ # @private
2180
+ class Representation < Google::Apis::Core::JsonRepresentation
2181
+ property :label, as: 'label'
2182
+ collection :secondary_reasons, as: 'secondaryReasons', class: Google::Apis::YoutubeV3::VideoAbuseReportSecondaryReason, decorator: Google::Apis::YoutubeV3::VideoAbuseReportSecondaryReason::Representation
2183
+
2184
+ end
2185
+ end
2186
+
2187
+ class VideoAbuseReportSecondaryReason
2188
+ # @private
2189
+ class Representation < Google::Apis::Core::JsonRepresentation
2190
+ property :id, as: 'id'
2191
+ property :label, as: 'label'
2192
+ end
2193
+ end
2194
+
2195
+ class VideoAgeGating
2196
+ # @private
2197
+ class Representation < Google::Apis::Core::JsonRepresentation
2198
+ property :alcohol_content, as: 'alcoholContent'
2199
+ property :restricted, as: 'restricted'
2200
+ property :video_game_rating, as: 'videoGameRating'
2201
+ end
2202
+ end
2203
+
2204
+ class VideoCategory
2205
+ # @private
2206
+ class Representation < Google::Apis::Core::JsonRepresentation
2207
+ property :etag, as: 'etag'
2208
+ property :id, as: 'id'
2209
+ property :kind, as: 'kind'
2210
+ property :snippet, as: 'snippet', class: Google::Apis::YoutubeV3::VideoCategorySnippet, decorator: Google::Apis::YoutubeV3::VideoCategorySnippet::Representation
2211
+
2212
+ end
2213
+ end
2214
+
2215
+ class ListVideoCategoryResponse
2216
+ # @private
2217
+ class Representation < Google::Apis::Core::JsonRepresentation
2218
+ property :etag, as: 'etag'
2219
+ property :event_id, as: 'eventId'
2220
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::VideoCategory, decorator: Google::Apis::YoutubeV3::VideoCategory::Representation
2221
+
2222
+ property :kind, as: 'kind'
2223
+ property :next_page_token, as: 'nextPageToken'
2224
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
2225
+
2226
+ property :prev_page_token, as: 'prevPageToken'
2227
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
2228
+
2229
+ property :visitor_id, as: 'visitorId'
2230
+ end
2231
+ end
2232
+
2233
+ class VideoCategorySnippet
2234
+ # @private
2235
+ class Representation < Google::Apis::Core::JsonRepresentation
2236
+ property :assignable, as: 'assignable'
2237
+ property :channel_id, as: 'channelId'
2238
+ property :title, as: 'title'
2239
+ end
2240
+ end
2241
+
2242
+ class VideoContentDetails
2243
+ # @private
2244
+ class Representation < Google::Apis::Core::JsonRepresentation
2245
+ property :caption, as: 'caption'
2246
+ property :content_rating, as: 'contentRating', class: Google::Apis::YoutubeV3::ContentRating, decorator: Google::Apis::YoutubeV3::ContentRating::Representation
2247
+
2248
+ property :country_restriction, as: 'countryRestriction', class: Google::Apis::YoutubeV3::AccessPolicy, decorator: Google::Apis::YoutubeV3::AccessPolicy::Representation
2249
+
2250
+ property :definition, as: 'definition'
2251
+ property :dimension, as: 'dimension'
2252
+ property :duration, as: 'duration'
2253
+ property :licensed_content, as: 'licensedContent'
2254
+ property :region_restriction, as: 'regionRestriction', class: Google::Apis::YoutubeV3::VideoContentDetailsRegionRestriction, decorator: Google::Apis::YoutubeV3::VideoContentDetailsRegionRestriction::Representation
2255
+
2256
+ end
2257
+ end
2258
+
2259
+ class VideoContentDetailsRegionRestriction
2260
+ # @private
2261
+ class Representation < Google::Apis::Core::JsonRepresentation
2262
+ collection :allowed, as: 'allowed'
2263
+ collection :blocked, as: 'blocked'
2264
+ end
2265
+ end
2266
+
2267
+ class VideoConversionPing
2268
+ # @private
2269
+ class Representation < Google::Apis::Core::JsonRepresentation
2270
+ property :context, as: 'context'
2271
+ property :conversion_url, as: 'conversionUrl'
2272
+ end
2273
+ end
2274
+
2275
+ class VideoConversionPings
2276
+ # @private
2277
+ class Representation < Google::Apis::Core::JsonRepresentation
2278
+ collection :pings, as: 'pings', class: Google::Apis::YoutubeV3::VideoConversionPing, decorator: Google::Apis::YoutubeV3::VideoConversionPing::Representation
2279
+
2280
+ end
2281
+ end
2282
+
2283
+ class VideoFileDetails
2284
+ # @private
2285
+ class Representation < Google::Apis::Core::JsonRepresentation
2286
+ collection :audio_streams, as: 'audioStreams', class: Google::Apis::YoutubeV3::VideoFileDetailsAudioStream, decorator: Google::Apis::YoutubeV3::VideoFileDetailsAudioStream::Representation
2287
+
2288
+ property :bitrate_bps, as: 'bitrateBps'
2289
+ property :container, as: 'container'
2290
+ property :creation_time, as: 'creationTime'
2291
+ property :duration_ms, as: 'durationMs'
2292
+ property :file_name, as: 'fileName'
2293
+ property :file_size, as: 'fileSize'
2294
+ property :file_type, as: 'fileType'
2295
+ property :recording_location, as: 'recordingLocation', class: Google::Apis::YoutubeV3::GeoPoint, decorator: Google::Apis::YoutubeV3::GeoPoint::Representation
2296
+
2297
+ collection :video_streams, as: 'videoStreams', class: Google::Apis::YoutubeV3::VideoFileDetailsVideoStream, decorator: Google::Apis::YoutubeV3::VideoFileDetailsVideoStream::Representation
2298
+
2299
+ end
2300
+ end
2301
+
2302
+ class VideoFileDetailsAudioStream
2303
+ # @private
2304
+ class Representation < Google::Apis::Core::JsonRepresentation
2305
+ property :bitrate_bps, as: 'bitrateBps'
2306
+ property :channel_count, as: 'channelCount'
2307
+ property :codec, as: 'codec'
2308
+ property :vendor, as: 'vendor'
2309
+ end
2310
+ end
2311
+
2312
+ class VideoFileDetailsVideoStream
2313
+ # @private
2314
+ class Representation < Google::Apis::Core::JsonRepresentation
2315
+ property :aspect_ratio, as: 'aspectRatio'
2316
+ property :bitrate_bps, as: 'bitrateBps'
2317
+ property :codec, as: 'codec'
2318
+ property :frame_rate_fps, as: 'frameRateFps'
2319
+ property :height_pixels, as: 'heightPixels'
2320
+ property :rotation, as: 'rotation'
2321
+ property :vendor, as: 'vendor'
2322
+ property :width_pixels, as: 'widthPixels'
2323
+ end
2324
+ end
2325
+
2326
+ class GetVideoRatingResponse
2327
+ # @private
2328
+ class Representation < Google::Apis::Core::JsonRepresentation
2329
+ property :etag, as: 'etag'
2330
+ property :event_id, as: 'eventId'
2331
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::VideoRating, decorator: Google::Apis::YoutubeV3::VideoRating::Representation
2332
+
2333
+ property :kind, as: 'kind'
2334
+ property :visitor_id, as: 'visitorId'
2335
+ end
2336
+ end
2337
+
2338
+ class ListVideosResponse
2339
+ # @private
2340
+ class Representation < Google::Apis::Core::JsonRepresentation
2341
+ property :etag, as: 'etag'
2342
+ property :event_id, as: 'eventId'
2343
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::Video, decorator: Google::Apis::YoutubeV3::Video::Representation
2344
+
2345
+ property :kind, as: 'kind'
2346
+ property :next_page_token, as: 'nextPageToken'
2347
+ property :page_info, as: 'pageInfo', class: Google::Apis::YoutubeV3::PageInfo, decorator: Google::Apis::YoutubeV3::PageInfo::Representation
2348
+
2349
+ property :prev_page_token, as: 'prevPageToken'
2350
+ property :token_pagination, as: 'tokenPagination', class: Google::Apis::YoutubeV3::TokenPagination, decorator: Google::Apis::YoutubeV3::TokenPagination::Representation
2351
+
2352
+ property :visitor_id, as: 'visitorId'
2353
+ end
2354
+ end
2355
+
2356
+ class VideoLiveStreamingDetails
2357
+ # @private
2358
+ class Representation < Google::Apis::Core::JsonRepresentation
2359
+ property :actual_end_time, as: 'actualEndTime', type: DateTime
2360
+
2361
+ property :actual_start_time, as: 'actualStartTime', type: DateTime
2362
+
2363
+ property :concurrent_viewers, as: 'concurrentViewers'
2364
+ property :scheduled_end_time, as: 'scheduledEndTime', type: DateTime
2365
+
2366
+ property :scheduled_start_time, as: 'scheduledStartTime', type: DateTime
2367
+
2368
+ end
2369
+ end
2370
+
2371
+ class VideoLocalization
2372
+ # @private
2373
+ class Representation < Google::Apis::Core::JsonRepresentation
2374
+ property :description, as: 'description'
2375
+ property :title, as: 'title'
2376
+ end
2377
+ end
2378
+
2379
+ class VideoMonetizationDetails
2380
+ # @private
2381
+ class Representation < Google::Apis::Core::JsonRepresentation
2382
+ property :access, as: 'access', class: Google::Apis::YoutubeV3::AccessPolicy, decorator: Google::Apis::YoutubeV3::AccessPolicy::Representation
2383
+
2384
+ end
2385
+ end
2386
+
2387
+ class VideoPlayer
2388
+ # @private
2389
+ class Representation < Google::Apis::Core::JsonRepresentation
2390
+ property :embed_html, as: 'embedHtml'
2391
+ end
2392
+ end
2393
+
2394
+ class VideoProcessingDetails
2395
+ # @private
2396
+ class Representation < Google::Apis::Core::JsonRepresentation
2397
+ property :editor_suggestions_availability, as: 'editorSuggestionsAvailability'
2398
+ property :file_details_availability, as: 'fileDetailsAvailability'
2399
+ property :processing_failure_reason, as: 'processingFailureReason'
2400
+ property :processing_issues_availability, as: 'processingIssuesAvailability'
2401
+ property :processing_progress, as: 'processingProgress', class: Google::Apis::YoutubeV3::VideoProcessingDetailsProcessingProgress, decorator: Google::Apis::YoutubeV3::VideoProcessingDetailsProcessingProgress::Representation
2402
+
2403
+ property :processing_status, as: 'processingStatus'
2404
+ property :tag_suggestions_availability, as: 'tagSuggestionsAvailability'
2405
+ property :thumbnails_availability, as: 'thumbnailsAvailability'
2406
+ end
2407
+ end
2408
+
2409
+ class VideoProcessingDetailsProcessingProgress
2410
+ # @private
2411
+ class Representation < Google::Apis::Core::JsonRepresentation
2412
+ property :parts_processed, as: 'partsProcessed'
2413
+ property :parts_total, as: 'partsTotal'
2414
+ property :time_left_ms, as: 'timeLeftMs'
2415
+ end
2416
+ end
2417
+
2418
+ class VideoProjectDetails
2419
+ # @private
2420
+ class Representation < Google::Apis::Core::JsonRepresentation
2421
+ collection :tags, as: 'tags'
2422
+ end
2423
+ end
2424
+
2425
+ class VideoRating
2426
+ # @private
2427
+ class Representation < Google::Apis::Core::JsonRepresentation
2428
+ property :rating, as: 'rating'
2429
+ property :video_id, as: 'videoId'
2430
+ end
2431
+ end
2432
+
2433
+ class VideoRecordingDetails
2434
+ # @private
2435
+ class Representation < Google::Apis::Core::JsonRepresentation
2436
+ property :location, as: 'location', class: Google::Apis::YoutubeV3::GeoPoint, decorator: Google::Apis::YoutubeV3::GeoPoint::Representation
2437
+
2438
+ property :location_description, as: 'locationDescription'
2439
+ property :recording_date, as: 'recordingDate', type: DateTime
2440
+
2441
+ end
2442
+ end
2443
+
2444
+ class VideoSnippet
2445
+ # @private
2446
+ class Representation < Google::Apis::Core::JsonRepresentation
2447
+ property :category_id, as: 'categoryId'
2448
+ property :channel_id, as: 'channelId'
2449
+ property :channel_title, as: 'channelTitle'
2450
+ property :default_audio_language, as: 'defaultAudioLanguage'
2451
+ property :default_language, as: 'defaultLanguage'
2452
+ property :description, as: 'description'
2453
+ property :live_broadcast_content, as: 'liveBroadcastContent'
2454
+ property :localized, as: 'localized', class: Google::Apis::YoutubeV3::VideoLocalization, decorator: Google::Apis::YoutubeV3::VideoLocalization::Representation
2455
+
2456
+ property :published_at, as: 'publishedAt', type: DateTime
2457
+
2458
+ collection :tags, as: 'tags'
2459
+ property :thumbnails, as: 'thumbnails', class: Google::Apis::YoutubeV3::ThumbnailDetails, decorator: Google::Apis::YoutubeV3::ThumbnailDetails::Representation
2460
+
2461
+ property :title, as: 'title'
2462
+ end
2463
+ end
2464
+
2465
+ class VideoStatistics
2466
+ # @private
2467
+ class Representation < Google::Apis::Core::JsonRepresentation
2468
+ property :comment_count, as: 'commentCount'
2469
+ property :dislike_count, as: 'dislikeCount'
2470
+ property :favorite_count, as: 'favoriteCount'
2471
+ property :like_count, as: 'likeCount'
2472
+ property :view_count, as: 'viewCount'
2473
+ end
2474
+ end
2475
+
2476
+ class VideoStatus
2477
+ # @private
2478
+ class Representation < Google::Apis::Core::JsonRepresentation
2479
+ property :embeddable, as: 'embeddable'
2480
+ property :failure_reason, as: 'failureReason'
2481
+ property :license, as: 'license'
2482
+ property :privacy_status, as: 'privacyStatus'
2483
+ property :public_stats_viewable, as: 'publicStatsViewable'
2484
+ property :publish_at, as: 'publishAt', type: DateTime
2485
+
2486
+ property :rejection_reason, as: 'rejectionReason'
2487
+ property :upload_status, as: 'uploadStatus'
2488
+ end
2489
+ end
2490
+
2491
+ class VideoSuggestions
2492
+ # @private
2493
+ class Representation < Google::Apis::Core::JsonRepresentation
2494
+ collection :editor_suggestions, as: 'editorSuggestions'
2495
+ collection :processing_errors, as: 'processingErrors'
2496
+ collection :processing_hints, as: 'processingHints'
2497
+ collection :processing_warnings, as: 'processingWarnings'
2498
+ collection :tag_suggestions, as: 'tagSuggestions', class: Google::Apis::YoutubeV3::VideoSuggestionsTagSuggestion, decorator: Google::Apis::YoutubeV3::VideoSuggestionsTagSuggestion::Representation
2499
+
2500
+ end
2501
+ end
2502
+
2503
+ class VideoSuggestionsTagSuggestion
2504
+ # @private
2505
+ class Representation < Google::Apis::Core::JsonRepresentation
2506
+ collection :category_restricts, as: 'categoryRestricts'
2507
+ property :tag, as: 'tag'
2508
+ end
2509
+ end
2510
+
2511
+ class VideoTopicDetails
2512
+ # @private
2513
+ class Representation < Google::Apis::Core::JsonRepresentation
2514
+ collection :relevant_topic_ids, as: 'relevantTopicIds'
2515
+ collection :topic_ids, as: 'topicIds'
2516
+ end
2517
+ end
2518
+
2519
+ class WatchSettings
2520
+ # @private
2521
+ class Representation < Google::Apis::Core::JsonRepresentation
2522
+ property :background_color, as: 'backgroundColor'
2523
+ property :featured_playlist_id, as: 'featuredPlaylistId'
2524
+ property :text_color, as: 'textColor'
2525
+ end
2526
+ end
2527
+ end
2528
+ end
2529
+ end