xref: /aosp_15_r20/external/googleapis/google/iam/v1/BUILD.bazel (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1load("@rules_proto//proto:defs.bzl", "proto_library")
2
3##############################################################################
4# Common
5##############################################################################
6load(
7    "@com_google_googleapis_imports//:imports.bzl",
8    "cc_grpc_library",
9    "cc_proto_library",
10    "csharp_gapic_assembly_pkg",
11    "csharp_gapic_library",
12    "csharp_grpc_library",
13    "csharp_proto_library",
14    "go_gapic_assembly_pkg",
15    "go_gapic_library",
16    "go_proto_library",
17    "java_gapic_assembly_gradle_pkg",
18    "java_grpc_library",
19    "java_proto_library",
20    "php_gapic_assembly_pkg",
21    "php_proto_library",
22    "proto_library_with_info",
23    "py_proto_library",
24    "ruby_cloud_gapic_library",
25    "ruby_gapic_assembly_pkg",
26    "ruby_grpc_library",
27    "ruby_proto_library",
28)
29
30# This is an API workspace, having public visibility by default makes perfect sense.
31package(default_visibility = ["//visibility:public"])
32
33proto_library(
34    name = "iam_policy_proto",
35    srcs = ["iam_policy.proto"],
36    deps = [
37        ":options_proto",
38        ":policy_proto",
39        "//google/api:annotations_proto",
40        "//google/api:client_proto",
41        "//google/api:field_behavior_proto",
42        "//google/api:resource_proto",
43        "@com_google_protobuf//:field_mask_proto",
44    ],
45)
46
47proto_library(
48    name = "policy_proto",
49    srcs = ["policy.proto"],
50    deps = [
51        "//google/api:annotations_proto",
52        "//google/type:expr_proto",
53    ],
54)
55
56proto_library(
57    name = "options_proto",
58    srcs = ["options.proto"],
59    deps = [
60        "//google/api:annotations_proto",
61    ],
62)
63
64proto_library_with_info(
65    name = "iam_proto_with_info",
66    deps = [
67        ":iam_policy_proto",
68        ":options_proto",
69        ":policy_proto",
70    ],
71)
72
73java_proto_library(
74    name = "iam_java_proto",
75    deps = [
76        ":iam_policy_proto",
77        ":options_proto",
78        ":policy_proto",
79    ],
80)
81
82java_grpc_library(
83    name = "iam_java_grpc",
84    srcs = [":iam_policy_proto"],
85    deps = [":iam_java_proto"],
86)
87
88# Please DO-NOT-REMOVE this section.
89# This is required to generate java files for these protos.
90# Open Source Packages
91java_gapic_assembly_gradle_pkg(
92    name = "google-iam-v1-java",
93    include_samples = True,
94    transport = "grpc+rest",
95    deps = [
96        ":iam_java_grpc",
97        ":iam_java_proto",
98        ":iam_policy_proto",
99    ],
100)
101
102go_proto_library(
103    name = "iam_go_proto",
104    compilers = ["@io_bazel_rules_go//proto:go_grpc"],
105    importpath = "cloud.google.com/go/iam/apiv1/iampb",
106    protos = [
107        ":iam_policy_proto",
108        ":options_proto",
109        ":policy_proto",
110    ],
111    deps = [
112        "//google/api:annotations_go_proto",
113        "//google/type:expr_go_proto",
114    ],
115)
116
117# Manual addition for owlbot migration.
118go_gapic_library(
119    name = "iam_go_gapic",
120    srcs = [":iam_proto_with_info"],
121    grpc_service_config = None,
122    importpath = "cloud.google.com/go/iam/apiv1;iam",
123    metadata = True,
124    release_level = "ga",
125    rest_numeric_enums = True,
126    service_yaml = "iam_meta_api.yaml",
127    transport = "grpc+rest",
128    deps = [":iam_go_proto"],
129)
130
131go_gapic_assembly_pkg(
132    name = "gapi-cloud-iam-v1-go",
133    deps = [
134        ":iam_go_gapic",
135        ":iam_go_gapic_srcjar-metadata.srcjar",
136        ":iam_go_gapic_srcjar-snippets.srcjar",
137        ":iam_go_gapic_srcjar-test.srcjar",
138        ":iam_go_proto",
139    ],
140)
141
142cc_proto_library(
143    name = "iam_policy_cc_proto",
144    deps = [":iam_policy_proto"],
145)
146
147cc_proto_library(
148    name = "options_cc_proto",
149    deps = [":options_proto"],
150)
151
152cc_proto_library(
153    name = "policy_cc_proto",
154    deps = [":policy_proto"],
155)
156
157cc_grpc_library(
158    name = "iam_cc_grpc",
159    srcs = [":iam_policy_proto"],
160    grpc_only = True,
161    deps = [":iam_policy_cc_proto"],
162)
163
164py_proto_library(
165    name = "iam_policy_py_proto",
166    deps = [":iam_policy_proto"],
167)
168
169py_proto_library(
170    name = "policy_py_proto",
171    deps = [":policy_proto"],
172)
173
174py_proto_library(
175    name = "options_py_proto",
176    deps = [":options_proto"],
177)
178
179php_proto_library(
180    name = "iam_php_proto",
181    deps = [
182        ":iam_policy_proto",
183        ":options_proto",
184        ":policy_proto",
185    ],
186)
187
188# Open Source Packages
189php_gapic_assembly_pkg(
190    name = "google-iam-v1-php",
191    deps = [":iam_php_proto"],
192)
193
194ruby_proto_library(
195    name = "iam_ruby_proto",
196    deps = [
197        ":iam_policy_proto",
198        ":options_proto",
199        ":policy_proto",
200        "//google/iam/v1/logging:audit_data_proto",
201    ],
202)
203
204ruby_grpc_library(
205    name = "iam_ruby_grpc",
206    srcs = [":iam_policy_proto"],
207    deps = [":iam_ruby_proto"],
208)
209
210ruby_cloud_gapic_library(
211    name = "iam_ruby_gapic",
212    srcs = [":iam_proto_with_info"],
213    extra_protoc_parameters = [
214        "ruby-cloud-gem-name=google-iam-v1",
215    ],
216    rest_numeric_enums = False,
217    ruby_cloud_description = "An add-on interface used by some Google API clients to provide IAM Policy calls.",
218    ruby_cloud_title = "IAM",
219    service_yaml = "iam_meta_api.yaml",
220    transport = "grpc+rest",
221    deps = [
222        ":iam_ruby_grpc",
223        ":iam_ruby_proto",
224    ],
225)
226
227# Open Source Packages
228ruby_gapic_assembly_pkg(
229    name = "google-cloud-iam-v1-ruby",
230    deps = [
231        ":iam_ruby_gapic",
232        ":iam_ruby_grpc",
233        ":iam_ruby_proto",
234    ],
235)
236
237csharp_proto_library(
238    name = "iam_csharp_proto",
239    deps = [
240        ":iam_policy_proto",
241        ":options_proto",
242        ":policy_proto",
243        "//google/iam/v1/logging:audit_data_proto",
244    ],
245)
246
247csharp_grpc_library(
248    name = "iam_csharp_grpc",
249    srcs = [":iam_policy_proto"],
250    deps = [":iam_csharp_proto"],
251)
252
253csharp_gapic_library(
254    name = "iam_csharp_gapic",
255    srcs = [":iam_proto_with_info"],
256    common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
257    rest_numeric_enums = False,
258    service_yaml = "iam_meta_api.yaml",
259    deps = [
260        ":iam_csharp_grpc",
261        ":iam_csharp_proto",
262    ],
263)
264
265# Open Source Packages
266csharp_gapic_assembly_pkg(
267    name = "google-cloud-iam-v1-csharp",
268    deps = [
269        ":iam_csharp_gapic",
270        ":iam_csharp_grpc",
271        ":iam_csharp_proto",
272    ],
273)
274