xref: /aosp_15_r20/external/federated-compute/fcp/client/http/BUILD (revision 14675a029014e728ec732f129a32e299b2da0601)
1# Copyright 2021 Google LLC
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
15package(
16    default_visibility = [
17        "//fcp:internal",
18    ],
19    licenses = ["notice"],  # Apache 2.0
20)
21
22cc_library(
23    name = "http_client",
24    hdrs = ["http_client.h"],
25    visibility = ["//visibility:public"],
26    deps = [
27        "@com_google_absl//absl/base:core_headers",
28        "@com_google_absl//absl/container:flat_hash_map",
29        "@com_google_absl//absl/status",
30        "@com_google_absl//absl/status:statusor",
31        "@com_google_absl//absl/strings",
32    ],
33)
34
35cc_library(
36    name = "http_client_util",
37    srcs = ["http_client_util.cc"],
38    hdrs = ["http_client_util.h"],
39    deps = [
40        ":http_client",
41        "//fcp/base",
42        "@com_google_absl//absl/status",
43        "@com_google_absl//absl/status:statusor",
44        "@com_google_absl//absl/strings",
45        "@com_google_absl//absl/strings:str_format",
46        "@com_google_googleapis//google/rpc:status_cc_proto",
47    ],
48)
49
50cc_test(
51    name = "http_client_util_test",
52    srcs = ["http_client_util_test.cc"],
53    deps = [
54        ":http_client_util",
55        "//fcp/base",
56        "//fcp/testing",
57        "@com_google_absl//absl/status",
58        "@com_google_googleapis//google/rpc:status_cc_proto",
59        "@com_google_googletest//:gtest_main",
60    ],
61)
62
63proto_library(
64    name = "http_resource_metadata_proto",
65    srcs = ["http_resource_metadata.proto"],
66)
67
68cc_proto_library(
69    name = "http_resource_metadata_cc_proto",
70    deps = [":http_resource_metadata_proto"],
71)
72
73cc_library(
74    name = "in_memory_request_response",
75    srcs = ["in_memory_request_response.cc"],
76    hdrs = ["in_memory_request_response.h"],
77    deps = [
78        ":http_client",
79        ":http_client_util",
80        ":http_resource_metadata_cc_proto",
81        "//fcp/base",
82        "//fcp/client:interruptible_runner",
83        "//fcp/client/cache:resource_cache",
84        "@com_google_absl//absl/base:core_headers",
85        "@com_google_absl//absl/status",
86        "@com_google_absl//absl/status:statusor",
87        "@com_google_absl//absl/strings",
88        "@com_google_absl//absl/strings:cord",
89        "@com_google_absl//absl/synchronization",
90        "@com_google_absl//absl/time",
91        "@com_google_protobuf//:protobuf",
92    ],
93)
94
95cc_test(
96    name = "in_memory_request_response_test",
97    srcs = ["in_memory_request_response_test.cc"],
98    deps = [
99        ":http_client",
100        ":http_client_util",
101        ":http_resource_metadata_cc_proto",
102        ":in_memory_request_response",
103        "//fcp/base",
104        "//fcp/base:simulated_clock",
105        "//fcp/client:diag_codes_cc_proto",
106        "//fcp/client:interruptible_runner",
107        "//fcp/client:test_helpers",
108        "//fcp/client/cache:file_backed_resource_cache",
109        "//fcp/client/cache:test_helpers",
110        "//fcp/client/http/testing:test_helpers",
111        "//fcp/testing",
112        "@com_google_absl//absl/status",
113        "@com_google_absl//absl/status:statusor",
114        "@com_google_absl//absl/strings",
115        "@com_google_absl//absl/strings:cord",
116        "@com_google_absl//absl/synchronization",
117        "@com_google_absl//absl/time",
118        "@com_google_googletest//:gtest_main",
119        "@com_google_protobuf//:protobuf",
120    ],
121)
122
123cc_library(
124    name = "http_federated_protocol",
125    srcs = ["http_federated_protocol.cc"],
126    hdrs = [
127        "http_federated_protocol.h",
128    ],
129    deps = [
130        ":http_client",
131        ":http_client_util",
132        ":http_secagg_send_to_server_impl",
133        ":in_memory_request_response",
134        ":protocol_request_helper",
135        "//fcp/base",
136        "//fcp/base:clock",
137        "//fcp/base:time_util",
138        "//fcp/base:wall_clock_stopwatch",
139        "//fcp/client:diag_codes_cc_proto",
140        "//fcp/client:federated_protocol",
141        "//fcp/client:federated_protocol_util",
142        "//fcp/client:fl_runner_cc_proto",
143        "//fcp/client:interfaces",
144        "//fcp/client:interruptible_runner",
145        "//fcp/client:parsing_utils",
146        "//fcp/client:secagg_runner",
147        "//fcp/client:selector_context_cc_proto",
148        "//fcp/client/cache:resource_cache",
149        "//fcp/client/engine:engine_cc_proto",
150        "//fcp/protos:federated_api_cc_proto",
151        "//fcp/protos:plan_cc_proto",
152        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
153        "//fcp/secagg/client",
154        "@com_google_absl//absl/container:flat_hash_set",
155        "@com_google_absl//absl/random",
156        "@com_google_absl//absl/status",
157        "@com_google_absl//absl/status:statusor",
158        "@com_google_absl//absl/strings",
159        "@com_google_absl//absl/strings:cord",
160        "@com_google_absl//absl/time",
161        "@com_google_googleapis//google/longrunning:longrunning_cc_proto",
162        "@com_google_googleapis//google/rpc:code_cc_proto",
163        "@com_google_protobuf//:protobuf",
164    ],
165)
166
167cc_test(
168    name = "http_federated_protocol_test",
169    srcs = ["http_federated_protocol_test.cc"],
170    deps = [
171        ":http_client",
172        ":http_client_util",
173        ":http_federated_protocol",
174        ":in_memory_request_response",
175        "//fcp/base",
176        "//fcp/base:clock",
177        "//fcp/base:time_util",
178        "//fcp/base:wall_clock_stopwatch",
179        "//fcp/client:diag_codes_cc_proto",
180        "//fcp/client:federated_protocol",
181        "//fcp/client:federated_protocol_util",
182        "//fcp/client:interfaces",
183        "//fcp/client:interruptible_runner",
184        "//fcp/client:test_helpers",
185        "//fcp/client/cache:test_helpers",
186        "//fcp/client/engine:engine_cc_proto",
187        "//fcp/client/http/testing:test_helpers",
188        "//fcp/protos:federated_api_cc_proto",
189        "//fcp/protos:plan_cc_proto",
190        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
191        "//fcp/secagg/shared:cc_proto",
192        "//fcp/testing",
193        "@com_google_absl//absl/memory",
194        "@com_google_absl//absl/random",
195        "@com_google_absl//absl/status",
196        "@com_google_absl//absl/status:statusor",
197        "@com_google_absl//absl/strings",
198        "@com_google_absl//absl/synchronization",
199        "@com_google_absl//absl/time",
200        "@com_google_googleapis//google/longrunning:longrunning_cc_proto",
201        "@com_google_googleapis//google/rpc:code_cc_proto",
202        "@com_google_googletest//:gtest_main",
203        "@com_google_protobuf//:protobuf",
204    ],
205)
206
207cc_library(
208    name = "http_secagg_send_to_server_impl",
209    srcs = ["http_secagg_send_to_server_impl.cc"],
210    hdrs = ["http_secagg_send_to_server_impl.h"],
211    visibility = ["//visibility:private"],
212    deps = [
213        ":http_client_util",
214        ":protocol_request_helper",
215        "//fcp/client:interfaces",
216        "//fcp/client:secagg_runner",
217        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
218        "//fcp/secagg/shared:cc_proto",
219        "@com_google_absl//absl/status",
220        "@com_google_absl//absl/status:statusor",
221        "@com_google_absl//absl/strings",
222        "@com_google_googleapis//google/rpc:code_cc_proto",
223        "@com_google_protobuf//:protobuf",
224    ],
225)
226
227cc_test(
228    name = "http_secagg_send_to_server_impl_test",
229    srcs = ["http_secagg_send_to_server_impl_test.cc"],
230    deps = [
231        ":http_secagg_send_to_server_impl",
232        "//fcp/base:simulated_clock",
233        "//fcp/client:test_helpers",
234        "//fcp/client/http/testing:test_helpers",
235        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
236        "//fcp/testing",
237        "@com_google_absl//absl/time",
238        "@com_google_googleapis//google/longrunning:longrunning_cc_proto",
239        "@com_google_googleapis//google/rpc:code_cc_proto",
240    ],
241)
242
243cc_library(
244    name = "protocol_request_helper",
245    srcs = ["protocol_request_helper.cc"],
246    hdrs = ["protocol_request_helper.h"],
247    deps = [
248        ":http_client",
249        ":http_client_util",
250        ":in_memory_request_response",
251        "//fcp/base:clock",
252        "//fcp/base:time_util",
253        "//fcp/base:wall_clock_stopwatch",
254        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
255        "@com_google_absl//absl/container:flat_hash_set",
256        "@com_google_absl//absl/status",
257        "@com_google_absl//absl/status:statusor",
258        "@com_google_absl//absl/strings",
259        "@com_google_googleapis//google/longrunning:longrunning_cc_proto",
260        "@com_google_protobuf//:protobuf",
261    ],
262)
263
264cc_test(
265    name = "protocol_request_helper_test",
266    srcs = ["protocol_request_helper_test.cc"],
267    deps = [
268        ":protocol_request_helper",
269        "//fcp/base:time_util",
270        "//fcp/client:test_helpers",
271        "//fcp/client/http/testing:test_helpers",
272        "//fcp/protos/federatedcompute:federated_compute_cc_proto",
273        "//fcp/testing",
274        "@com_google_protobuf//:protobuf",
275    ],
276)
277