#######################################################################################
# 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==4.0
    # via flufl-enum
attrs==23.1.0
    # via
    #   cmd2
    #   jsonschema
    #   referencing
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.29.4
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.14.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==30.3.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-core==1.4.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==25.1.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==23.0.1
    # 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.1
    # via google-auth
certifi==2023.7.22
    # via
    #   msrest
    #   requests
cffi==1.16.0
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.3.0
    # via requests
cheroot==10.0.0
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==4.3.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.4.3
    # via cliff
cryptography==41.0.4
    # via
    #   -r NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
    #   python-openstackclient
cvprac==1.3.1
    # 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.2.2
    # via openstacksdk
flufl-enum==6.0.2
    # via pyvcloud
google-api-core==2.12.0
    # via google-api-python-client
google-api-python-client==2.101.0
    # via -r RO-VIM-gcp/requirements.in
google-auth==2.23.2
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   google-api-core
    #   google-api-python-client
    #   google-auth-httplib2
google-auth-httplib2==0.1.1
    # via google-api-python-client
google-cloud==0.34.0
    # via -r RO-VIM-gcp/requirements.in
googleapis-common-protos==1.60.0
    # via google-api-core
httplib2==0.22.0
    # via
    #   google-api-python-client
    #   google-auth-httplib2
humanfriendly==10.0
    # via pyvcloud
idna==3.4
    # via requests
importlib-metadata==6.8.0
    # via
    #   -r NG-RO/requirements.in
    #   cliff
ipconflict==0.5.0
    # via -r RO-VIM-aws/requirements.in
iso8601==2.1.0
    # via
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
isodate==0.6.1
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   msrest
jaraco-functools==3.9.0
    # via
    #   cheroot
    #   tempora
jinja2==3.1.2
    # via -r NG-RO/requirements.in
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.33
    # via
    #   openstacksdk
    #   warlock
jsonpointer==2.4
    # via jsonpatch
jsonschema==4.19.1
    # via warlock
jsonschema-specifications==2023.7.1
    # via jsonschema
keystoneauth1==5.3.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.9.3
    # via pyvcloud
markupsafe==2.1.3
    # via jinja2
more-itertools==10.1.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco-functools
msal==1.24.1
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.0.0
    # via azure-identity
msgpack==1.0.7
    # via oslo-serialization
msrest==0.7.1
    # via
    #   -r RO-VIM-azure/requirements.in
    #   msrestazure
msrestazure==0.6.4
    # via -r RO-VIM-azure/requirements.in
netaddr==0.9.0
    # via
    #   -r RO-VIM-aws/requirements.in
    #   -r RO-VIM-gcp/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==1.5.0
    # via
    #   os-client-config
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
os-client-config==2.1.0
    # via python-neutronclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.8.1
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==9.2.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.2.0
    # via oslo-log
oslo-i18n==6.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.3.0
    # via python-neutronclient
oslo-serialization==5.2.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==6.2.1
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
packaging==23.1
    # via
    #   -r requirements.in
    #   oslo-utils
    #   python-keystoneclient
paramiko==3.3.1
    # via
    #   -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
portalocker==2.8.2
    # via msal-extensions
portend==3.2.0
    # via cherrypy
prettytable==3.9.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.24.3
    # via
    #   google-api-core
    #   googleapis-common-protos
py-radix==0.10.0
    # via ipconflict
pyasn1==0.5.0
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.3.0
    # via google-auth
pycparser==2.21
    # via cffi
pygments==2.16.1
    # via pyvcloud
pyinotify==0.9.6
    # via oslo-log
pyjwt[crypto]==2.8.0
    # via
    #   adal
    #   msal
pynacl==1.5.0
    # via paramiko
pyopenssl==23.2.0
    # via python-glanceclient
pyparsing==3.1.1
    # via
    #   httplib2
    #   oslo-utils
pyperclip==1.8.2
    # via cmd2
pysocks==1.7.1
    # via requests
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.4.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==5.2.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==11.0.0
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==18.4.0
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-openstack/requirements.in
    #   python-openstackclient
python-openstackclient==6.3.0
    # via -r RO-VIM-openstack/requirements.in
pytz==2023.3.post1
    # via
    #   oslo-serialization
    #   oslo-utils
    #   tempora
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==8.0.2.0
    # via -r RO-VIM-vmware/requirements.in
pyyaml==6.0.1
    # via
    #   -r NG-RO/requirements.in
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   pyvcloud
referencing==0.30.2
    # via
    #   jsonschema
    #   jsonschema-specifications
requests[socks]==2.31.0
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-vmware/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
rpds-py==0.10.3
    # via
    #   jsonschema
    #   referencing
rsa==4.9
    # via google-auth
simplejson==3.19.1
    # via
    #   osc-lib
    #   python-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   azure-core
    #   isodate
    #   msrestazure
    #   python-dateutil
    #   python-keystoneclient
    #   pyvmomi
stevedore==5.1.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tempora==5.5.0
    # via portend
tqdm==4.66.1
    # via ipconflict
typing-extensions==4.8.0
    # via
    #   azure-core
    #   dogpile-cache
    #   jaraco-functools
tzdata==2023.3
    # via
    #   oslo-serialization
    #   oslo-utils
uritemplate==4.1.1
    # via google-api-python-client
urllib3==2.0.6
    # via requests
uuid==1.30
    # via -r RO-SDN-arista_cloudvision/requirements.in
warlock==2.0.1
    # via python-glanceclient
wcwidth==0.2.8
    # via
    #   cmd2
    #   prettytable
wrapt==1.15.0
    # via
    #   debtcollector
    #   python-glanceclient
zc-lockfile==3.0.post1
    # via cherrypy
zipp==3.17.0
    # via importlib-metadata

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