#######################################################################################
# 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
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.20.1
    # via
    #   azure-identity
    #   azure-mgmt-core
azure-identity==1.7.1
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==23.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.3.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==20.0.0
    # via -r RO-VIM-azure/requirements.in
babel==2.9.1
    # via sphinx
bcrypt==3.2.0
    # via paramiko
bitarray==2.3.4
    # via pyangbind
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
certifi==2021.10.8
    # via
    #   msrest
    #   requests
cffi==1.15.0
    # via
    #   bcrypt
    #   cryptography
    #   pynacl
charset-normalizer==2.0.8
    # via requests
cheroot==8.5.2
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==3.10.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.3.3
    # via cliff
cryptography==36.0.0
    # 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.3.0
    # via
    #   oslo.config
    #   oslo.context
    #   oslo.log
    #   oslo.utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.1.0
    # via
    #   dogpile.cache
    #   openstacksdk
docutils==0.17.1
    # via sphinx
dogpile.cache==1.1.4
    # 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==10.0
    # via pyvcloud
idna==3.3
    # via requests
imagesize==1.3.0
    # via sphinx
importlib-metadata==4.8.2
    # via -r NG-RO/requirements.in
iso8601==1.0.2
    # via
    #   keystoneauth1
    #   openstacksdk
    #   oslo.utils
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
isodate==0.6.0
    # via msrest
jaraco.functools==3.4.0
    # via
    #   cheroot
    #   tempora
jinja2==3.0.3
    # via sphinx
jmespath==0.10.0
    # via openstacksdk
jsonpatch==1.32
    # via
    #   openstacksdk
    #   warlock
jsonpointer==2.2
    # via jsonpatch
jsonschema==3.2.0
    # via
    #   fog05
    #   fog05-sdk
    #   warlock
keystoneauth1==4.4.0
    # 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.4
    # via
    #   pyang
    #   pyangbind
    #   pyvcloud
markupsafe==2.0.1
    # via jinja2
more-itertools==8.12.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco.functools
msal-extensions==0.3.0
    # via azure-identity
msal==1.16.0
    # via
    #   azure-identity
    #   msal-extensions
msgpack==1.0.3
    # 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-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
openstacksdk==0.60.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.4.0
    # via oslo.log
oslo.i18n==5.1.0
    # 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.1
    # via python-neutronclient
oslo.serialization==4.2.0
    # via
    #   oslo.log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo.utils==4.12.0
    # via
    #   osc-lib
    #   oslo.log
    #   oslo.serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
packaging==21.3
    # via
    #   oslo.utils
    #   sphinx
papero==0.2.7
    # via yaks
paramiko==2.8.1
    # via
    #   -r RO-SDN-dpb/requirements.in
    #   -r RO-plugin/requirements.in
pbr==5.8.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==3.0.0
    # via
    #   -r requirements.in
    #   cherrypy
prettytable==2.4.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.21
    # via cffi
pygments==2.10.0
    # via
    #   pyvcloud
    #   sphinx
pyinotify==0.9.6
    # via oslo.log
pyjwt[crypto]==2.3.0
    # via
    #   adal
    #   msal
pynacl==1.4.0
    # via paramiko
pyopenssl==21.0.0
    # via python-glanceclient
pyparsing==3.0.6
    # via
    #   cliff
    #   oslo.utils
    #   packaging
pyperclip==1.8.2
    # via cmd2
pyrsistent==0.18.0
    # via jsonschema
python-cinderclient==7.4.1
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-dateutil==2.8.2
    # via
    #   adal
    #   oslo.log
python-glanceclient==3.5.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==4.3.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==7.7.0
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==17.6.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-openstackclient==5.7.0
    # via -r RO-VIM-openstack/requirements.in
pytz==2021.3
    # via
    #   babel
    #   oslo.serialization
    #   oslo.utils
    #   tempora
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==7.0.3
    # 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-openstack/requirements.in
    #   -r RO-VIM-openvim/requirements.in
    #   -r RO-VIM-vmware/requirements.in
    #   -r RO-plugin/requirements.in
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo.config
    #   pyvcloud
regex==2021.11.10
    # 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-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
    #   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.6
    # via
    #   osc-lib
    #   python-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   azure-core
    #   azure-identity
    #   bcrypt
    #   cheroot
    #   debtcollector
    #   isodate
    #   jsonschema
    #   keystoneauth1
    #   msrestazure
    #   munch
    #   pyangbind
    #   pynacl
    #   pyopenssl
    #   python-dateutil
    #   python-keystoneclient
    #   pyvmomi
    #   warlock
snowballstemmer==2.2.0
    # via sphinx
sphinx==4.3.1
    # 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.5.0
    # via
    #   cliff
    #   dogpile.cache
    #   keystoneauth1
    #   osc-lib
    #   oslo.config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tempora==4.1.2
    # via portend
urllib3==1.26.7
    # 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.13.3
    # via
    #   debtcollector
    #   python-glanceclient
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.6.0
    # via importlib-metadata

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