blob: 45d30e443931d399784b820cff2445c27be7d32e [file] [log] [blame]
Lorenz Brun189495a2022-11-08 12:59:36 +00001load("@io_bazel_rules_go//go:def.bzl", "go_library")
2load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01003load("@rules_proto//proto:defs.bzl", "proto_library")
Tim Windelschmidt3b624072025-01-11 07:16:35 +01004load("@rules_proto_grpc_buf//:defs.bzl", "buf_proto_lint_test")
5
6buf_proto_lint_test(
7 name = "api_proto_lint_test",
8 except_rules = [
9 "PACKAGE_VERSION_SUFFIX",
Tim Windelschmidtf408e812025-01-11 08:48:26 +010010 "MESSAGE_PASCAL_CASE",
Tim Windelschmidtf4d38752025-01-22 21:59:59 +010011 "ENUM_ZERO_VALUE_SUFFIX",
Tim Windelschmidtb21bdf92025-05-28 18:37:35 +020012 "SERVICE_SUFFIX",
Tim Windelschmidt3b624072025-01-11 07:16:35 +010013 ],
14 protos = [":api_proto"],
15 use_rules = [
16 "DEFAULT",
17 "COMMENTS",
18 ],
19)
Lorenz Brun189495a2022-11-08 12:59:36 +000020
21proto_library(
22 name = "api_proto",
Lorenz Brun94695962023-01-12 17:33:17 +000023 srcs = [
24 "agent.proto",
Lorenz Brun595dfe92023-02-21 19:13:02 +010025 "hwreport.proto",
Lorenz Brun94695962023-01-12 17:33:17 +000026 "takeover.proto",
27 ],
Lorenz Brun189495a2022-11-08 12:59:36 +000028 visibility = ["//visibility:public"],
Tim Windelschmidtb21bdf92025-05-28 18:37:35 +020029 deps = [
30 "//metropolis/proto/api:api_proto",
31 "//osbase/net/proto:proto_proto",
32 ],
Lorenz Brun189495a2022-11-08 12:59:36 +000033)
34
35go_proto_library(
36 name = "api_go_proto",
Tim Windelschmidtb21bdf92025-05-28 18:37:35 +020037 compilers = ["@io_bazel_rules_go//proto:go_grpc"],
Lorenz Brun189495a2022-11-08 12:59:36 +000038 importpath = "source.monogon.dev/cloud/agent/api",
39 proto = ":api_proto",
40 visibility = ["//visibility:public"],
Tim Windelschmidtb21bdf92025-05-28 18:37:35 +020041 deps = [
42 "//metropolis/proto/api",
43 "//osbase/net/proto",
44 ],
Lorenz Brun189495a2022-11-08 12:59:36 +000045)
46
47go_library(
48 name = "api",
49 embed = [":api_go_proto"],
50 importpath = "source.monogon.dev/cloud/agent/api",
51 visibility = ["//visibility:public"],
52)