#######################################################################################
# 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
appdirs==1.4.4
    # via openstacksdk
atpublic==3.1.1
    # via flufl-enum
attrs==22.2.0
    # via
    #   cmd2
    #   jsonschema
autopage==0.5.1
    # via cliff
azure-common==1.1.28
    # via
    #   -r RO-VIM-azure/requirements.in
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-core==1.26.2
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.12.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==29.1.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-core==1.3.2
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==22.2.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==22.0.0
    # via -r RO-VIM-azure/requirements.in
bcrypt==4.0.1
    # via paramiko
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
cachetools==5.3.0
    # via google-auth
certifi==2022.12.7
    # via
    #   msrest
    #   requests
cffi==1.15.1
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.0.1
    # via requests
cheroot==9.0.0
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==4.1.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.4.2
    # via cliff
cryptography==39.0.0
    # via
    #   -r NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
cvprac==1.2.2
    # via -r RO-SDN-arista_cloudvision/requirements.in
debtcollector==2.5.0
    # via
    #   oslo-config
    #   oslo-context
    #   oslo-log
    #   oslo-utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.1.1
    # via
    #   dogpile-cache
    #   openstacksdk
dogpile-cache==1.1.8
    # via openstacksdk
flufl-enum==5.0.1
    # via pyvcloud
google-api-core==2.11.0
    # via google-api-python-client
google-api-python-client==2.74.0
    # via -r RO-VIM-gcp/requirements.in
google-auth==2.16.0
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   google-api-core
    #   google-api-python-client
    #   google-auth-httplib2
google-auth-httplib2==0.1.0
    # via google-api-python-client
google-cloud==0.34.0
    # via -r RO-VIM-gcp/requirements.in
googleapis-common-protos==1.58.0
    # via google-api-core
httplib2==0.21.0
    # via
    #   google-api-python-client
    #   google-auth-httplib2
humanfriendly==10.0
    # via pyvcloud
idna==3.4
    # via requests
importlib-metadata==6.0.0
    # via
    #   -r NG-RO/requirements.in
    #   cliff
importlib-resources==5.10.2
    # via jsonschema
ipconflict==0.5.0
    # via -r RO-VIM-aws/requirements.in
iso8601==1.1.0
    # via
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
isodate==0.6.1
    # via msrest
jaraco-functools==3.5.2
    # via
    #   cheroot
    #   tempora
jinja2==3.1.2
    # via -r NG-RO/requirements.in
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.32
    # via
    #   openstacksdk
    #   warlock
jsonpointer==2.3
    # via jsonpatch
jsonschema==4.17.3
    # via warlock
keystoneauth1==5.1.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.9.2
    # via pyvcloud
markupsafe==2.1.2
    # via jinja2
more-itertools==9.0.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco-functools
msal==1.20.0
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.0.0
    # via azure-identity
msgpack==1.0.4
    # via oslo-serialization
msrest==0.7.1
    # 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
netaddr==0.8.0
    # via
    #   -r RO-VIM-aws/requirements.in
    #   -r RO-VIM-azure/requirements.in
    #   -r RO-VIM-gcp/requirements.in
    #   -r RO-VIM-openstack/requirements.in
    #   -r RO-VIM-openvim/requirements.in
    #   -r RO-VIM-vmware/requirements.in
    #   ipconflict
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo-utils
oauthlib==3.2.2
    # via requests-oauthlib
openstacksdk==0.103.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.6.2
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==9.1.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.0.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==5.0.2
    # via python-neutronclient
oslo-serialization==5.0.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==6.1.0
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
packaging==23.0
    # via
    #   oslo-utils
    #   python-keystoneclient
paramiko==3.0.0
    # via
    #   -r RO-SDN-dpb/requirements.in
    #   -r RO-VIM-gcp/requirements.in
    #   -r RO-plugin/requirements.in
pbr==5.11.1
    # via
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   osc-lib
    #   oslo-context
    #   oslo-i18n
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
    #   stevedore
pkgutil-resolve-name==1.3.10
    # via jsonschema
portalocker==2.7.0
    # via msal-extensions
portend==3.1.0
    # via cherrypy
prettytable==3.6.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
protobuf==4.21.12
    # via
    #   google-api-core
    #   googleapis-common-protos
py-radix==0.10.0
    # via ipconflict
pyasn1==0.4.8
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.2.8
    # via google-auth
pycparser==2.21
    # via cffi
pygments==2.14.0
    # via pyvcloud
pyinotify==0.9.6
    # via oslo-log
pyjwt[crypto]==2.6.0
    # via
    #   adal
    #   msal
pynacl==1.5.0
    # via paramiko
pyopenssl==23.0.0
    # via python-glanceclient
pyparsing==3.0.9
    # via
    #   httplib2
    #   oslo-utils
pyperclip==1.8.2
    # via cmd2
pyrsistent==0.19.3
    # 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==4.2.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==5.0.1
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==8.2.1
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==18.2.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-openstackclient==6.0.0
    # via -r RO-VIM-openstack/requirements.in
pytz==2022.7.1
    # via
    #   oslo-serialization
    #   oslo-utils
    #   tempora
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==8.0.0.1.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-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
requests==2.28.2
    # 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-openstack/requirements.in
    #   -r RO-VIM-openvim/requirements.in
    #   -r RO-VIM-vmware/requirements.in
    #   -r RO-plugin/requirements.in
    #   adal
    #   azure-core
    #   cvprac
    #   google-api-core
    #   keystoneauth1
    #   msal
    #   msrest
    #   oslo-config
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   pyvcloud
    #   requests-oauthlib
requests-oauthlib==1.3.1
    # via msrest
requestsexceptions==1.4.0
    # via openstacksdk
rfc3986==2.0.0
    # via oslo-config
rsa==4.9
    # via google-auth
simplejson==3.18.1
    # via
    #   osc-lib
    #   python-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   azure-core
    #   azure-identity
    #   cheroot
    #   google-auth
    #   google-auth-httplib2
    #   isodate
    #   keystoneauth1
    #   msrestazure
    #   munch
    #   python-dateutil
    #   python-keystoneclient
    #   pyvmomi
stevedore==4.1.1
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tempora==5.2.1
    # via portend
tqdm==4.64.1
    # via ipconflict
typing-extensions==4.4.0
    # via azure-core
uritemplate==4.1.1
    # via google-api-python-client
urllib3==1.26.14
    # via requests
uuid==1.30
    # via -r RO-SDN-arista_cloudvision/requirements.in
warlock==2.0.1
    # via python-glanceclient
wcwidth==0.2.6
    # via
    #   cmd2
    #   prettytable
wrapt==1.14.1
    # via
    #   debtcollector
    #   python-glanceclient
zc-lockfile==2.0
    # via cherrypy
zipp==3.11.0
    # via
    #   importlib-metadata
    #   importlib-resources

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