google-api-client 0.9.8 → 0.9.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/Gemfile +9 -1
  4. data/README.md +10 -2
  5. data/api_names.yaml +61 -110
  6. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  7. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +160 -9
  8. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +46 -0
  9. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +22 -8
  10. data/generated/google/apis/adexchangeseller_v2_0.rb +2 -3
  11. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -2
  12. data/generated/google/apis/admin_directory_v1.rb +1 -1
  13. data/generated/google/apis/admin_directory_v1/classes.rb +6 -0
  14. data/generated/google/apis/admin_directory_v1/representations.rb +1 -0
  15. data/generated/google/apis/admin_directory_v1/service.rb +2 -2
  16. data/generated/google/apis/admin_reports_v1.rb +3 -3
  17. data/generated/google/apis/admin_reports_v1/service.rb +2 -2
  18. data/generated/google/apis/adsense_v1_4.rb +1 -1
  19. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  20. data/generated/google/apis/analytics_v3.rb +1 -1
  21. data/generated/google/apis/analytics_v3/classes.rb +371 -1
  22. data/generated/google/apis/analytics_v3/representations.rb +135 -0
  23. data/generated/google/apis/analytics_v3/service.rb +218 -0
  24. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  25. data/generated/google/apis/analyticsreporting_v4/classes.rb +50 -22
  26. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  27. data/generated/google/apis/androidenterprise_v1/classes.rb +722 -48
  28. data/generated/google/apis/androidenterprise_v1/representations.rb +305 -0
  29. data/generated/google/apis/androidenterprise_v1/service.rb +1180 -146
  30. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  31. data/generated/google/apis/androidpublisher_v2/classes.rb +9 -8
  32. data/generated/google/apis/appengine_v1beta5.rb +1 -1
  33. data/generated/google/apis/appengine_v1beta5/classes.rb +430 -288
  34. data/generated/google/apis/appengine_v1beta5/representations.rb +84 -10
  35. data/generated/google/apis/appengine_v1beta5/service.rb +285 -25
  36. data/generated/google/apis/appsactivity_v1.rb +1 -1
  37. data/generated/google/apis/appstate_v1.rb +1 -1
  38. data/generated/google/apis/bigquery_v2.rb +1 -1
  39. data/generated/google/apis/bigquery_v2/classes.rb +254 -6
  40. data/generated/google/apis/bigquery_v2/representations.rb +85 -0
  41. data/generated/google/apis/bigquery_v2/service.rb +8 -2
  42. data/generated/google/apis/books_v1.rb +2 -2
  43. data/generated/google/apis/books_v1/classes.rb +77 -0
  44. data/generated/google/apis/books_v1/representations.rb +34 -0
  45. data/generated/google/apis/books_v1/service.rb +7 -3
  46. data/generated/google/apis/calendar_v3.rb +1 -1
  47. data/generated/google/apis/civicinfo_v2.rb +3 -2
  48. data/generated/google/apis/civicinfo_v2/classes.rb +16 -4
  49. data/generated/google/apis/civicinfo_v2/representations.rb +2 -0
  50. data/generated/google/apis/civicinfo_v2/service.rb +8 -2
  51. data/generated/google/apis/classroom_v1.rb +1 -1
  52. data/generated/google/apis/classroom_v1/classes.rb +176 -37
  53. data/generated/google/apis/classroom_v1/representations.rb +73 -9
  54. data/generated/google/apis/classroom_v1/service.rb +392 -37
  55. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  56. data/generated/google/apis/cloudbuild_v1/classes.rb +320 -12
  57. data/generated/google/apis/cloudbuild_v1/representations.rb +136 -2
  58. data/generated/google/apis/cloudbuild_v1/service.rb +174 -1
  59. data/generated/google/apis/clouddebugger_v2.rb +3 -6
  60. data/generated/google/apis/clouddebugger_v2/service.rb +4 -4
  61. data/generated/google/apis/cloudmonitoring_v2beta2.rb +1 -1
  62. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  63. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +157 -3
  64. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +33 -0
  65. data/generated/google/apis/cloudresourcemanager_v1/service.rb +60 -21
  66. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  67. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +22 -5
  68. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +2 -0
  69. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +61 -39
  70. data/generated/google/apis/compute_beta.rb +1 -1
  71. data/generated/google/apis/compute_beta/classes.rb +1620 -199
  72. data/generated/google/apis/compute_beta/representations.rb +563 -0
  73. data/generated/google/apis/compute_beta/service.rb +5123 -2690
  74. data/generated/google/apis/compute_v1.rb +1 -1
  75. data/generated/google/apis/compute_v1/classes.rb +1717 -295
  76. data/generated/google/apis/compute_v1/representations.rb +536 -0
  77. data/generated/google/apis/compute_v1/service.rb +2038 -1041
  78. data/generated/google/apis/content_v2.rb +1 -1
  79. data/generated/google/apis/content_v2/classes.rb +709 -1
  80. data/generated/google/apis/content_v2/representations.rb +319 -0
  81. data/generated/google/apis/content_v2/service.rb +244 -0
  82. data/generated/google/apis/datastore_v1.rb +38 -0
  83. data/generated/google/apis/datastore_v1/classes.rb +1284 -0
  84. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  85. data/generated/google/apis/datastore_v1/service.rb +259 -0
  86. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  87. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  88. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  89. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  90. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  91. data/generated/google/apis/deploymentmanager_v2/classes.rb +384 -2
  92. data/generated/google/apis/deploymentmanager_v2/representations.rb +161 -0
  93. data/generated/google/apis/deploymentmanager_v2/service.rb +162 -50
  94. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  95. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  96. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  97. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  98. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  99. data/generated/google/apis/dfareporting_v2_6/classes.rb +11585 -0
  100. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  101. data/generated/google/apis/dfareporting_v2_6/service.rb +9006 -0
  102. data/generated/google/apis/dns_v1.rb +1 -1
  103. data/generated/google/apis/dns_v1/classes.rb +1 -1
  104. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  105. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  106. data/generated/google/apis/drive_v2.rb +1 -1
  107. data/generated/google/apis/drive_v2/classes.rb +11 -3
  108. data/generated/google/apis/drive_v2/representations.rb +2 -0
  109. data/generated/google/apis/drive_v2/service.rb +8 -2
  110. data/generated/google/apis/drive_v3.rb +1 -1
  111. data/generated/google/apis/drive_v3/classes.rb +36 -16
  112. data/generated/google/apis/drive_v3/representations.rb +2 -0
  113. data/generated/google/apis/drive_v3/service.rb +4 -1
  114. data/generated/google/apis/fitness_v1.rb +8 -2
  115. data/generated/google/apis/fitness_v1/classes.rb +64 -6
  116. data/generated/google/apis/fitness_v1/representations.rb +20 -0
  117. data/generated/google/apis/fitness_v1/service.rb +17 -18
  118. data/generated/google/apis/fusiontables_v2.rb +1 -1
  119. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  120. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  121. data/generated/google/apis/games_management_v1management.rb +1 -1
  122. data/generated/google/apis/games_v1.rb +1 -1
  123. data/generated/google/apis/genomics_v1.rb +2 -4
  124. data/generated/google/apis/genomics_v1/classes.rb +111 -9
  125. data/generated/google/apis/genomics_v1/representations.rb +36 -0
  126. data/generated/google/apis/genomics_v1/service.rb +4 -7
  127. data/generated/google/apis/gmail_v1.rb +7 -1
  128. data/generated/google/apis/gmail_v1/classes.rb +540 -0
  129. data/generated/google/apis/gmail_v1/representations.rb +213 -0
  130. data/generated/google/apis/gmail_v1/service.rb +898 -1
  131. data/generated/google/apis/groupssettings_v1.rb +1 -1
  132. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  133. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  134. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  135. data/generated/google/apis/identitytoolkit_v3/classes.rb +154 -1
  136. data/generated/google/apis/identitytoolkit_v3/representations.rb +35 -0
  137. data/generated/google/apis/language_v1beta1.rb +36 -0
  138. data/generated/google/apis/language_v1beta1/classes.rb +596 -0
  139. data/generated/google/apis/language_v1beta1/representations.rb +289 -0
  140. data/generated/google/apis/language_v1beta1/service.rb +154 -0
  141. data/generated/google/apis/mirror_v1.rb +2 -2
  142. data/generated/google/apis/mirror_v1/service.rb +1 -1
  143. data/generated/google/apis/monitoring_v3.rb +45 -0
  144. data/generated/google/apis/monitoring_v3/classes.rb +1328 -0
  145. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  146. data/generated/google/apis/monitoring_v3/service.rb +711 -0
  147. data/generated/google/apis/oauth2_v2.rb +1 -1
  148. data/generated/google/apis/pagespeedonline_v2.rb +1 -1
  149. data/generated/google/apis/plus_domains_v1.rb +1 -1
  150. data/generated/google/apis/plus_v1.rb +1 -1
  151. data/generated/google/apis/qpx_express_v1.rb +1 -1
  152. data/generated/google/apis/qpx_express_v1/classes.rb +6 -0
  153. data/generated/google/apis/qpx_express_v1/representations.rb +1 -0
  154. data/generated/google/apis/replicapool_v1beta2.rb +1 -1
  155. data/generated/google/apis/script_v1.rb +1 -1
  156. data/generated/google/apis/script_v1/classes.rb +6 -0
  157. data/generated/google/apis/script_v1/representations.rb +1 -0
  158. data/generated/google/apis/sheets_v4.rb +1 -1
  159. data/generated/google/apis/sheets_v4/classes.rb +35 -0
  160. data/generated/google/apis/sheets_v4/representations.rb +16 -0
  161. data/generated/google/apis/sheets_v4/service.rb +55 -0
  162. data/generated/google/apis/speech_v1beta1.rb +34 -0
  163. data/generated/google/apis/speech_v1beta1/classes.rb +521 -0
  164. data/generated/google/apis/speech_v1beta1/representations.rb +219 -0
  165. data/generated/google/apis/speech_v1beta1/service.rb +268 -0
  166. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  167. data/generated/google/apis/sqladmin_v1beta4/classes.rb +26 -8
  168. data/generated/google/apis/sqladmin_v1beta4/representations.rb +2 -0
  169. data/generated/google/apis/sqladmin_v1beta4/service.rb +42 -0
  170. data/generated/google/apis/storage_v1.rb +1 -1
  171. data/generated/google/apis/storage_v1/classes.rb +19 -10
  172. data/generated/google/apis/translate_v2.rb +2 -2
  173. data/generated/google/apis/translate_v2/service.rb +1 -1
  174. data/generated/google/apis/vision_v1.rb +1 -1
  175. data/generated/google/apis/vision_v1/classes.rb +10 -9
  176. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  177. data/generated/google/apis/youtube_partner_v1/classes.rb +6 -0
  178. data/generated/google/apis/youtube_partner_v1/representations.rb +2 -0
  179. data/generated/google/apis/youtube_partner_v1/service.rb +15 -3
  180. data/generated/google/apis/youtube_v3.rb +1 -1
  181. data/generated/google/apis/youtube_v3/classes.rb +163 -2
  182. data/generated/google/apis/youtube_v3/representations.rb +82 -0
  183. data/generated/google/apis/youtube_v3/service.rb +6 -2
  184. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  185. data/google-api-client.gemspec +2 -1
  186. data/lib/google/apis/core/api_command.rb +4 -0
  187. data/lib/google/apis/core/base_service.rb +10 -4
  188. data/lib/google/apis/core/download.rb +7 -2
  189. data/lib/google/apis/core/http_command.rb +5 -1
  190. data/lib/google/apis/core/upload.rb +7 -1
  191. data/lib/google/apis/errors.rb +2 -2
  192. data/lib/google/apis/generator/annotator.rb +6 -0
  193. data/lib/google/apis/version.rb +1 -1
  194. data/samples/cli/lib/samples/bigquery.rb +101 -0
  195. data/samples/cli/lib/samples/sheets.rb +61 -0
  196. data/sync.rb +71 -0
  197. metadata +43 -13
@@ -574,6 +574,36 @@ module Google
574
574
  include Google::Apis::Core::JsonObjectSupport
575
575
  end
576
576
 
577
+ class LiveChatPollClosedDetails
578
+ class Representation < Google::Apis::Core::JsonRepresentation; end
579
+
580
+ include Google::Apis::Core::JsonObjectSupport
581
+ end
582
+
583
+ class LiveChatPollEditedDetails
584
+ class Representation < Google::Apis::Core::JsonRepresentation; end
585
+
586
+ include Google::Apis::Core::JsonObjectSupport
587
+ end
588
+
589
+ class LiveChatPollItem
590
+ class Representation < Google::Apis::Core::JsonRepresentation; end
591
+
592
+ include Google::Apis::Core::JsonObjectSupport
593
+ end
594
+
595
+ class LiveChatPollOpenedDetails
596
+ class Representation < Google::Apis::Core::JsonRepresentation; end
597
+
598
+ include Google::Apis::Core::JsonObjectSupport
599
+ end
600
+
601
+ class LiveChatPollVotedDetails
602
+ class Representation < Google::Apis::Core::JsonRepresentation; end
603
+
604
+ include Google::Apis::Core::JsonObjectSupport
605
+ end
606
+
577
607
  class LiveChatTextMessageDetails
578
608
  class Representation < Google::Apis::Core::JsonRepresentation; end
579
609
 
@@ -1689,6 +1719,7 @@ module Google
1689
1719
  property :fco_rating, as: 'fcoRating'
1690
1720
  property :fmoc_rating, as: 'fmocRating'
1691
1721
  property :fpb_rating, as: 'fpbRating'
1722
+ collection :fpb_rating_reasons, as: 'fpbRatingReasons'
1692
1723
  property :fsk_rating, as: 'fskRating'
1693
1724
  property :grfilm_rating, as: 'grfilmRating'
1694
1725
  property :icaa_rating, as: 'icaaRating'
@@ -2202,6 +2233,14 @@ module Google
2202
2233
 
2203
2234
  property :message_retracted_details, as: 'messageRetractedDetails', class: Google::Apis::YoutubeV3::LiveChatMessageRetractedDetails, decorator: Google::Apis::YoutubeV3::LiveChatMessageRetractedDetails::Representation
2204
2235
 
2236
+ property :poll_closed_details, as: 'pollClosedDetails', class: Google::Apis::YoutubeV3::LiveChatPollClosedDetails, decorator: Google::Apis::YoutubeV3::LiveChatPollClosedDetails::Representation
2237
+
2238
+ property :poll_edited_details, as: 'pollEditedDetails', class: Google::Apis::YoutubeV3::LiveChatPollEditedDetails, decorator: Google::Apis::YoutubeV3::LiveChatPollEditedDetails::Representation
2239
+
2240
+ property :poll_opened_details, as: 'pollOpenedDetails', class: Google::Apis::YoutubeV3::LiveChatPollOpenedDetails, decorator: Google::Apis::YoutubeV3::LiveChatPollOpenedDetails::Representation
2241
+
2242
+ property :poll_voted_details, as: 'pollVotedDetails', class: Google::Apis::YoutubeV3::LiveChatPollVotedDetails, decorator: Google::Apis::YoutubeV3::LiveChatPollVotedDetails::Representation
2243
+
2205
2244
  property :published_at, as: 'publishedAt', type: DateTime
2206
2245
 
2207
2246
  property :text_message_details, as: 'textMessageDetails', class: Google::Apis::YoutubeV3::LiveChatTextMessageDetails, decorator: Google::Apis::YoutubeV3::LiveChatTextMessageDetails::Representation
@@ -2250,6 +2289,49 @@ module Google
2250
2289
  end
2251
2290
  end
2252
2291
 
2292
+ class LiveChatPollClosedDetails
2293
+ # @private
2294
+ class Representation < Google::Apis::Core::JsonRepresentation
2295
+ property :poll_id, as: 'pollId'
2296
+ end
2297
+ end
2298
+
2299
+ class LiveChatPollEditedDetails
2300
+ # @private
2301
+ class Representation < Google::Apis::Core::JsonRepresentation
2302
+ property :id, as: 'id'
2303
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::LiveChatPollItem, decorator: Google::Apis::YoutubeV3::LiveChatPollItem::Representation
2304
+
2305
+ property :prompt, as: 'prompt'
2306
+ end
2307
+ end
2308
+
2309
+ class LiveChatPollItem
2310
+ # @private
2311
+ class Representation < Google::Apis::Core::JsonRepresentation
2312
+ property :description, as: 'description'
2313
+ property :item_id, as: 'itemId'
2314
+ end
2315
+ end
2316
+
2317
+ class LiveChatPollOpenedDetails
2318
+ # @private
2319
+ class Representation < Google::Apis::Core::JsonRepresentation
2320
+ property :id, as: 'id'
2321
+ collection :items, as: 'items', class: Google::Apis::YoutubeV3::LiveChatPollItem, decorator: Google::Apis::YoutubeV3::LiveChatPollItem::Representation
2322
+
2323
+ property :prompt, as: 'prompt'
2324
+ end
2325
+ end
2326
+
2327
+ class LiveChatPollVotedDetails
2328
+ # @private
2329
+ class Representation < Google::Apis::Core::JsonRepresentation
2330
+ property :item_id, as: 'itemId'
2331
+ property :poll_id, as: 'pollId'
2332
+ end
2333
+ end
2334
+
2253
2335
  class LiveChatTextMessageDetails
2254
2336
  # @private
2255
2337
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -3622,9 +3622,12 @@ module Google
3622
3622
  # @param [Boolean] mine
3623
3623
  # Set this parameter's value to true to retrieve a feed of the authenticated
3624
3624
  # user's subscriptions.
3625
+ # @param [Boolean] my_recent_subscribers
3626
+ # Set this parameter's value to true to retrieve a feed of the subscribers of
3627
+ # the authenticated user in reverse chronological order (newest first).
3625
3628
  # @param [Boolean] my_subscribers
3626
3629
  # Set this parameter's value to true to retrieve a feed of the subscribers of
3627
- # the authenticated user.
3630
+ # the authenticated user in no particular order.
3628
3631
  # @param [String] on_behalf_of_content_owner
3629
3632
  # Note: This parameter is intended exclusively for YouTube content partners.
3630
3633
  # The onBehalfOfContentOwner parameter indicates that the request's
@@ -3679,7 +3682,7 @@ module Google
3679
3682
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
3680
3683
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
3681
3684
  # @raise [Google::Apis::AuthorizationError] Authorization is required
3682
- def list_subscriptions(part, channel_id: nil, for_channel_id: nil, id: nil, max_results: nil, mine: nil, my_subscribers: nil, on_behalf_of_content_owner: nil, on_behalf_of_content_owner_channel: nil, order: nil, page_token: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
3685
+ def list_subscriptions(part, channel_id: nil, for_channel_id: nil, id: nil, max_results: nil, mine: nil, my_recent_subscribers: nil, my_subscribers: nil, on_behalf_of_content_owner: nil, on_behalf_of_content_owner_channel: nil, order: nil, page_token: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
3683
3686
  command = make_simple_command(:get, 'subscriptions', options)
3684
3687
  command.response_representation = Google::Apis::YoutubeV3::ListSubscriptionResponse::Representation
3685
3688
  command.response_class = Google::Apis::YoutubeV3::ListSubscriptionResponse
@@ -3688,6 +3691,7 @@ module Google
3688
3691
  command.query['id'] = id unless id.nil?
3689
3692
  command.query['maxResults'] = max_results unless max_results.nil?
3690
3693
  command.query['mine'] = mine unless mine.nil?
3694
+ command.query['myRecentSubscribers'] = my_recent_subscribers unless my_recent_subscribers.nil?
3691
3695
  command.query['mySubscribers'] = my_subscribers unless my_subscribers.nil?
3692
3696
  command.query['onBehalfOfContentOwner'] = on_behalf_of_content_owner unless on_behalf_of_content_owner.nil?
3693
3697
  command.query['onBehalfOfContentOwnerChannel'] = on_behalf_of_content_owner_channel unless on_behalf_of_content_owner_channel.nil?
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://developers.google.com/youtube/reporting/v1/reports/
27
27
  module YoutubereportingV1
28
28
  VERSION = 'V1'
29
- REVISION = '20160517'
29
+ REVISION = '20160719'
30
30
 
31
31
  # View monetary and non-monetary YouTube Analytics reports for your YouTube content
32
32
  AUTH_YT_ANALYTICS_MONETARY_READONLY = 'https://www.googleapis.com/auth/yt-analytics-monetary.readonly'
@@ -26,7 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency 'mime-types', '>= 1.6'
27
27
  spec.add_runtime_dependency 'hurley', '~> 0.1'
28
28
  spec.add_runtime_dependency 'googleauth', '~> 0.5'
29
- spec.add_runtime_dependency 'thor', '~> 0.19'
30
29
  spec.add_runtime_dependency 'httpclient', '~> 2.7'
31
30
  spec.add_runtime_dependency 'memoist', '~> 0.11'
31
+
32
+ spec.add_development_dependency 'thor', '~> 0.19'
32
33
  end
@@ -105,6 +105,10 @@ module Google
105
105
  end
106
106
  end
107
107
 
108
+ def allow_form_encoding?
109
+ request_representation.nil? && super
110
+ end
111
+
108
112
  private
109
113
 
110
114
  # Attempt to parse a JSON error message, returning the first found error
@@ -63,10 +63,16 @@ module Google
63
63
  item_count = 0
64
64
  loop do
65
65
  @last_result = @fetch_proc.call(page_token)
66
- for item in @last_result.send(@items_field)
67
- item_count = item_count + 1
68
- break if @max && item_count > @max
69
- yield item
66
+ items = @last_result.send(@items_field)
67
+ if items.kind_of?(Array)
68
+ for item in items
69
+ item_count = item_count + 1
70
+ break if @max && item_count > @max
71
+ yield item
72
+ end
73
+ elsif items
74
+ # yield singular non-nil items (for genomics API)
75
+ yield items
70
76
  end
71
77
  break if @max && item_count >= @max
72
78
  break if @last_result.next_page_token.nil? || @last_result.next_page_token == page_token
@@ -23,6 +23,7 @@ module Google
23
23
  # Streaming/resumable media download support
24
24
  class DownloadCommand < ApiCommand
25
25
  RANGE_HEADER = 'range'
26
+ OK_STATUS = [200, 201, 206]
26
27
 
27
28
  # File or IO to write content to
28
29
  # @return [String, File, #write]
@@ -65,7 +66,7 @@ module Google
65
66
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
66
67
  # @raise [Google::Apis::AuthorizationError] Authorization is required
67
68
  def execute_once(client, &block)
68
- client.get(@download_url || url) do |req|
69
+ response = client.get(@download_url || url) do |req|
69
70
  apply_request_options(req)
70
71
  check_if_rewind_needed = false
71
72
  if @offset > 0
@@ -73,7 +74,7 @@ module Google
73
74
  req.header[RANGE_HEADER] = sprintf('bytes=%d-', @offset)
74
75
  check_if_rewind_needed = true
75
76
  end
76
- req.on_body(200, 201, 206) do |res, chunk|
77
+ req.on_body(*OK_STATUS) do |res, chunk|
77
78
  check_status(res.status_code, chunk) unless res.status_code.nil?
78
79
  if check_if_rewind_needed && res.status_code != 206
79
80
  # Oh no! Requested a chunk, but received the entire content
@@ -88,6 +89,10 @@ module Google
88
89
  @download_io.flush
89
90
  end
90
91
  end
92
+
93
+ # Since the on_body block only runs on success, check status again just in case it failed
94
+ check_status(response.status_code, response.body) unless OK_STATUS.include?(response.status_code.to_i)
95
+
91
96
  if @close_io_on_finish
92
97
  result = nil
93
98
  else
@@ -146,7 +146,7 @@ module Google
146
146
  self.url = url.expand(params) if url.is_a?(Addressable::Template)
147
147
  url.query_values = query.merge(url.query_values || {})
148
148
 
149
- if [:post, :put].include?(method) && body.nil?
149
+ if allow_form_encoding?
150
150
  @form_encoded = true
151
151
  self.body = Addressable::URI.form_encode(url.query_values(Array))
152
152
  self.header['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
@@ -306,6 +306,10 @@ module Google
306
306
  req.options.open_timeout = options.open_timeout_sec
307
307
  end
308
308
 
309
+ def allow_form_encoding?
310
+ [:post, :put].include?(method) && body.nil?
311
+ end
312
+
309
313
  private
310
314
 
311
315
  def form_encoded?
@@ -17,8 +17,14 @@ require 'google/apis/core/http_command'
17
17
  require 'google/apis/core/api_command'
18
18
  require 'google/apis/errors'
19
19
  require 'addressable/uri'
20
- require 'mime-types'
21
20
  require 'tempfile'
21
+ begin
22
+ require 'mime/types/columnar'
23
+ rescue LoadError
24
+ # Temporary until next major bump when we can tighten
25
+ # dependency to mime-types >-=3.0
26
+ require 'mime-types'
27
+ end
22
28
 
23
29
  module Google
24
30
  module Apis
@@ -19,7 +19,7 @@ module Google
19
19
  attr_reader :status_code
20
20
  attr_reader :header
21
21
  attr_reader :body
22
-
22
+
23
23
  def initialize(err, status_code: nil, header: nil, body: nil)
24
24
  @cause = nil
25
25
 
@@ -42,7 +42,7 @@ module Google
42
42
  end
43
43
  end
44
44
  end
45
-
45
+
46
46
  # An error which is raised when there is an unexpected response or other
47
47
  # transport error that prevents an operation from succeeding.
48
48
  class TransmissionError < Error
@@ -25,12 +25,18 @@ require 'addressable/uri'
25
25
 
26
26
  module Google
27
27
  module Apis
28
+
28
29
  # @private
29
30
  class Generator
31
+
30
32
  # Helper for picking names for methods, properties, types, etc. Performs various normaliations
31
33
  # as well as allows for overriding individual names from a configuration file for cases
32
34
  # where algorithmic approaches produce poor APIs.
33
35
  class Names
36
+ ActiveSupport::Inflector.inflections do |inflections|
37
+ u = inflections.uncountable('send_as', 'as')
38
+ end
39
+
34
40
  include Google::Apis::Core::Logging
35
41
  include NameHelpers
36
42
 
@@ -15,7 +15,7 @@
15
15
  module Google
16
16
  module Apis
17
17
  # Client library version
18
- VERSION = '0.9.8'
18
+ VERSION = '0.9.15'
19
19
 
20
20
  # Current operating system
21
21
  # @private
@@ -0,0 +1,101 @@
1
+ # Copyright 2016 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 'google/apis/bigquery_v2'
16
+ require 'base_cli'
17
+
18
+
19
+ module Samples
20
+ # Examples for the Google BigQuery API
21
+ #
22
+ # Sample usage:
23
+ #
24
+ # $ ./google-api-samples bigquery list_datasets --project_id=publicdata
25
+ # $ ./google-api-samples bigquery list_tables --project_id=publicdata --dataset_id=samples
26
+ # $ ./google-api-samples bigquery list_table_data --project_id=publicdata --dataset_id=samples --table_id=wikipedia --max_results=10
27
+ class Bigquery < BaseCli
28
+ Bigquery = Google::Apis::BigqueryV2
29
+
30
+ desc 'list datasets', 'List datasets'
31
+ method_option :project_id, type: :string
32
+ def list_datasets
33
+ bigquery = Bigquery::BigqueryService.new
34
+ bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
35
+
36
+ begin
37
+ project_id = options[:project_id] || 'publicdata'
38
+ result = bigquery.list_datasets(project_id)
39
+ data = []
40
+ data << ['id','kind']
41
+ result.datasets.each do |dataset|
42
+ data << [
43
+ dataset.id,
44
+ dataset.kind,
45
+ ]
46
+ end
47
+ print_table(data)
48
+ end
49
+ end
50
+
51
+ desc 'list tables', 'List tables'
52
+ method_option :project_id, type: :string
53
+ method_option :dataset_id, type: :string
54
+ def list_tables
55
+ bigquery = Bigquery::BigqueryService.new
56
+ bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
57
+
58
+ begin
59
+ project_id = options[:project_id] || 'publicdata'
60
+ dataset_id = options[:dataset_id] || 'samples'
61
+ result = bigquery.list_tables(project_id, dataset_id)
62
+ data = []
63
+ data << ['id','kind']
64
+ result.tables.each do |table|
65
+ data << [
66
+ table.id,
67
+ table.kind,
68
+ ]
69
+ end
70
+ print_table(data)
71
+ end
72
+ end
73
+
74
+ desc 'list table data', 'List table data'
75
+ method_option :project_id, type: :string
76
+ method_option :dataset_id, type: :string
77
+ method_option :table_id, type: :string
78
+ def list_table_data
79
+ bigquery = Bigquery::BigqueryService.new
80
+ bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
81
+
82
+ begin
83
+ project_id = options[:project_id] || 'publicdata'
84
+ dataset_id = options[:dataset_id] || 'samples'
85
+ table_id = options[:table_id] || 'wikipedia'
86
+ max_results = options[:max_results] || 10
87
+ result = bigquery.list_table_data(project_id, dataset_id, table_id, max_results: max_results)
88
+
89
+ datas = []
90
+ result.rows.each do |row|
91
+ data = []
92
+ row.f.each do |field|
93
+ data << field.v
94
+ end
95
+ datas << data
96
+ end
97
+ print_table(datas)
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,61 @@
1
+ # Copyright 2016 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 'google/apis/sheets_v4'
16
+ require 'base_cli'
17
+
18
+
19
+ module Samples
20
+ # Examples for the Google Sheets API
21
+ #
22
+ # Sample usage:
23
+ #
24
+ # $ ./google-api-samples sheets get_values --spreadsheet_key='1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' --range='Class Data!A1:F'
25
+ #
26
+ # Student Name Gender Class Level Home State Major Extracurricular Activity
27
+ # Alexandra Female 4. Senior CA English Drama Club
28
+ # Andrew Male 1. Freshman SD Math Lacrosse
29
+ # Anna Female 1. Freshman NC English Basketball
30
+ # Becky Female 2. Sophomore SD Art Baseball
31
+ # Benjamin Male 4. Senior WI English Basketball
32
+ # Carl Male 3. Junior MD Art Debate
33
+ # Carrie Female 3. Junior NE English Track & Field
34
+ # Dorothy Female 4. Senior MD Math Lacrosse
35
+ # Dylan Male 1. Freshman MA Math Baseball
36
+ # Edward Male 3. Junior FL English Drama Club
37
+ # Ellen Female 1. Freshman WI Physics Drama Club
38
+ # Fiona Female 1. Freshman MA Art Debate
39
+ # John Male 3. Junior CA Physics Basketball
40
+ # Jonathan Male 2. Sophomore SC Math Debate
41
+ class Sheets < BaseCli
42
+ Sheets = Google::Apis::SheetsV4
43
+
44
+ desc 'get_values', 'Get values from Google Spreadseets '
45
+ method_option :spreadsheet_key, type: :string, required: true
46
+ method_option :range, type: :string, required: true
47
+ def get_values
48
+ sheets = Sheets::SheetsService.new
49
+ sheets.authorization = user_credentials_for(Sheets::AUTH_SPREADSHEETS_READONLY)
50
+ result = sheets.get_spreadsheet_values(options[:spreadsheet_key], options[:range])
51
+ data = []
52
+ rows = result.values.length
53
+ rows.times.each do |row|
54
+ data.push(result.values[row])
55
+ end
56
+ print_table(data)
57
+ end
58
+
59
+ default_task :get_values
60
+ end
61
+ end