#######################################################################################
# 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
atpublic==6.0.2
    # via flufl-enum
attrs==25.3.0
    # via
    #   jsonschema
    #   referencing
autopage==0.5.2
    # via cliff
azure-common==1.1.28
    # via
    #   -r RO-VIM-azure/requirements.in
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-core==1.35.1
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.25.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==37.0.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-core==1.6.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==29.0.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==24.0.0
    # via -r RO-VIM-azure/requirements.in
bcrypt==5.0.0
    # via paramiko
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
cachetools==5.5.2
    # via google-auth
certifi==2025.8.3
    # via
    #   msrest
    #   requests
cffi==2.0.0
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.4.3
    # via requests
cheroot==11.0.0
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==4.11.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.7.0
    # via cliff
cryptography==46.0.1
    # via
    #   -r NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
    #   python-openstackclient
cvprac==1.4.1
    # via -r RO-SDN-arista_cloudvision/requirements.in
debtcollector==3.0.0
    # via
    #   oslo-log
    #   oslo-utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.2.1
    # via
    #   dogpile-cache
    #   openstacksdk
dogpile-cache==1.4.1
    # via openstacksdk
flufl-enum==7.0.0
    # via pyvcloud
google-api-core==2.8.2
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   google-api-python-client
google-api-python-client==2.51.0
    # via -r RO-VIM-gcp/requirements.in
google-auth==2.8.0
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   google-api-core
    #   google-api-python-client
    #   google-auth-httplib2
google-auth-httplib2==0.2.0
    # via google-api-python-client
google-cloud==0.34.0
    # via -r RO-VIM-gcp/requirements.in
googleapis-common-protos==1.56.3
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   google-api-core
httplib2==0.31.0
    # via
    #   google-api-python-client
    #   google-auth-httplib2
humanfriendly==10.0
    # via pyvcloud
idna==3.10
    # via requests
importlib-metadata==8.7.0
    # via -r NG-RO/requirements.in
invoke==2.2.0
    # via paramiko
ipconflict==0.5.0
    # via -r RO-VIM-aws/requirements.in
iso8601==2.1.0
    # via
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-novaclient
    #   python-openstackclient
isodate==0.7.2
    # via
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   msrest
jaraco-functools==4.3.0
    # via
    #   cheroot
    #   tempora
jinja2==3.1.6
    # via -r NG-RO/requirements.in
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.33
    # via
    #   openstacksdk
    #   warlock
jsonpointer==3.0.0
    # via jsonpatch
jsonschema==4.25.1
    # via warlock
jsonschema-specifications==2025.9.1
    # via jsonschema
keystoneauth1==5.12.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==6.0.2
    # via pyvcloud
markdown-it-py==4.0.0
    # via rich
markupsafe==3.0.3
    # via jinja2
mdurl==0.1.2
    # via markdown-it-py
more-itertools==10.8.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco-functools
msal==1.34.0
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.3.1
    # via azure-identity
msgpack==1.1.1
    # via oslo-serialization
msrest==0.7.1
    # via
    #   -r RO-VIM-azure/requirements.in
    #   azure-mgmt-compute
    #   msrestazure
msrestazure==0.6.4.post1
    # via -r RO-VIM-azure/requirements.in
netaddr==1.3.0
    # via
    #   -r RO-VIM-aws/requirements.in
    #   -r RO-VIM-gcp/requirements.in
    #   ipconflict
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
oauthlib==3.3.1
    # via requests-oauthlib
openstacksdk==4.7.1
    # via
    #   os-client-config
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
os-client-config==2.3.0
    # via python-neutronclient
os-service-types==1.8.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==4.2.0
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==10.0.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==6.1.0
    # via oslo-log
oslo-i18n==6.6.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
oslo-log==7.2.1
    # via python-neutronclient
oslo-serialization==5.8.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==9.1.0
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==25.0
    # via
    #   cvprac
    #   oslo-utils
    #   python-keystoneclient
paramiko==4.0.0
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   -r RO-plugin/requirements.in
pbr==7.0.1
    # via
    #   keystoneauth1
    #   openstacksdk
    #   os-client-config
    #   os-service-types
    #   osc-lib
    #   oslo-context
    #   oslo-i18n
    #   oslo-log
    #   oslo-utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
platformdirs==4.4.0
    # via openstacksdk
portend==3.2.1
    # via cherrypy
prettytable==3.16.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.25.8
    # via
    #   google-api-core
    #   googleapis-common-protos
psutil==7.1.0
    # via
    #   openstacksdk
    #   oslo-utils
py-radix==0.10.0
    # via ipconflict
pyasn1==0.6.1
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.4.2
    # via google-auth
pycparser==2.23
    # via cffi
pygments==2.19.2
    # via
    #   pyvcloud
    #   rich
pyjwt[crypto]==2.10.1
    # via
    #   adal
    #   msal
pynacl==1.6.0
    # via paramiko
pyopenssl==25.3.0
    # via python-glanceclient
pyparsing==3.2.5
    # via
    #   httplib2
    #   oslo-utils
pyperclip==1.11.0
    # 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.9.0.post0
    # via
    #   adal
    #   oslo-log
    #   tempora
python-glanceclient==4.10.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==5.7.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==11.6.0
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==18.11.0
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-openstack/requirements.in
python-openstackclient==8.2.0
    # via -r RO-VIM-openstack/requirements.in
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==9.0.0.0
    # via -r RO-VIM-vmware/requirements.in
pyyaml==6.0.3
    # via
    #   -r NG-RO/requirements.in
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   oslo-utils
    #   pyvcloud
referencing==0.36.2
    # via
    #   jsonschema
    #   jsonschema-specifications
requests[socks]==2.32.5
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-vmware/requirements.in
    #   adal
    #   azure-core
    #   cvprac
    #   google-api-core
    #   keystoneauth1
    #   msal
    #   msrest
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-openstackclient
    #   pyvcloud
    #   requests-oauthlib
requests-oauthlib==2.0.0
    # via msrest
requestsexceptions==1.4.0
    # via openstacksdk
rfc3986==2.0.0
    # via oslo-config
rich==14.1.0
    # via rich-argparse
rich-argparse==1.7.1
    # via cmd2
rpds-py==0.27.1
    # via
    #   jsonschema
    #   referencing
rsa==4.9.1
    # via google-auth
simplejson==3.20.2
    # via python-cinderclient
six==1.17.0
    # via
    #   azure-core
    #   google-auth
    #   msrestazure
    #   python-dateutil
stevedore==5.5.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tempora==5.8.1
    # via portend
tqdm==4.67.1
    # via ipconflict
typing-extensions==4.15.0
    # via
    #   azure-core
    #   azure-identity
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   cryptography
    #   dogpile-cache
    #   flufl-enum
    #   keystoneauth1
    #   openstacksdk
    #   oslo-context
    #   pyopenssl
    #   referencing
tzdata==2025.2
    # via
    #   oslo-serialization
    #   oslo-utils
uritemplate==4.2.0
    # via google-api-python-client
urllib3==2.5.0
    # via requests
uuid==1.30
    # via -r RO-SDN-arista_cloudvision/requirements.in
warlock==2.1.0
    # via python-glanceclient
wcwidth==0.2.14
    # via
    #   cmd2
    #   prettytable
wrapt==1.17.3
    # via
    #   debtcollector
    #   python-glanceclient
zc-lockfile==4.0
    # via cherrypy
zipp==3.23.0
    # via importlib-metadata

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