gapic-generator 0.11.0 → 0.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +299 -0
  3. data/CONTRIBUTING.md +1 -1
  4. data/README.md +71 -37
  5. data/bin/protoc-gen-ruby_gapic +2 -2
  6. data/lib/gapic/file_formatter.rb +23 -19
  7. data/lib/gapic/formatting_utils.rb +22 -9
  8. data/lib/gapic/gem_builder.rb +15 -17
  9. data/lib/gapic/generator/version.rb +1 -1
  10. data/lib/gapic/generators/base_generator.rb +6 -4
  11. data/lib/gapic/generators/default_generator.rb +70 -34
  12. data/lib/gapic/generators/default_generator_parameters.rb +9 -3
  13. data/lib/gapic/grpc_service_config/parser.rb +2 -2
  14. data/lib/gapic/model/api_metadata.rb +173 -0
  15. data/lib/gapic/model/method/http_annotation.rb +158 -60
  16. data/lib/gapic/model/method/lro.rb +8 -5
  17. data/lib/gapic/model/method/routing.rb +3 -18
  18. data/lib/gapic/model/mixins.rb +76 -10
  19. data/lib/gapic/model/service/nonstandard_lro_provider.rb +10 -11
  20. data/lib/gapic/package_snippets.rb +159 -0
  21. data/lib/gapic/path_pattern/parser.rb +11 -2
  22. data/lib/gapic/path_pattern/pattern.rb +18 -1
  23. data/lib/gapic/path_pattern/segment.rb +11 -4
  24. data/lib/gapic/presenters/enum_presenter.rb +14 -0
  25. data/lib/gapic/presenters/enum_value_presenter.rb +4 -1
  26. data/lib/gapic/presenters/field_presenter.rb +78 -21
  27. data/lib/gapic/presenters/gem_presenter.rb +109 -35
  28. data/lib/gapic/presenters/message_presenter.rb +15 -0
  29. data/lib/gapic/presenters/method/http_binding_presenter.rb +128 -0
  30. data/lib/gapic/presenters/method/rest_pagination_info.rb +25 -16
  31. data/lib/gapic/presenters/method_presenter.rb +109 -35
  32. data/lib/gapic/presenters/method_rest_presenter.rb +70 -137
  33. data/lib/gapic/presenters/package_presenter.rb +63 -18
  34. data/lib/gapic/presenters/resource_presenter.rb +9 -3
  35. data/lib/gapic/presenters/service/lro_client_presenter.rb +14 -14
  36. data/lib/gapic/presenters/service/mixin_client_presenter.rb +89 -0
  37. data/lib/gapic/presenters/service/sub_client_presenter.rb +84 -0
  38. data/lib/gapic/presenters/service_presenter.rb +183 -31
  39. data/lib/gapic/presenters/service_rest_presenter.rb +180 -27
  40. data/lib/gapic/presenters/snippet/client_call_presenter.rb +82 -0
  41. data/lib/gapic/presenters/snippet/client_initialization_presenter.rb +87 -0
  42. data/lib/gapic/presenters/snippet/declaration_presenter.rb +91 -0
  43. data/lib/gapic/presenters/snippet/expression_presenter.rb +135 -0
  44. data/lib/gapic/presenters/snippet/iteration_presenter.rb +118 -0
  45. data/lib/gapic/presenters/snippet/parameter_presenter.rb +67 -0
  46. data/lib/gapic/presenters/snippet/request_initialization_presenters.rb +202 -0
  47. data/lib/gapic/presenters/snippet/response_handling_presenters.rb +329 -0
  48. data/lib/gapic/presenters/snippet/statement_presenter.rb +134 -0
  49. data/lib/gapic/presenters/snippet/type_presenter.rb +98 -0
  50. data/lib/gapic/presenters/snippet_presenter.rb +199 -10
  51. data/lib/gapic/presenters.rb +2 -0
  52. data/lib/gapic/runner.rb +1 -1
  53. data/lib/gapic/schema/api.rb +49 -3
  54. data/lib/gapic/schema/loader.rb +67 -22
  55. data/lib/gapic/schema/parameter_schema.rb +8 -8
  56. data/lib/gapic/schema/proto_tools.rb +193 -0
  57. data/lib/gapic/schema/request_param_parser.rb +5 -7
  58. data/lib/gapic/schema/service_config_parser.rb +38 -4
  59. data/lib/gapic/schema/wrappers.rb +192 -31
  60. data/lib/gapic/uri_template/parser.rb +15 -7
  61. data/lib/google/cloud/tools/snippetgen/configlanguage/v1/snippet_config_language_pb.rb +104 -0
  62. data/lib/google/cloud/tools/snippetgen/snippetindex/v1/snippet_index_pb.rb +58 -0
  63. data/lib/google/protobuf/compiler/plugin_pb.rb +47 -0
  64. data/templates/default/binding_override.text.erb +6 -0
  65. data/templates/default/gem/gemfile.text.erb +12 -0
  66. data/templates/default/gem/{gemspec.erb → gemspec.text.erb} +3 -11
  67. data/templates/default/gem/{readme.erb → readme.text.erb} +10 -6
  68. data/templates/default/gem/{rubocop.erb → rubocop.text.erb} +3 -0
  69. data/templates/default/gem/{test_helper.erb → test_helper.text.erb} +4 -2
  70. data/templates/default/gem/toys.text.erb +12 -0
  71. data/templates/default/helpers/default_helper.rb +33 -1
  72. data/templates/default/lib/_binding_override.text.erb +49 -0
  73. data/templates/default/lib/{_package.erb → _package.text.erb} +6 -9
  74. data/templates/default/lib/_package_rest.text.erb +24 -0
  75. data/templates/default/lib/{_service.erb → _service.text.erb} +11 -23
  76. data/templates/default/lib/package/_self_configure.text.erb +16 -0
  77. data/templates/default/lib/package/_self_configure_defaults.text.erb +13 -0
  78. data/templates/default/lib/package/self_configure/_binding_default.text.erb +15 -0
  79. data/templates/default/lib/rest/_rest.text.erb +46 -0
  80. data/templates/default/package_rest.text.erb +6 -0
  81. data/templates/default/proto_docs/_deprecated.text.erb +9 -0
  82. data/templates/default/proto_docs/{_enum.erb → _enum.text.erb} +1 -0
  83. data/templates/default/proto_docs/{_message.erb → _message.text.erb} +2 -0
  84. data/templates/default/service/client/{_client.erb → _client.text.erb} +60 -12
  85. data/templates/default/service/client/{_config.erb → _config.text.erb} +39 -8
  86. data/templates/default/service/client/{_operations.erb → _operations.text.erb} +24 -3
  87. data/templates/default/service/client/method/{_def.erb → _def.text.erb} +2 -2
  88. data/templates/default/service/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +2 -1
  89. data/templates/default/service/client/method/def/_request_normal.text.erb +18 -0
  90. data/templates/default/service/client/method/def/_request_streaming.text.erb +23 -0
  91. data/templates/default/service/client/method/def/{_response.erb → _response.text.erb} +2 -0
  92. data/templates/default/service/client/method/def/{_response_nonstandard_lro.erb → _response_nonstandard_lro.text.erb} +1 -1
  93. data/templates/default/service/client/method/def/_response_normal.text.erb +4 -0
  94. data/templates/default/service/client/method/def/{_response_normal.erb → _response_normal_lro.text.erb} +1 -3
  95. data/templates/default/service/client/method/def/{_response_paged.erb → _response_paged.text.erb} +1 -1
  96. data/templates/default/service/client/method/docs/{_request_normal.erb → _request_normal.text.erb} +1 -1
  97. data/templates/default/service/client/method/docs/_snippets.text.erb +6 -0
  98. data/templates/default/service/client/resource/_def.text.erb +7 -0
  99. data/templates/default/service/nonstandard_lro.text.erb +6 -0
  100. data/templates/default/service/rest/client/{_client.erb → _client.text.erb} +82 -13
  101. data/templates/default/service/rest/client/_config.text.erb +178 -0
  102. data/templates/default/service/rest/client/_operations.text.erb +124 -0
  103. data/templates/default/service/rest/client/method/{_def.erb → _def.text.erb} +7 -1
  104. data/templates/default/service/rest/client/method/def/{_options_defaults.erb → _options_defaults.text.erb} +8 -3
  105. data/templates/default/service/rest/client/method/def/{_response.erb → _response.text.erb} +4 -0
  106. data/templates/default/service/rest/client/method/def/{_response_nonstandard_lro.erb → _response_nonstandard_lro.text.erb} +5 -4
  107. data/templates/default/service/rest/client/method/def/_response_normal.text.erb +5 -0
  108. data/templates/default/service/rest/client/method/def/_response_normal_lro.text.erb +7 -0
  109. data/templates/default/service/rest/client/method/def/_response_paged.text.erb +7 -0
  110. data/templates/default/service/rest/client/method/def/_response_server_streaming.text.erb +11 -0
  111. data/templates/default/service/rest/client/method/docs/{_request.erb → _request.text.erb} +1 -3
  112. data/templates/default/service/rest/client/method/docs/_result.text.erb +10 -0
  113. data/templates/default/service/rest/client/method/docs/_snippets.text.erb +6 -0
  114. data/templates/default/service/{nonstandard_lro.erb → rest/nonstandard_lro.text.erb} +1 -1
  115. data/templates/default/service/rest/operations.text.erb +6 -0
  116. data/templates/default/service/rest/service_stub/_service_stub.text.erb +63 -0
  117. data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.text.erb +37 -0
  118. data/templates/default/service/rest/service_stub/method/_def.text.erb +35 -0
  119. data/templates/default/service/rest/service_stub/method/def/_response.text.erb +37 -0
  120. data/templates/default/service/rest/test/{client.erb → client.text.erb} +3 -3
  121. data/templates/default/service/rest/test/method/_assert_response.text.erb +2 -0
  122. data/templates/default/service/rest/test/method/{_configure.erb → _configure.text.erb} +3 -2
  123. data/templates/default/service/rest/test/method/_normal.text.erb +60 -0
  124. data/templates/default/service/rest/test/method/_server.text.erb +60 -0
  125. data/templates/default/service/rest/test/method/{_setup.erb → _setup.text.erb} +26 -10
  126. data/templates/default/service/test/{_resource.erb → _resource.text.erb} +1 -1
  127. data/templates/default/service/test/{client.erb → client.text.erb} +3 -2
  128. data/templates/default/service/test/client_paths.text.erb +33 -0
  129. data/templates/default/service/test/method/{_bidi.erb → _bidi.text.erb} +1 -1
  130. data/templates/default/service/test/method/{_client.erb → _client.text.erb} +1 -1
  131. data/templates/default/service/test/method/{_configure.erb → _configure.text.erb} +2 -1
  132. data/templates/default/service/test/method/{_normal.erb → _normal.text.erb} +1 -1
  133. data/templates/default/service/test/method/{_server.erb → _server.text.erb} +1 -1
  134. data/templates/default/service/test/method/{_setup.erb → _setup.text.erb} +19 -2
  135. data/templates/default/snippets/{gemfile.erb → gemfile.text.erb} +2 -2
  136. data/templates/default/snippets/snippet/_body.text.erb +24 -0
  137. data/templates/default/snippets/snippet/_inline.text.erb +11 -0
  138. data/templates/default/snippets/snippet/_standalone.text.erb +25 -0
  139. data/templates/default/snippets/{standalone.erb → standalone.text.erb} +1 -1
  140. metadata +198 -273
  141. data/lib/google/api/annotations.pb.rb +0 -39
  142. data/lib/google/api/auth.pb.rb +0 -75
  143. data/lib/google/api/backend.pb.rb +0 -59
  144. data/lib/google/api/billing.pb.rb +0 -53
  145. data/lib/google/api/client.pb.rb +0 -43
  146. data/lib/google/api/context.pb.rb +0 -47
  147. data/lib/google/api/control.pb.rb +0 -38
  148. data/lib/google/api/documentation.pb.rb +0 -56
  149. data/lib/google/api/endpoint.pb.rb +0 -42
  150. data/lib/google/api/field_behavior.pb.rb +0 -51
  151. data/lib/google/api/http.pb.rb +0 -60
  152. data/lib/google/api/label.pb.rb +0 -49
  153. data/lib/google/api/launch_stage.pb.rb +0 -37
  154. data/lib/google/api/log.pb.rb +0 -47
  155. data/lib/google/api/logging.pb.rb +0 -48
  156. data/lib/google/api/metric.pb.rb +0 -90
  157. data/lib/google/api/monitored_resource.pb.rb +0 -68
  158. data/lib/google/api/monitoring.pb.rb +0 -48
  159. data/lib/google/api/quota.pb.rb +0 -63
  160. data/lib/google/api/resource.pb.rb +0 -80
  161. data/lib/google/api/routing.pb.rb +0 -58
  162. data/lib/google/api/service.pb.rb +0 -90
  163. data/lib/google/api/source_info.pb.rb +0 -44
  164. data/lib/google/api/system_parameter.pb.rb +0 -51
  165. data/lib/google/api/usage.pb.rb +0 -47
  166. data/lib/google/cloud/extended_operations.pb.rb +0 -57
  167. data/lib/google/longrunning/operations.pb.rb +0 -115
  168. data/lib/google/protobuf/any.pb.rb +0 -40
  169. data/lib/google/protobuf/api.pb.rb +0 -69
  170. data/lib/google/protobuf/compiler/plugin.pb.rb +0 -79
  171. data/lib/google/protobuf/descriptor.pb.rb +0 -360
  172. data/lib/google/protobuf/duration.pb.rb +0 -41
  173. data/lib/google/protobuf/empty.pb.rb +0 -36
  174. data/lib/google/protobuf/source_context.pb.rb +0 -39
  175. data/lib/google/protobuf/struct.pb.rb +0 -65
  176. data/lib/google/protobuf/type.pb.rb +0 -128
  177. data/lib/google/protobuf/wrappers.pb.rb +0 -80
  178. data/lib/google/rpc/status.pb.rb +0 -46
  179. data/templates/default/gem/gemfile.erb +0 -4
  180. data/templates/default/lib/rest/_rest.erb +0 -9
  181. data/templates/default/service/client/method/def/_request_normal.erb +0 -4
  182. data/templates/default/service/client/method/def/_request_streaming.erb +0 -9
  183. data/templates/default/service/client/method/docs/_deprecated.erb +0 -5
  184. data/templates/default/service/client/method/docs/_snippets.erb +0 -6
  185. data/templates/default/service/client/resource/_def.erb +0 -6
  186. data/templates/default/service/rest/client/_config.erb +0 -122
  187. data/templates/default/service/rest/client/method/def/_response_normal.erb +0 -6
  188. data/templates/default/service/rest/client/method/def/_response_paged.erb +0 -7
  189. data/templates/default/service/rest/client/method/docs/_result.erb +0 -6
  190. data/templates/default/service/rest/service_stub/_service_stub.erb +0 -25
  191. data/templates/default/service/rest/service_stub/grpc_transcoding_method/_def.erb +0 -24
  192. data/templates/default/service/rest/service_stub/method/_def.erb +0 -20
  193. data/templates/default/service/rest/service_stub/method/def/_response.erb +0 -17
  194. data/templates/default/service/rest/test/method/_assert_response.erb +0 -2
  195. data/templates/default/service/rest/test/method/_normal.erb +0 -71
  196. data/templates/default/service/test/client_paths.erb +0 -15
  197. data/templates/default/snippets/snippet/_structure.erb +0 -71
  198. /data/gem_templates/{binary.erb → binary.text.erb} +0 -0
  199. /data/gem_templates/{dockerfile.erb → dockerfile.text.erb} +0 -0
  200. /data/gem_templates/{entrypoint.erb → entrypoint.text.erb} +0 -0
  201. /data/gem_templates/{gapic_sh.erb → gapic_sh.text.erb} +0 -0
  202. /data/gem_templates/{gemfile.erb → gemfile.text.erb} +0 -0
  203. /data/gem_templates/{gemspec.erb → gemspec.text.erb} +0 -0
  204. /data/gem_templates/{generator.erb → generator.text.erb} +0 -0
  205. /data/gem_templates/{gitignore.erb → gitignore.text.erb} +0 -0
  206. /data/gem_templates/{rakefile.erb → rakefile.text.erb} +0 -0
  207. /data/gem_templates/{readme.erb → readme.text.erb} +0 -0
  208. /data/gem_templates/{rubocop.erb → rubocop.text.erb} +0 -0
  209. /data/gem_templates/shared/{_header.erb → _header.text.erb} +0 -0
  210. /data/gem_templates/shared/{_license.erb → _license.text.erb} +0 -0
  211. /data/gem_templates/shared/{_warning.erb → _warning.text.erb} +0 -0
  212. /data/gem_templates/{test_generator.erb → test_generator.text.erb} +0 -0
  213. /data/gem_templates/{test_helper.erb → test_helper.text.erb} +0 -0
  214. /data/gem_templates/{version.erb → version.text.erb} +0 -0
  215. /data/templates/default/gem/{_version.erb → _version.text.erb} +0 -0
  216. /data/templates/default/gem/{changelog.erb → changelog.text.erb} +0 -0
  217. /data/templates/default/gem/{entrypoint.erb → entrypoint.text.erb} +0 -0
  218. /data/templates/default/gem/{gapic_metadata_json.erb → gapic_metadata_json.text.erb} +0 -0
  219. /data/templates/default/gem/{gitignore.erb → gitignore.text.erb} +0 -0
  220. /data/templates/default/gem/{license.erb → license.text.erb} +0 -0
  221. /data/templates/default/gem/{rakefile.erb → rakefile.text.erb} +0 -0
  222. /data/templates/default/gem/{version.erb → version.text.erb} +0 -0
  223. /data/templates/default/gem/{yardopts.erb → yardopts.text.erb} +0 -0
  224. /data/templates/default/layouts/{_ruby.erb → _ruby.text.erb} +0 -0
  225. /data/templates/default/{package.erb → package.text.erb} +0 -0
  226. /data/templates/default/proto_docs/{_proto_file.erb → _proto_file.text.erb} +0 -0
  227. /data/templates/default/proto_docs/{proto_file.erb → proto_file.text.erb} +0 -0
  228. /data/templates/default/proto_docs/{readme.erb → readme.text.erb} +0 -0
  229. /data/templates/default/service/{_helpers.erb → _helpers.text.erb} +0 -0
  230. /data/templates/default/service/client/{_credentials.erb → _credentials.text.erb} +0 -0
  231. /data/templates/default/service/client/{_nonstandard_lro.erb → _nonstandard_lro.text.erb} +0 -0
  232. /data/templates/default/service/client/{_paths.erb → _paths.text.erb} +0 -0
  233. /data/templates/default/service/client/{_requires.erb → _requires.text.erb} +0 -0
  234. /data/templates/default/service/client/{_resource.erb → _resource.text.erb} +0 -0
  235. /data/templates/default/service/client/{_self_configure.erb → _self_configure.text.erb} +0 -0
  236. /data/templates/default/service/client/{_self_configure_defaults.erb → _self_configure_defaults.text.erb} +0 -0
  237. /data/templates/default/service/client/method/def/{_request.erb → _request.text.erb} +0 -0
  238. /data/templates/default/service/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
  239. /data/templates/default/service/client/method/def/{_routing_params.erb → _routing_params.text.erb} +0 -0
  240. /data/templates/default/service/client/method/docs/{_error.erb → _error.text.erb} +0 -0
  241. /data/templates/default/service/client/method/docs/{_request.erb → _request.text.erb} +0 -0
  242. /data/templates/default/service/client/method/docs/{_request_field.erb → _request_field.text.erb} +0 -0
  243. /data/templates/default/service/client/method/docs/{_request_streaming.erb → _request_streaming.text.erb} +0 -0
  244. /data/templates/default/service/client/method/docs/{_response.erb → _response.text.erb} +0 -0
  245. /data/templates/default/service/client/method/docs/{_sample.erb → _sample.text.erb} +0 -0
  246. /data/templates/default/service/client/method/docs/{_sample_response.erb → _sample_response.text.erb} +0 -0
  247. /data/templates/default/service/client/method/docs/{_samples.erb → _samples.text.erb} +0 -0
  248. /data/templates/default/service/client/method/docs/request_field/{_arg.erb → _arg.text.erb} +0 -0
  249. /data/templates/default/service/client/method/docs/request_field/{_hash.erb → _hash.text.erb} +0 -0
  250. /data/templates/default/service/client/method/docs/sample_response/{_comment.erb → _comment.text.erb} +0 -0
  251. /data/templates/default/service/client/method/docs/sample_response/{_define.erb → _define.text.erb} +0 -0
  252. /data/templates/default/service/client/method/docs/sample_response/{_loop.erb → _loop.text.erb} +0 -0
  253. /data/templates/default/service/client/method/docs/sample_response/{_print.erb → _print.text.erb} +0 -0
  254. /data/templates/default/service/client/method/docs/sample_response/{_write_file.erb → _write_file.text.erb} +0 -0
  255. /data/templates/default/service/client/resource/{_doc.erb → _doc.text.erb} +0 -0
  256. /data/templates/default/service/client/resource/{_multi.erb → _multi.text.erb} +0 -0
  257. /data/templates/default/service/client/resource/{_single.erb → _single.text.erb} +0 -0
  258. /data/templates/default/service/{client.erb → client.text.erb} +0 -0
  259. /data/templates/default/service/{credentials.erb → credentials.text.erb} +0 -0
  260. /data/templates/default/service/{operations.erb → operations.text.erb} +0 -0
  261. /data/templates/default/service/{paths.erb → paths.text.erb} +0 -0
  262. /data/templates/default/service/rest/client/method/def/{_rescue.erb → _rescue.text.erb} +0 -0
  263. /data/templates/default/service/rest/client/method/docs/{_error.erb → _error.text.erb} +0 -0
  264. /data/templates/default/service/rest/{client.erb → client.text.erb} +0 -0
  265. /data/templates/default/service/rest/{grpc_transcoding.erb → grpc_transcoding.text.erb} +0 -0
  266. /data/templates/default/service/rest/service_stub/grpc_transcoding_method/def/{_query_string_param.erb → _query_string_param.text.erb} +0 -0
  267. /data/templates/default/service/rest/service_stub/method/def/{_request.erb → _request.text.erb} +0 -0
  268. /data/templates/default/service/rest/{service_stub.erb → service_stub.text.erb} +0 -0
  269. /data/templates/default/service/{rest.erb → rest.text.erb} +0 -0
  270. /data/templates/default/service/test/{client_operations.erb → client_operations.text.erb} +0 -0
  271. /data/templates/default/service/test/method/{_assert_response.erb → _assert_response.text.erb} +0 -0
  272. /data/templates/default/service/test/{smoke.erb → smoke.text.erb} +0 -0
  273. /data/templates/default/{service.erb → service.text.erb} +0 -0
  274. /data/templates/default/shared/{_header.erb → _header.text.erb} +0 -0
  275. /data/templates/default/shared/{_license.erb → _license.text.erb} +0 -0
  276. /data/templates/default/shared/{_warning.erb → _warning.text.erb} +0 -0