# Copyright ETSI Contributors and Others.
#
# 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.
##

-r NG-RO/requirements.in
-r RO-plugin/requirements.in
-r RO-SDN-arista_cloudvision/requirements.in
-r RO-SDN-dpb/requirements.in
-r RO-SDN-dynpac/requirements.in
-r RO-SDN-floodlight_openflow/requirements.in
-r RO-SDN-ietfl2vpn/requirements.in
-r RO-SDN-juniper_contrail/requirements.in
-r RO-SDN-odl_openflow/requirements.in
-r RO-SDN-onos_openflow/requirements.in
-r RO-SDN-onos_vpls/requirements.in
-r RO-VIM-aws/requirements.in
-r RO-VIM-azure/requirements.in
-r RO-VIM-fos/requirements.in
#-r RO-VIM-opennebula/requirements.in
-r RO-VIM-openstack/requirements.in
-r RO-VIM-openvim/requirements.in
-r RO-VIM-vmware/requirements.in
-r RO-VIM-gcp/requirements.in
# Needed to pin due to failure in finding package version
portend<3.1.0
pyyaml==5.4.1
