// Copyright 2018-2024 Open Networking Foundation Contributors
// SPDX-FileCopyrightText: 2018-2024 Open Networking Foundation Contributors
//
// SPDX-License-Identifier: Apache-2.0

/*
 * Import this file into a go project in order to cause `go mod vendor`
 * to vendor the voltha.pb file.
 */

package volthaGoProtoSet
