google-api-client 0.52.0 → 0.53.0

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 (264) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +6 -0
  4. data/OVERVIEW.md +36 -27
  5. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  6. data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
  7. data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
  8. data/generated/google/apis/admin_directory_v1.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/service.rb +2 -2
  10. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  11. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +8 -0
  12. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  13. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +12 -1
  14. data/{lib/google/apis/core/logging.rb → generated/google/apis/apigateway_v1.rb} +14 -10
  15. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  16. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  17. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  18. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  19. data/generated/google/apis/apigateway_v1beta/classes.rb +19 -8
  20. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -0
  21. data/generated/google/apis/apigee_v1.rb +1 -1
  22. data/generated/google/apis/apigee_v1/classes.rb +24 -22
  23. data/generated/google/apis/apigee_v1/service.rb +50 -48
  24. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  25. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  26. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  27. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  28. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  29. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
  30. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
  31. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  32. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +0 -120
  33. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +0 -62
  34. data/generated/google/apis/chat_v1.rb +1 -1
  35. data/generated/google/apis/chat_v1/service.rb +132 -0
  36. data/generated/google/apis/cloudasset_v1.rb +1 -1
  37. data/generated/google/apis/cloudasset_v1/classes.rb +326 -0
  38. data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
  39. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  40. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
  41. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
  42. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  43. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
  44. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
  45. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  46. data/generated/google/apis/cloudbuild_v1/classes.rb +3 -3
  47. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  48. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  49. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  50. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  51. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  52. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  53. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  54. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
  55. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
  56. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  57. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
  58. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
  59. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  60. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
  61. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
  62. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  63. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
  64. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
  65. data/generated/google/apis/container_v1.rb +1 -1
  66. data/generated/google/apis/container_v1/classes.rb +7 -7
  67. data/generated/google/apis/container_v1beta1.rb +1 -1
  68. data/generated/google/apis/container_v1beta1/classes.rb +7 -7
  69. data/generated/google/apis/content_v2_1.rb +1 -1
  70. data/generated/google/apis/content_v2_1/classes.rb +434 -0
  71. data/generated/google/apis/content_v2_1/representations.rb +187 -0
  72. data/generated/google/apis/content_v2_1/service.rb +116 -0
  73. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  74. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -0
  75. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -0
  76. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  77. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  78. data/generated/google/apis/dataproc_v1.rb +1 -1
  79. data/generated/google/apis/dataproc_v1/classes.rb +29 -1
  80. data/generated/google/apis/dataproc_v1/representations.rb +14 -0
  81. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  82. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  83. data/generated/google/apis/dataproc_v1beta2/classes.rb +29 -1
  84. data/generated/google/apis/dataproc_v1beta2/representations.rb +14 -0
  85. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  86. data/generated/google/apis/dialogflow_v2.rb +1 -1
  87. data/generated/google/apis/dialogflow_v2/classes.rb +4041 -678
  88. data/generated/google/apis/dialogflow_v2/representations.rb +1851 -298
  89. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  90. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4047 -684
  91. data/generated/google/apis/dialogflow_v2beta1/representations.rb +1862 -309
  92. data/generated/google/apis/dialogflow_v3.rb +1 -1
  93. data/generated/google/apis/dialogflow_v3/classes.rb +3120 -311
  94. data/generated/google/apis/dialogflow_v3/representations.rb +2002 -617
  95. data/generated/google/apis/dialogflow_v3/service.rb +408 -0
  96. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  97. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5145 -2336
  98. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1729 -344
  99. data/generated/google/apis/dialogflow_v3beta1/service.rb +408 -0
  100. data/generated/google/apis/dlp_v2.rb +1 -1
  101. data/generated/google/apis/dlp_v2/service.rb +3 -9
  102. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  103. data/generated/google/apis/documentai_v1beta2/classes.rb +5 -92
  104. data/generated/google/apis/documentai_v1beta2/representations.rb +2 -15
  105. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  106. data/generated/google/apis/documentai_v1beta3/classes.rb +5 -92
  107. data/generated/google/apis/documentai_v1beta3/representations.rb +2 -15
  108. data/generated/google/apis/gameservices_v1.rb +1 -1
  109. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  110. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  111. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  112. data/generated/google/apis/localservices_v1.rb +4 -1
  113. data/generated/google/apis/manufacturers_v1.rb +1 -1
  114. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  115. data/generated/google/apis/monitoring_v3.rb +1 -1
  116. data/generated/google/apis/monitoring_v3/classes.rb +2 -2
  117. data/generated/google/apis/notebooks_v1.rb +1 -1
  118. data/generated/google/apis/notebooks_v1/classes.rb +13 -0
  119. data/generated/google/apis/notebooks_v1/representations.rb +12 -0
  120. data/generated/google/apis/notebooks_v1/service.rb +34 -0
  121. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  122. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +0 -37
  123. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +0 -18
  124. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  125. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  126. data/generated/google/apis/securitycenter_v1.rb +1 -1
  127. data/generated/google/apis/securitycenter_v1/classes.rb +18 -10
  128. data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
  129. data/generated/google/apis/securitycenter_v1/service.rb +30 -30
  130. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  131. data/generated/google/apis/securitycenter_v1beta1/classes.rb +7 -0
  132. data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
  133. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  134. data/generated/google/apis/securitycenter_v1beta2/classes.rb +7 -0
  135. data/generated/google/apis/securitycenter_v1beta2/representations.rb +1 -0
  136. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  137. data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
  138. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  139. data/generated/google/apis/sqladmin_v1beta4/classes.rb +7 -7
  140. data/generated/google/apis/sqladmin_v1beta4/service.rb +4 -1
  141. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  142. data/generated/google/apis/storagetransfer_v1/classes.rb +25 -0
  143. data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
  144. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  145. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  146. data/generated/google/apis/youtube_v3.rb +1 -1
  147. data/generated/google/apis/youtube_v3/classes.rb +18 -143
  148. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  149. data/generated/google/apis/youtube_v3/service.rb +0 -43
  150. data/lib/google/apis/version.rb +1 -23
  151. metadata +27 -263
  152. data/.github/CONTRIBUTING.md +0 -31
  153. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  154. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  155. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  156. data/.github/workflows/autoapprove.yml +0 -49
  157. data/.github/workflows/release-please.yml +0 -57
  158. data/.gitignore +0 -23
  159. data/.kokoro/build.bat +0 -11
  160. data/.kokoro/build.sh +0 -4
  161. data/.kokoro/continuous/common.cfg +0 -25
  162. data/.kokoro/continuous/linux.cfg +0 -25
  163. data/.kokoro/continuous/osx.cfg +0 -8
  164. data/.kokoro/continuous/post.cfg +0 -30
  165. data/.kokoro/continuous/windows.cfg +0 -29
  166. data/.kokoro/osx.sh +0 -4
  167. data/.kokoro/presubmit/common.cfg +0 -24
  168. data/.kokoro/presubmit/linux.cfg +0 -24
  169. data/.kokoro/presubmit/osx.cfg +0 -8
  170. data/.kokoro/presubmit/windows.cfg +0 -29
  171. data/.kokoro/release.cfg +0 -94
  172. data/.kokoro/trampoline.bat +0 -10
  173. data/.kokoro/trampoline.sh +0 -4
  174. data/.repo-metadata.json +0 -5
  175. data/.rspec +0 -2
  176. data/.rubocop.yml +0 -12
  177. data/.rubocop_todo.yml +0 -63
  178. data/CODE_OF_CONDUCT.md +0 -43
  179. data/Gemfile +0 -55
  180. data/MIGRATING.md +0 -215
  181. data/README.md +0 -402
  182. data/Rakefile +0 -131
  183. data/api_list_config.yaml +0 -9
  184. data/api_names.yaml +0 -1082
  185. data/bin/generate-api +0 -194
  186. data/docs/api-keys.md +0 -20
  187. data/docs/auth.md +0 -53
  188. data/docs/client-secrets.md +0 -69
  189. data/docs/getting-started.md +0 -340
  190. data/docs/installation.md +0 -0
  191. data/docs/logging.md +0 -34
  192. data/docs/media-upload.md +0 -25
  193. data/docs/oauth-installed.md +0 -191
  194. data/docs/oauth-server.md +0 -133
  195. data/docs/oauth-web.md +0 -280
  196. data/docs/oauth.md +0 -268
  197. data/docs/pagination.md +0 -29
  198. data/docs/performance.md +0 -25
  199. data/google-api-client.gemspec +0 -36
  200. data/lib/google/api_client/auth/installed_app.rb +0 -143
  201. data/lib/google/api_client/auth/key_utils.rb +0 -94
  202. data/lib/google/api_client/auth/storage.rb +0 -104
  203. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  204. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  205. data/lib/google/api_client/client_secrets.rb +0 -176
  206. data/lib/google/apis.rb +0 -58
  207. data/lib/google/apis/core/api_command.rb +0 -209
  208. data/lib/google/apis/core/base_service.rb +0 -447
  209. data/lib/google/apis/core/batch.rb +0 -236
  210. data/lib/google/apis/core/composite_io.rb +0 -97
  211. data/lib/google/apis/core/download.rb +0 -118
  212. data/lib/google/apis/core/hashable.rb +0 -44
  213. data/lib/google/apis/core/http_command.rb +0 -447
  214. data/lib/google/apis/core/json_representation.rb +0 -153
  215. data/lib/google/apis/core/multipart.rb +0 -135
  216. data/lib/google/apis/core/upload.rb +0 -273
  217. data/lib/google/apis/errors.rb +0 -89
  218. data/lib/google/apis/generator.rb +0 -71
  219. data/lib/google/apis/generator/annotator.rb +0 -339
  220. data/lib/google/apis/generator/helpers.rb +0 -76
  221. data/lib/google/apis/generator/model.rb +0 -187
  222. data/lib/google/apis/generator/template.rb +0 -124
  223. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  224. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  225. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  226. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  227. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  228. data/lib/google/apis/generator/templates/classes.rb.tmpl +0 -29
  229. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  230. data/lib/google/apis/generator/templates/representations.rb.tmpl +0 -32
  231. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  232. data/lib/google/apis/options.rb +0 -116
  233. data/rakelib/devsite/devsite_builder.rb +0 -126
  234. data/rakelib/devsite/link_checker.rb +0 -64
  235. data/rakelib/devsite/repo_metadata.rb +0 -56
  236. data/rakelib/metrics.rake +0 -22
  237. data/rakelib/rubocop.rake +0 -10
  238. data/rakelib/spec.rake +0 -11
  239. data/rakelib/yard.rake +0 -11
  240. data/samples/cli/.env +0 -4
  241. data/samples/cli/Gemfile +0 -7
  242. data/samples/cli/README.md +0 -51
  243. data/samples/cli/google-api-samples +0 -32
  244. data/samples/cli/lib/base_cli.rb +0 -95
  245. data/samples/cli/lib/samples/adsense.rb +0 -99
  246. data/samples/cli/lib/samples/analytics.rb +0 -80
  247. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  248. data/samples/cli/lib/samples/bigquery.rb +0 -101
  249. data/samples/cli/lib/samples/calendar.rb +0 -83
  250. data/samples/cli/lib/samples/drive.rb +0 -82
  251. data/samples/cli/lib/samples/gmail.rb +0 -157
  252. data/samples/cli/lib/samples/pubsub.rb +0 -114
  253. data/samples/cli/lib/samples/sheets.rb +0 -61
  254. data/samples/cli/lib/samples/translate.rb +0 -44
  255. data/samples/cli/lib/samples/vision.rb +0 -69
  256. data/samples/cli/lib/samples/you_tube.rb +0 -47
  257. data/samples/web/Gemfile +0 -9
  258. data/samples/web/README.md +0 -44
  259. data/samples/web/app.rb +0 -120
  260. data/samples/web/views/calendar.erb +0 -34
  261. data/samples/web/views/drive.erb +0 -33
  262. data/samples/web/views/home.erb +0 -34
  263. data/samples/web/views/layout.erb +0 -40
  264. data/synth.py +0 -40
@@ -1,76 +0,0 @@
1
- module Google
2
- module Apis
3
- # @private
4
- class Generator
5
- # Methods for validating & normalizing symbols
6
- module NameHelpers
7
- KEYWORDS = %w(__ENCODING__ def in self __LINE__ defined? module super __FILE__ do next then BEGIN
8
- else nil true END elsif not undef alias end or unless and ensure redo until begin
9
- false rescue when break for retry while case if return yield class command)
10
- PLURAL_METHODS = %w(list search)
11
-
12
- # Check to see if the method name should be plauralized
13
- # @return [Boolean]
14
- def pluralize_method?(method_name)
15
- PLURAL_METHODS.include?(method_name)
16
- end
17
-
18
- # Check to see if the method is either a keyword or built-in method on object
19
- # @return [Boolean]
20
- def reserved?(name)
21
- keyword?(name) || object_method?(name)
22
- end
23
-
24
- # Check to see if the name is a ruby keyword
25
- # @return [Boolean]
26
- def keyword?(name)
27
- KEYWORDS.include?(name)
28
- end
29
-
30
- # Check to see if the method already exists on ruby objects
31
- # @return [Boolean]
32
- def object_method?(name)
33
- Object.new.respond_to?(name)
34
- end
35
-
36
- # Convert a parameter name to ruby conventions
37
- # @param [String] name
38
- # @return [String] updated param name
39
- def normalize_param_name(name)
40
- name = name.gsub(/\W/, '_')
41
- name = name.gsub(/IPv4/, 'Ipv4')
42
- name = ActiveSupport::Inflector.underscore(name)
43
- if reserved?(name)
44
- logger.warn { sprintf('Found reserved keyword \'%1$s\'', name) }
45
- name += '_'
46
- logger.warn { sprintf('Changed to \'%1$s\'', name) }
47
- end
48
- name
49
- end
50
-
51
- # Convert a property name to ruby conventions
52
- # @param [String] name
53
- # @return [String]
54
- def normalize_property_name(name)
55
- name = ActiveSupport::Inflector.underscore(name.gsub(/\W/, '_'))
56
- if object_method?(name)
57
- logger.warn { sprintf('Found reserved property \'%1$s\'', name) }
58
- name += '_prop'
59
- logger.warn { sprintf('Changed to \'%1$s\'', name) }
60
- end
61
- name
62
- end
63
-
64
- # Converts a scope string into a ruby constant
65
- # @param [String] url
66
- # Url to convert
67
- # @return [String]
68
- def constantize_scope(url)
69
- scope = Addressable::URI.parse(url).path[1..-1].upcase.gsub(/\W/, '_')
70
- scope = 'AUTH_SCOPE' if scope.nil? || scope.empty?
71
- scope
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,187 +0,0 @@
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 'active_support/inflector'
16
- require 'google/apis/discovery_v1'
17
-
18
- # Extend the discovery API classes with additional data needed to make
19
- # code generation produce better results
20
- module Google
21
- module Apis
22
- module DiscoveryV1
23
- TYPE_MAP = {
24
- 'string' => 'String',
25
- 'boolean' => 'Boolean',
26
- 'number' => 'Float',
27
- 'integer' => 'Fixnum',
28
- 'any' => 'Object'
29
- }
30
-
31
- class JsonSchema
32
- attr_accessor :name
33
- attr_accessor :generated_name
34
- attr_accessor :generated_class_name
35
- attr_accessor :base_ref
36
- attr_accessor :parent
37
- attr_accessor :discriminant
38
- attr_accessor :discriminant_value
39
- attr_accessor :path
40
-
41
- def properties
42
- Hash[(@properties || {}).sort]
43
- end
44
-
45
- def qualified_name
46
- parent.qualified_name + '::' + generated_class_name
47
- end
48
-
49
- def generated_type
50
- case type
51
- when 'string', 'boolean', 'number', 'integer', 'any'
52
- return 'DateTime' if format == 'date-time'
53
- return 'Date' if format == 'date'
54
- return 'Fixnum' if format == 'int64'
55
- return 'Fixnum' if format == 'uint64'
56
- return TYPE_MAP[type]
57
- when 'array'
58
- if items == self
59
- return sprintf('Array<%s>', qualified_name)
60
- end
61
- return sprintf('Array<%s>', items.generated_type)
62
- when 'hash'
63
- if additional_properties == self
64
- return sprintf('Hash<String,%s>', qualified_name)
65
- end
66
- return sprintf('Hash<String,%s>', additional_properties.generated_type)
67
- when 'object'
68
- return qualified_name
69
- end
70
- end
71
- end
72
-
73
- class RestMethod
74
- attr_accessor :generated_name
75
- attr_accessor :parent
76
-
77
- def parameters
78
- Hash[(@parameters || {}).sort]
79
- end
80
-
81
- def path_parameters
82
- return [] if parameter_order.nil? || parameters.nil?
83
- parameter_order.map { |name| parameters[name] }.select { |param| param.location == 'path' }
84
- end
85
-
86
- def query_parameters
87
- return [] if parameters.nil?
88
- parameters.values.select { |param| param.location == 'query' }
89
- end
90
-
91
- def required_parameters
92
- return [] if parameter_order.nil? || parameters.nil?
93
- parameter_order.map { |name| parameters[name] }.select { |param| param.location == 'path' || param.required }
94
- end
95
-
96
- def optional_query_parameters
97
- query_parameters.select { |param| param.required != true }
98
- end
99
-
100
- end
101
-
102
- class RestResource
103
- attr_accessor :parent
104
-
105
- def api_methods
106
- Hash[(@api_methods || {}).sort]
107
- end
108
-
109
- def resources
110
- Hash[(@resources || {}).sort]
111
- end
112
-
113
- def all_methods
114
- m = []
115
- m << api_methods.values unless api_methods.nil?
116
- m << resources.map { |_k, r| r.all_methods } unless resources.nil?
117
- m.flatten
118
- end
119
- end
120
-
121
- class RestDescription
122
- attr_accessor :force_alt_json
123
- alias_method :force_alt_json?, :force_alt_json
124
-
125
- # Don't expose these in the API directly.
126
- PARAMETER_BLACKLIST = %w(alt access_token bearer_token oauth_token pp prettyPrint
127
- $.xgafv callback upload_protocol uploadType)
128
-
129
- def version
130
- ActiveSupport::Inflector.camelize(@version.gsub(/\W/, '-')).gsub(/-/, '_')
131
- end
132
-
133
- def name
134
- ActiveSupport::Inflector.camelize(@name)
135
- end
136
-
137
- def module_name
138
- name + version
139
- end
140
-
141
- def qualified_name
142
- sprintf('Google::Apis::%s', module_name)
143
- end
144
-
145
- def service_name
146
- class_name = (canonical_name || name).gsub(/\W/, '')
147
- ActiveSupport::Inflector.camelize(sprintf('%sService', class_name))
148
- end
149
-
150
- def api_methods
151
- Hash[(@api_methods || {}).sort]
152
- end
153
-
154
- def resources
155
- Hash[(@resources || {}).sort]
156
- end
157
-
158
- def all_methods
159
- m = []
160
- m << api_methods.values unless api_methods.nil?
161
- m << resources.map { |_k, r| r.all_methods } unless resources.nil?
162
- m.flatten
163
- end
164
-
165
- def parameters
166
- Hash[(@parameters || {}).sort].delete_if { |k, _v| PARAMETER_BLACKLIST.include?(k) }
167
- end
168
-
169
- def schemas
170
- Hash[(@schemas || {}).sort]
171
- end
172
-
173
- class Auth
174
- class Oauth2
175
- class Scope
176
- attr_accessor :constant
177
- end
178
-
179
- def scopes
180
- Hash[(@scopes || {}).sort]
181
- end
182
- end
183
- end
184
- end
185
- end
186
- end
187
- end
@@ -1,124 +0,0 @@
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 'active_support/inflector'
16
- require 'erb'
17
- require 'ostruct'
18
-
19
- module Google
20
- module Apis
21
- # @private
22
- class Generator
23
- # Directory containing ERB templates
24
- TEMPLATE_DIR = File.expand_path('../templates', __FILE__)
25
-
26
- # Helpers used in ERB templates
27
- module TemplateHelpers
28
- # Get the include path for a ruby module/class
29
- #
30
- # @param [String] module_name
31
- # Fully qualified module/class name
32
- # @return [String]
33
- # Path to file
34
- def to_path(module_name)
35
- ActiveSupport::Inflector.underscore(module_name)
36
- end
37
-
38
- # Render a block comment
39
- #
40
- # @param [String] str
41
- # Comment string
42
- # @param [Fixnum] spaces_before
43
- # Number of spaces to indent the comment hash
44
- # @param [Fixnum] spaces_after
45
- # Number of spaces to indent after the comment hash for subsequent lines
46
- # @return [String] formatted comment
47
- def block_comment(str, spaces_before = 0, spaces_after = 0)
48
- return '' if str.nil?
49
- pre = ' ' * spaces_before
50
- post = ' ' * spaces_after
51
- lines = str.gsub(/([{}])/, '`').scan(/.{1,78}(?:\W|$)/).map(&:strip)
52
- lines.join("\n" + pre + '#' + post)
53
- end
54
-
55
- # Indent a block of text
56
- #
57
- # @param [String] str
58
- # Content to indent
59
- # @param [Fixnum] spaces
60
- # Number of spaces to indent
61
- # @return [String] formatted content
62
- def indent(str, spaces)
63
- pre = ' ' * spaces
64
- str = pre + str.split(/\n/).join("\n" + pre) + "\n"
65
- return str unless str.strip.empty?
66
- nil
67
- end
68
-
69
- # Include a partial inside a template.
70
- #
71
- # @private
72
- # @param [String] partial
73
- # Name of the template
74
- # @param [Hash] context
75
- # Context used to render
76
- # @return [String] rendered content
77
- def include(partial, context)
78
- template = Template.new(sprintf('_%s.tmpl', partial))
79
- template.render(context)
80
- end
81
- end
82
-
83
- # Holds local vars/helpers for template rendering
84
- class Context < OpenStruct
85
- include TemplateHelpers
86
-
87
- # Get the context for ERB evaluation
88
- # @return [Binding]
89
- def to_binding
90
- binding
91
- end
92
- end
93
-
94
- # ERB template for the code generator
95
- class Template
96
- # Loads a template from the template dir. Automatically
97
- # appends the .tmpl suffix
98
- #
99
- # @param [String] template_name
100
- # Name of the template file
101
- def self.load(template_name)
102
- Template.new(sprintf('%s.tmpl', template_name))
103
- end
104
-
105
- # @param [String] template_name
106
- # Name of the template file
107
- def initialize(template_name)
108
- file = File.join(TEMPLATE_DIR, template_name)
109
- @erb = ERB.new(File.read(file), nil, '-')
110
- end
111
-
112
- # Render the template
113
- #
114
- # @param [Hash] context
115
- # Variables to set when rendering the template
116
- # @return [String] rendered template
117
- def render(context)
118
- ctx = Context.new(context)
119
- @erb.result(ctx.to_binding)
120
- end
121
- end
122
- end
123
- end
124
- end
@@ -1,43 +0,0 @@
1
- <% if cls.type == 'object' || (cls.type == 'hash' && cls.properties.length > 0) -%>
2
-
3
- # <%= block_comment(cls.description, 0, 1) %>
4
- class <%= cls.generated_class_name %><% if cls.base_ref %> < <%= cls.base_ref.generated_type %><% end %>
5
- include Google::Apis::Core::Hashable
6
- <% for property in cls.properties.values -%>
7
-
8
- # <%= block_comment(property.description, 2, 1) %>
9
- # Corresponds to the JSON property `<%= property.name %>`
10
- <% if property.format == 'byte' -%>
11
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
12
- <% end -%>
13
- # @return [<%= property.generated_type %>]
14
- attr_accessor :<%= property.generated_name %>
15
- <% if property.type == 'boolean' -%>
16
- alias_method :<%= property.generated_name %>?, :<%= property.generated_name %>
17
- <% end -%>
18
- <% end -%>
19
-
20
- def initialize(**args)
21
- <% if cls.discriminant -%>
22
- @<%= cls.properties[cls.discriminant].generated_name %> = '<%= cls.discriminant_value %>'
23
- <% end -%>
24
- update!(**args)
25
- end
26
-
27
- # Update properties of this object
28
- def update!(**args)
29
- <% for property in cls.properties.values -%>
30
- @<%= property.generated_name %> = args[:<%= property.generated_name %>] if args.key?(:<%= property.generated_name %>)
31
- <% end -%>
32
- end
33
- <% for child_class in cls.properties.values -%>
34
- <% if child_class._ref.nil? -%>
35
- <%= indent(include('class', :cls => child_class, :api => api), 2) -%>
36
- <% end -%>
37
- <% end -%>
38
- end
39
- <% elsif cls.items && cls.items._ref.nil? -%>
40
- <%= include('class', :cls => cls.items, :api => api) -%>
41
- <% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%>
42
- <%= include('class', :cls => cls.additional_properties, :api => api) -%>
43
- <% end -%>
@@ -1,92 +0,0 @@
1
-
2
- # <%= block_comment(api_method.description, 0, 1) %>
3
- <% for param in api_method.required_parameters -%>
4
- # @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %>
5
- <% if param.description -%>
6
- # <%= block_comment(param.description, 0, 3) %>
7
- <% end -%>
8
- <% end -%>
9
- <% if api_method.request -%>
10
- # @param [<%= api.schemas[api_method.request._ref].generated_type %>] <%= api.schemas[api_method.request._ref].generated_name %>_object
11
- <% end -%>
12
- <% for param in api_method.optional_query_parameters -%>
13
- # @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %>
14
- <% if param.description -%>
15
- # <%= block_comment(param.description, 0, 3) %>
16
- <% end -%>
17
- <% end -%>
18
- <% for param in api.parameters.values.reject {|p| p.name == 'key'} -%>
19
- # @param [<% if param.repeated? %>Array<<%= param.generated_type %>>, <% end %><%= param.generated_type %>] <%= param.generated_name %>
20
- <% if param.description -%>
21
- # <%= block_comment(param.description, 0, 3) %>
22
- <% end -%>
23
- <% end -%>
24
- <% if api_method.supports_media_upload? -%>
25
- # @param [IO, String] upload_source
26
- # IO stream or filename containing content to upload
27
- # @param [String] content_type
28
- # Content type of the uploaded content.
29
- <% elsif api_method.supports_media_download? -%>
30
- # @param [IO, String] download_dest
31
- # IO stream or filename to receive content download
32
- <% end -%>
33
- # @param [Google::Apis::RequestOptions] options
34
- # Request-specific options
35
- #
36
- # @yield [result, err] Result & error if block supplied
37
- <% if api_method.response -%>
38
- # @yieldparam result [<%= api.schemas[api_method.response._ref].generated_type %>] parsed result object
39
- # @yieldparam err [StandardError] error object if request failed
40
- #
41
- # @return [<%= api.schemas[api_method.response._ref].generated_type %>]
42
- <% else -%>
43
- # @yieldparam result [NilClass] No result returned for this method
44
- # @yieldparam err [StandardError] error object if request failed
45
- #
46
- # @return [void]
47
- <% end -%>
48
- #
49
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
50
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
51
- # @raise [Google::Apis::AuthorizationError] Authorization is required
52
- def <%= api_method.generated_name %>(<% for param in api_method.required_parameters %><%= param.generated_name %>, <% end %><% if api_method.request %><%= api.schemas[api_method.request._ref].generated_name %>_object = nil, <% end %><% for param in api_method.optional_query_parameters %><%= param.generated_name %>: nil, <% end %><% for param in api.parameters.values.reject {|p| p.name == 'key'} %><%= param.generated_name %>: nil, <% end %><% if api_method.supports_media_upload? %>upload_source: nil, content_type: nil, <% elsif api_method.supports_media_download? %>download_dest: nil, <% end %>options: nil, &block)
53
- <% if api_method.supports_media_upload? -%>
54
- if upload_source.nil?
55
- command = make_simple_command(:<%= api_method.http_method.downcase %>, '<%= api_method.path %>', options)
56
- else
57
- command = make_upload_command(:<%= api_method.http_method.downcase %>, '<%= api_method.path %>', options)
58
- command.upload_source = upload_source
59
- command.upload_content_type = content_type
60
- end
61
- <% elsif api_method.supports_media_download? -%>
62
- if download_dest.nil?
63
- command = make_simple_command(:<%= api_method.http_method.downcase %>, '<%= api_method.path %>', options)
64
- else
65
- command = make_download_command(:<%= api_method.http_method.downcase %>, '<%= api_method.path %>', options)
66
- command.download_dest = download_dest
67
- end
68
- <% else -%>
69
- command = make_simple_command(:<%= api_method.http_method.downcase %>, '<%= api_method.path %>', options)
70
- <% end -%>
71
- <% if api_method.request -%>
72
- command.request_representation = <%= api.schemas[api_method.request._ref].generated_type %>::Representation
73
- command.request_object = <%= api.schemas[api_method.request._ref].generated_name %>_object
74
- <% end -%>
75
- <% if api_method.response -%>
76
- <% if api.force_alt_json? -%>
77
- command.query['alt'] = 'json'
78
- <% end -%>
79
- command.response_representation = <%= api.schemas[api_method.response._ref].generated_type %>::Representation
80
- command.response_class = <%= api.schemas[api_method.response._ref].generated_type %>
81
- <% end -%>
82
- <% for param in api_method.path_parameters -%>
83
- command.params['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil?
84
- <% end -%>
85
- <% for param in api_method.query_parameters -%>
86
- command.query['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil?
87
- <% end -%>
88
- <% for param in api.parameters.values.reject {|p| p.name == 'key'} -%>
89
- command.query['<%= param.name %>'] = <%= param.generated_name %> unless <%= param.generated_name %>.nil?
90
- <% end -%>
91
- execute_or_queue_command(command, &block)
92
- end