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