BUILD.bazel 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. load("@rules_proto//proto:defs.bzl", "proto_library")
  2. # This is an API workspace, having public visibility by default makes perfect sense.
  3. package(default_visibility = ["//visibility:public"])
  4. ##############################################################################
  5. # Common
  6. ##############################################################################
  7. load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
  8. proto_library(
  9. name = "pubsub_proto",
  10. srcs = [
  11. "pubsub.proto",
  12. "schema.proto",
  13. ],
  14. deps = [
  15. "//google/api:annotations_proto",
  16. "//google/api:client_proto",
  17. "//google/api:field_behavior_proto",
  18. "//google/api:resource_proto",
  19. "@com_google_protobuf//:duration_proto",
  20. "@com_google_protobuf//:empty_proto",
  21. "@com_google_protobuf//:field_mask_proto",
  22. "@com_google_protobuf//:timestamp_proto",
  23. ],
  24. )
  25. proto_library_with_info(
  26. name = "pubsub_proto_with_info",
  27. deps = [
  28. ":pubsub_proto",
  29. "//google/cloud:common_resources_proto",
  30. "//google/iam/v1:iam_policy_proto",
  31. "//google/iam/v1:policy_proto",
  32. ],
  33. )
  34. ##############################################################################
  35. # Java
  36. ##############################################################################
  37. load(
  38. "@com_google_googleapis_imports//:imports.bzl",
  39. "java_gapic_assembly_gradle_pkg",
  40. "java_gapic_library",
  41. "java_gapic_test",
  42. "java_grpc_library",
  43. "java_proto_library",
  44. )
  45. java_proto_library(
  46. name = "pubsub_java_proto",
  47. deps = [":pubsub_proto"],
  48. )
  49. java_grpc_library(
  50. name = "pubsub_java_grpc",
  51. srcs = [":pubsub_proto"],
  52. deps = [":pubsub_java_proto"],
  53. )
  54. java_gapic_library(
  55. name = "pubsub_java_gapic",
  56. srcs = [":pubsub_proto_with_info"],
  57. gapic_yaml = "pubsub_gapic.yaml",
  58. grpc_service_config = "pubsub_grpc_service_config.json",
  59. rest_numeric_enums = False,
  60. service_yaml = ":pubsub_v1.yaml",
  61. test_deps = [
  62. ":pubsub_java_grpc",
  63. "//google/iam/v1:iam_java_grpc",
  64. ],
  65. transport = "grpc+rest",
  66. deps = [
  67. ":pubsub_java_proto",
  68. "//google/iam/v1:iam_java_proto",
  69. ],
  70. )
  71. java_gapic_test(
  72. name = "pubsub_java_gapic_test_suite",
  73. test_classes = [
  74. "com.google.cloud.pubsub.v1.SubscriptionAdminClientHttpJsonTest",
  75. "com.google.cloud.pubsub.v1.SubscriptionAdminClientTest",
  76. "com.google.cloud.pubsub.v1.TopicAdminClientHttpJsonTest",
  77. "com.google.cloud.pubsub.v1.TopicAdminClientTest",
  78. ],
  79. runtime_deps = [":pubsub_java_gapic_test"],
  80. )
  81. # Open Source Packages
  82. java_gapic_assembly_gradle_pkg(
  83. name = "google-cloud-pubsub-v1-java",
  84. include_samples = True,
  85. transport = "grpc+rest",
  86. deps = [
  87. ":pubsub_java_gapic",
  88. ":pubsub_java_grpc",
  89. ":pubsub_java_proto",
  90. ":pubsub_proto",
  91. ],
  92. )
  93. ##############################################################################
  94. # Python
  95. ##############################################################################
  96. load(
  97. "@com_google_googleapis_imports//:imports.bzl",
  98. "py_gapic_assembly_pkg",
  99. "py_gapic_library",
  100. "py_test",
  101. )
  102. py_gapic_library(
  103. name = "pubsub_py_gapic",
  104. srcs = [":pubsub_proto"],
  105. grpc_service_config = "pubsub_grpc_service_config.json",
  106. opt_args = [
  107. "warehouse-package-name=google-cloud-pubsub",
  108. "add-iam-methods",
  109. ],
  110. rest_numeric_enums = False,
  111. transport = "grpc",
  112. deps = [
  113. "//google/iam/v1:iam_policy_py_proto",
  114. ],
  115. )
  116. py_test(
  117. name = "pubsub_py_gapic_test",
  118. srcs = [
  119. "pubsub_py_gapic_pytest.py",
  120. "pubsub_py_gapic_test.py",
  121. ],
  122. legacy_create_init = False,
  123. deps = [":pubsub_py_gapic"],
  124. )
  125. py_gapic_assembly_pkg(
  126. name = "pubsub-v1-py",
  127. deps = [
  128. ":pubsub_py_gapic",
  129. ],
  130. )
  131. ##############################################################################
  132. # Go
  133. ##############################################################################
  134. load(
  135. "@com_google_googleapis_imports//:imports.bzl",
  136. "go_gapic_assembly_pkg",
  137. "go_gapic_library",
  138. "go_proto_library",
  139. "go_test",
  140. )
  141. go_proto_library(
  142. name = "pubsub_go_proto",
  143. compilers = ["@io_bazel_rules_go//proto:go_grpc"],
  144. importpath = "google.golang.org/genproto/googleapis/pubsub/v1",
  145. protos = [":pubsub_proto"],
  146. deps = ["//google/api:annotations_go_proto"],
  147. )
  148. go_gapic_library(
  149. name = "pubsub_go_gapic",
  150. srcs = [":pubsub_proto_with_info"],
  151. grpc_service_config = "pubsub_grpc_service_config.json",
  152. importpath = "cloud.google.com/go/pubsub/apiv1;pubsub",
  153. rest_numeric_enums = False,
  154. service_yaml = ":pubsub_v1.yaml",
  155. transport = "grpc+rest",
  156. deps = [
  157. ":pubsub_go_proto",
  158. "//google/iam/v1:iam_go_proto",
  159. ],
  160. )
  161. go_test(
  162. name = "pubsub_go_gapic_test",
  163. srcs = [":pubsub_go_gapic_srcjar_test"],
  164. embed = [":pubsub_go_gapic"],
  165. importpath = "cloud.google.com/go/pubsub/apiv1",
  166. deps = ["//google/iam/v1:iam_go_proto"],
  167. )
  168. # Open Source Packages
  169. go_gapic_assembly_pkg(
  170. name = "gapi-cloud-pubsub-v1-go",
  171. deps = [
  172. ":pubsub_go_gapic",
  173. ":pubsub_go_gapic_srcjar-test.srcjar",
  174. ":pubsub_go_proto",
  175. ],
  176. )
  177. ##############################################################################
  178. # PHP
  179. ##############################################################################
  180. load(
  181. "@com_google_googleapis_imports//:imports.bzl",
  182. "php_gapic_assembly_pkg",
  183. "php_gapic_library",
  184. "php_grpc_library",
  185. "php_proto_library",
  186. )
  187. php_proto_library(
  188. name = "pubsub_php_proto",
  189. deps = [":pubsub_proto"],
  190. )
  191. php_grpc_library(
  192. name = "pubsub_php_grpc",
  193. srcs = [":pubsub_proto"],
  194. deps = [":pubsub_php_proto"],
  195. )
  196. php_gapic_library(
  197. name = "pubsub_php_gapic",
  198. srcs = [":pubsub_proto_with_info"],
  199. gapic_yaml = "pubsub_gapic.yaml",
  200. grpc_service_config = "pubsub_grpc_service_config.json",
  201. rest_numeric_enums = False,
  202. service_yaml = ":pubsub_v1.yaml",
  203. transport = "grpc+rest",
  204. deps = [
  205. ":pubsub_php_grpc",
  206. ":pubsub_php_proto",
  207. ],
  208. )
  209. # Open Source Packages
  210. php_gapic_assembly_pkg(
  211. name = "google-cloud-pubsub-v1-php",
  212. deps = [
  213. ":pubsub_php_gapic",
  214. ":pubsub_php_grpc",
  215. ":pubsub_php_proto",
  216. ],
  217. )
  218. ##############################################################################
  219. # Node.js
  220. ##############################################################################
  221. load(
  222. "@com_google_googleapis_imports//:imports.bzl",
  223. "nodejs_gapic_assembly_pkg",
  224. "nodejs_gapic_library",
  225. )
  226. nodejs_gapic_library(
  227. name = "pubsub_nodejs_gapic",
  228. package_name = "@google-cloud/pubsub",
  229. src = ":pubsub_proto_with_info",
  230. bundle_config = "pubsub_gapic.yaml",
  231. extra_protoc_parameters = ["template=typescript_gapic"],
  232. grpc_service_config = "pubsub_grpc_service_config.json",
  233. handwritten_layer = True,
  234. main_service = "pubsub",
  235. rest_numeric_enums = False,
  236. service_yaml = ":pubsub_v1.yaml",
  237. transport = "grpc+rest",
  238. deps = [],
  239. )
  240. nodejs_gapic_assembly_pkg(
  241. name = "pubsub-v1-nodejs",
  242. deps = [
  243. ":pubsub_nodejs_gapic",
  244. ":pubsub_proto",
  245. ],
  246. )
  247. ##############################################################################
  248. # Ruby
  249. ##############################################################################
  250. load(
  251. "@com_google_googleapis_imports//:imports.bzl",
  252. "ruby_cloud_gapic_library",
  253. "ruby_gapic_assembly_pkg",
  254. "ruby_grpc_library",
  255. "ruby_proto_library",
  256. )
  257. ruby_proto_library(
  258. name = "pubsub_ruby_proto",
  259. deps = [":pubsub_proto"],
  260. )
  261. ruby_grpc_library(
  262. name = "pubsub_ruby_grpc",
  263. srcs = [":pubsub_proto"],
  264. deps = [":pubsub_ruby_proto"],
  265. )
  266. ruby_cloud_gapic_library(
  267. name = "pubsub_ruby_gapic",
  268. srcs = [":pubsub_proto_with_info"],
  269. extra_protoc_parameters = [
  270. "ruby-cloud-gem-name=google-cloud-pubsub-v1",
  271. "ruby-cloud-env-prefix=PUBSUB",
  272. "ruby-cloud-path-override=pub_sub=pubsub",
  273. "ruby-cloud-namespace-override=Pubsub=PubSub",
  274. "ruby-cloud-product-url=https://cloud.google.com/pubsub",
  275. "ruby-cloud-api-id=pubsub.googleapis.com",
  276. "ruby-cloud-api-shortname=pubsub",
  277. ],
  278. grpc_service_config = "pubsub_grpc_service_config.json",
  279. rest_numeric_enums = False,
  280. ruby_cloud_description = "Cloud Pub/Sub is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications.",
  281. ruby_cloud_title = "Cloud Pub/Sub V1",
  282. service_yaml = ":pubsub_v1.yaml",
  283. deps = [
  284. ":pubsub_ruby_grpc",
  285. ":pubsub_ruby_proto",
  286. ],
  287. )
  288. # Open Source Packages
  289. ruby_gapic_assembly_pkg(
  290. name = "google-cloud-pubsub-v1-ruby",
  291. deps = [
  292. ":pubsub_ruby_gapic",
  293. ":pubsub_ruby_grpc",
  294. ":pubsub_ruby_proto",
  295. ],
  296. )
  297. ##############################################################################
  298. # C#
  299. ##############################################################################
  300. load(
  301. "@com_google_googleapis_imports//:imports.bzl",
  302. "csharp_gapic_assembly_pkg",
  303. "csharp_gapic_library",
  304. "csharp_grpc_library",
  305. "csharp_proto_library",
  306. )
  307. csharp_proto_library(
  308. name = "pubsub_csharp_proto",
  309. deps = [":pubsub_proto"],
  310. )
  311. csharp_grpc_library(
  312. name = "pubsub_csharp_grpc",
  313. srcs = [":pubsub_proto"],
  314. deps = [":pubsub_csharp_proto"],
  315. )
  316. csharp_gapic_library(
  317. name = "pubsub_csharp_gapic",
  318. srcs = [":pubsub_proto_with_info"],
  319. grpc_service_config = "pubsub_grpc_service_config.json",
  320. rest_numeric_enums = False,
  321. service_yaml = ":pubsub_v1.yaml",
  322. deps = [
  323. ":pubsub_csharp_grpc",
  324. ":pubsub_csharp_proto",
  325. ],
  326. )
  327. # Open Source Packages
  328. csharp_gapic_assembly_pkg(
  329. name = "google-cloud-pubsub-v1-csharp",
  330. deps = [
  331. ":pubsub_csharp_gapic",
  332. ":pubsub_csharp_grpc",
  333. ":pubsub_csharp_proto",
  334. ],
  335. )
  336. ##############################################################################
  337. # C++
  338. ##############################################################################
  339. load(
  340. "@com_google_googleapis_imports//:imports.bzl",
  341. "cc_grpc_library",
  342. "cc_proto_library",
  343. )
  344. cc_proto_library(
  345. name = "pubsub_cc_proto",
  346. deps = [":pubsub_proto"],
  347. )
  348. cc_grpc_library(
  349. name = "pubsub_cc_grpc",
  350. srcs = [":pubsub_proto"],
  351. grpc_only = True,
  352. deps = [":pubsub_cc_proto"],
  353. )