#
# Copyright 2019-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Gopkg.toml example
#
# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
#   name = "github.com/user/project"
#   version = "1.0.0"
#
# [[constraint]]
#   name = "github.com/user/project2"
#   branch = "dev"
#   source = "github.com/myfork/project2"
#
# [[override]]
#   name = "github.com/x/y"
#   version = "2.4.0"
#
# [prune]
#   non-go = false
#   go-tests = true
#   unused-packages = true

required = [
    "github.com/golang/protobuf/protoc-gen-go",
]

[[constraint]]
  name = "github.com/bsm/sarama-cluster"
  version = "2.1.15"

[[constraint]]
  branch = "master"
  name = "github.com/cevaris/ordered_map"

[[constraint]]
  name = "github.com/gogo/protobuf"
  version = "1.2.0"

[[constraint]]
  name = "github.com/golang/protobuf"
  version = "=1.3.1"

[[constraint]]
  name = "github.com/google/uuid"
  version = "1.1.0"

[[constraint]]
  name = "github.com/gyuho/goraph"
  version = "2.0.0"

[[constraint]]
  name = "github.com/hashicorp/consul"
  version = "1.4.0"

[[constraint]]
  name = "github.com/stretchr/testify"
  version = "1.3.0"

[[constraint]]
  name = "github.com/opencord/voltha-protos"
  version = "1.0.0"

[[override]]
  name = "go.etcd.io/etcd"
  branch = "master"

[[constraint]]
  name = "go.uber.org/zap"
  version = "1.9.1"

[[override]]
  branch = "master"
  name = "golang.org/x/net"

[[constraint]]
  name = "google.golang.org/grpc"
  version = "1.17.0"

[[constraint]]
  name = "gopkg.in/Shopify/sarama.v1"
  version = "1.20.1"

[prune]
  go-tests = true
  unused-packages = true

[[prune.project]]
  name = "github.com/opencord/voltha-protos"
  unused-packages = false

[[constraint]]
  branch = "master"
  name = "github.com/boljen/go-bitmap"

[[constraint]]
  name = "k8s.io/client-go"
  version = "10.0.0"
