# SPDX-FileCopyrightText: 2020 The Magma Authors.
# SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
#
# SPDX-License-Identifier: BSD-3-Clause

load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_proto_grpc//cpp:defs.bzl", "cpp_grpc_library", "cpp_proto_library")

package(default_visibility = ["//visibility:public"])

cpp_proto_library(
    name = "mconfigs_cpp_proto",
    protos = [":mconfigs_proto"],
    deps = ["//orc8r/protos:common_cpp_proto"],
)

proto_library(
    name = "mconfigs_proto",
    srcs = ["mconfig/mconfigs.proto"],
    deps = ["//orc8r/protos:common_proto"],
)

cpp_grpc_library(
    name = "abort_session_cpp_grpc",
    protos = [":abort_session_proto"],
)

cpp_proto_library(
    name = "abort_session_cpp_proto",
    protos = [":abort_session_proto"],
)

proto_library(
    name = "abort_session_proto",
    srcs = ["abort_session.proto"],
)

cpp_proto_library(
    name = "apn_cpp_proto",
    protos = [":apn_proto"],
)

proto_library(
    name = "apn_proto",
    srcs = ["apn.proto"],
)

cpp_proto_library(
    name = "subscriberdb_cpp_proto",
    protos = [":subscriberdb_proto"],
    deps = [
        ":apn_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
        "//orc8r/protos:digest_cpp_proto",
    ],
)

cpp_grpc_library(
    name = "subscriberdb_cpp_grpc",
    protos = [":subscriberdb_proto"],
    deps = [
        ":apn_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
        "//orc8r/protos:digest_cpp_proto",
    ],
)

proto_library(
    name = "subscriberdb_proto",
    srcs = ["subscriberdb.proto"],
    deps = [
        ":apn_proto",
        "//orc8r/protos:common_proto",
        "//orc8r/protos:digest_proto",
        "@protobuf//:field_mask_proto",
    ],
)

cpp_proto_library(
    name = "mobilityd_cpp_proto",
    protos = [":mobilityd_proto"],
    deps = [":subscriberdb_cpp_proto"],
)

cpp_grpc_library(
    name = "mobilityd_cpp_grpc",
    protos = [":mobilityd_proto"],
    deps = [
        ":subscriberdb_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

proto_library(
    name = "mobilityd_proto",
    srcs = ["mobilityd.proto"],
    deps = [
        ":subscriberdb_proto",
        "//orc8r/protos:common_proto",
    ],
)

cpp_proto_library(
    name = "policydb_cpp_proto",
    protos = [":policydb_proto"],
    deps = [
        ":mobilityd_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

cpp_grpc_library(
    name = "policydb_cpp_grpc",
    protos = [":policydb_proto"],
    deps = [
        ":mobilityd_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

proto_library(
    name = "policydb_proto",
    srcs = ["policydb.proto"],
    deps = [
        ":mobilityd_proto",
        "//orc8r/protos:common_proto",
    ],
)

cpp_proto_library(
    name = "session_manager_cpp_proto",
    protos = [":session_manager_proto"],
    deps = [
        ":apn_cpp_proto",
        ":policydb_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

cpp_grpc_library(
    name = "session_manager_cpp_grpc",
    protos = [":session_manager_proto"],
    deps = [
        ":apn_cpp_proto",
        ":policydb_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

proto_library(
    name = "session_manager_proto",
    srcs = ["session_manager.proto"],
    deps = [
        ":apn_proto",
        ":policydb_proto",
        ":subscriberdb_proto",
        "//orc8r/protos:common_proto",
        "@protobuf//:timestamp_proto",
    ],
)

cpp_proto_library(
    name = "pipelined_cpp_proto",
    protos = [":pipelined_proto"],
    deps = [
        ":apn_cpp_proto",
        ":policydb_cpp_proto",
        ":session_manager_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

cpp_grpc_library(
    name = "pipelined_cpp_grpc",
    protos = [":pipelined_proto"],
    deps = [
        ":apn_cpp_proto",
        ":policydb_cpp_proto",
        ":session_manager_cpp_proto",
        "//orc8r/protos:common_cpp_proto",
    ],
)

proto_library(
    name = "pipelined_proto",
    srcs = ["pipelined.proto"],
    deps = [
        ":apn_proto",
        ":mobilityd_proto",
        ":policydb_proto",
        ":session_manager_proto",
        ":subscriberdb_proto",
        "//orc8r/protos:common_proto",
    ],
)

cpp_grpc_library(
    name = "spgw_service_cpp_grpc",
    protos = [":spgw_service_proto"],
    deps = [
        "policydb_cpp_proto",
        "subscriberdb_cpp_proto",
    ],
)

cpp_proto_library(
    name = "spgw_service_cpp_proto",
    protos = [":spgw_service_proto"],
    deps = [
        ":policydb_cpp_proto",
        ":subscriberdb_cpp_proto",
    ],
)

proto_library(
    name = "spgw_service_proto",
    srcs = ["spgw_service.proto"],
    deps = [
        ":policydb_proto",
        ":subscriberdb_proto",
    ],
)
