#######################################################################################
# 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.
#######################################################################################
adal==1.2.7
    # via msrestazure
aenum==3.1.0
    # via pyone
alabaster==0.7.12
    # via sphinx
appdirs==1.4.4
    # via openstacksdk
attrs==21.2.0
    # via
    #   cmd2
    #   jsonschema
autopage==0.4.0
    # via cliff
azure-common==1.1.27
    # via
    #   -r RO-VIM-azure/requirements.in
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-core==1.17.0
    # via
    #   azure-identity
    #   azure-mgmt-core
azure-identity==1.6.1
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==22.1.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-core==1.3.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==19.0.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==19.0.0
    # via -r RO-VIM-azure/requirements.in
babel==2.9.1
    # via sphinx
bcrypt==3.2.0
    # via paramiko
bitarray==2.3.2
    # via pyangbind
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
certifi==2021.5.30
    # via
    #   msrest
    #   requests
cffi==1.14.6
    # via
    #   bcrypt
    #   cryptography
    #   pynacl
charset-normalizer==2.0.4
    # via requests
cheroot==8.5.2
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==3.9.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.1.2
    # via cliff
colorama==0.4.4
    # via cmd2
cryptography==3.4.8
    # via
    #   -r NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
cvprac==1.0.7
    # via -r RO-SDN-arista_cloudvision/requirements.in
debtcollector==2.2.0
    # via
    #   oslo.config
    #   oslo.context
    #   oslo.log
    #   oslo.utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.0.9
    # via
    #   dogpile.cache
    #   openstacksdk
dicttoxml==1.7.4
    # via pyone
docutils==0.17.1
    # via sphinx
dogpile.cache==1.1.3
    # via openstacksdk
enum34==1.1.10
    # via pyangbind
flufl.enum==4.1.1
    # via pyvcloud
fog05-sdk==0.2.0
    # via
    #   -r RO-VIM-fos/requirements.in
    #   fog05
fog05==0.2.0
    # via -r RO-VIM-fos/requirements.in
hexdump==3.3
    # via yaks
humanfriendly==9.2
    # via pyvcloud
idna==3.2
    # via requests
imagesize==1.2.0
    # via sphinx
importlib-metadata==4.8.1
    # via -r NG-RO/requirements.in
iso8601==0.1.16
    # via
    #   keystoneauth1
    #   openstacksdk
    #   oslo.utils
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
isodate==0.6.0
    # via msrest
jaraco.functools==3.3.0
    # via
    #   cheroot
    #   tempora
jinja2==3.0.1
    # via sphinx
jmespath==0.10.0
    # via openstacksdk
jsonpatch==1.32
    # via
    #   openstacksdk
    #   warlock
jsonpointer==2.1
    # via jsonpatch
jsonschema==3.2.0
    # via
    #   fog05
    #   fog05-sdk
    #   warlock
keystoneauth1==4.3.1
    # via
    #   openstacksdk
    #   osc-lib
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
logutils==0.3.5
    # via -r NG-RO/requirements.in
lxml==4.6.3
    # via
    #   pyang
    #   pyangbind
    #   pyone
    #   pyvcloud
markupsafe==2.0.1
    # via jinja2
more-itertools==8.8.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco.functools
msal-extensions==0.3.0
    # via azure-identity
msal==1.14.0
    # via
    #   azure-identity
    #   msal-extensions
msgpack==1.0.2
    # via oslo.serialization
msrest==0.6.21
    # via
    #   -r RO-VIM-azure/requirements.in
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   msrestazure
msrestazure==0.6.4
    # via -r RO-VIM-azure/requirements.in
munch==2.5.0
    # via openstacksdk
mvar==0.0.1
    # via
    #   fog05
    #   fog05-sdk
    #   yaks
netaddr==0.8.0
    # via
    #   -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
    #   oslo.config
    #   oslo.utils
    #   python-neutronclient
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo.utils
oauthlib==3.1.1
    # via requests-oauthlib
oca==4.10.0
    # via -r RO-VIM-opennebula/requirements.in
openstacksdk==0.59.0
    # via
    #   os-client-config
    #   osc-lib
    #   python-openstackclient
os-client-config==2.1.0
    # via python-neutronclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.4.2
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo.config==8.7.1
    # via
    #   oslo.log
    #   python-keystoneclient
oslo.context==3.3.1
    # via oslo.log
oslo.i18n==5.0.1
    # via
    #   osc-lib
    #   oslo.config
    #   oslo.log
    #   oslo.utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
oslo.log==4.6.0
    # via python-neutronclient
oslo.serialization==4.2.0
    # via
    #   oslo.log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo.utils==4.10.0
    # via
    #   osc-lib
    #   oslo.log
    #   oslo.serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
packaging==21.0
    # via
    #   oslo.utils
    #   sphinx
papero==0.2.7
    # via yaks
paramiko==2.7.2
    # via
    #   -r RO-SDN-dpb/requirements.in
    #   -r RO-plugin/requirements.in
pbr==5.6.0
    # via
    #   cliff
    #   debtcollector
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   osc-lib
    #   oslo.context
    #   oslo.i18n
    #   oslo.log
    #   oslo.serialization
    #   oslo.utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
    #   stevedore
portalocker==1.7.1
    # via msal-extensions
portend==2.7.1
    # via cherrypy
prettytable==2.2.0
    # via
    #   -r RO-VIM-vmware/requirements.in
    #   cliff
    #   python-cinderclient
    #   python-glanceclient
    #   python-novaclient
progressbar==2.5
    # via -r RO-VIM-vmware/requirements.in
pyang==2.5.0
    # via pyangbind
pyangbind==0.8.1
    # via
    #   -r RO-VIM-fos/requirements.in
    #   fog05-sdk
pycparser==2.20
    # via cffi
pygments==2.10.0
    # via
    #   pyvcloud
    #   sphinx
pyinotify==0.9.6
    # via oslo.log
pyjwt[crypto]==2.1.0
    # via
    #   adal
    #   msal
pynacl==1.4.0
    # via paramiko
pyone==6.0.3
    # via -r RO-VIM-opennebula/requirements.in
pyopenssl==20.0.1
    # via python-glanceclient
pyparsing==2.4.7
    # via
    #   cliff
    #   oslo.utils
    #   packaging
pyperclip==1.8.2
    # via cmd2
pyrsistent==0.18.0
    # via jsonschema
python-cinderclient==7.4.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-dateutil==2.8.2
    # via
    #   adal
    #   oslo.log
python-glanceclient==3.4.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==4.2.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==7.5.0
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==17.5.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-openstackclient==5.5.0
    # via -r RO-VIM-openstack/requirements.in
pytz==2021.1
    # via
    #   babel
    #   oslo.serialization
    #   oslo.utils
    #   tempora
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==7.0.2
    # via -r RO-VIM-vmware/requirements.in
pyyaml==5.4.1
    # via
    #   -r NG-RO/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-plugin/requirements.in
    #   cliff
    #   openstacksdk
    #   oslo.config
    #   pyvcloud
regex==2021.8.28
    # via pyangbind
requests-oauthlib==1.3.0
    # via msrest
requests==2.26.0
    # via
    #   -r NG-RO/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-plugin/requirements.in
    #   adal
    #   azure-core
    #   cvprac
    #   keystoneauth1
    #   msal
    #   msrest
    #   oslo.config
    #   pyone
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   pyvcloud
    #   pyvmomi
    #   requests-oauthlib
    #   sphinx
requestsexceptions==1.4.0
    # via openstacksdk
rfc3986==1.5.0
    # via oslo.config
simplejson==3.17.5
    # via
    #   osc-lib
    #   python-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   azure-core
    #   azure-identity
    #   bcrypt
    #   cheroot
    #   debtcollector
    #   isodate
    #   jsonschema
    #   keystoneauth1
    #   msrestazure
    #   munch
    #   oslo.i18n
    #   pyangbind
    #   pynacl
    #   pyone
    #   pyopenssl
    #   python-dateutil
    #   python-keystoneclient
    #   pyvmomi
    #   warlock
snowballstemmer==2.1.0
    # via sphinx
sphinx==4.1.2
    # via -r RO-VIM-fos/requirements.in
sphinxcontrib-applehelp==1.0.2
    # via sphinx
sphinxcontrib-devhelp==1.0.2
    # via sphinx
sphinxcontrib-htmlhelp==2.0.0
    # via sphinx
sphinxcontrib-jsmath==1.0.1
    # via sphinx
sphinxcontrib-qthelp==1.0.3
    # via sphinx
sphinxcontrib-serializinghtml==1.1.5
    # via sphinx
stevedore==3.4.0
    # via
    #   cliff
    #   dogpile.cache
    #   keystoneauth1
    #   osc-lib
    #   oslo.config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tblib==1.7.0
    # via pyone
tempora==4.1.1
    # via portend
urllib3==1.26.6
    # via requests
uuid==1.30
    # via -r RO-SDN-arista_cloudvision/requirements.in
warlock==1.3.3
    # via python-glanceclient
wcwidth==0.2.5
    # via
    #   cmd2
    #   prettytable
wrapt==1.12.1
    # via
    #   debtcollector
    #   python-glanceclient
xmltodict==0.12.0
    # via pyone
yaks==0.3.0.post1
    # via
    #   -r RO-VIM-fos/requirements.in
    #   fog05
    #   fog05-sdk
zc.lockfile==2.0
    # via cherrypy
zenoh==0.3.0
    # via -r RO-VIM-fos/requirements.in
zipp==3.5.0
    # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
