#######################################################################################
# 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.1
    # 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-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-core==1.35.0
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.23.1
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==35.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==4.3.0
    # via paramiko
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
cachetools==5.5.2
    # via google-auth
certifi==2025.7.14
    # via
    #   msrest
    #   requests
cffi==1.17.1
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.4.2
    # via requests
cheroot==10.0.1
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==4.10.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.7.0
    # via cliff
cryptography==45.0.5
    # 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.0
    # 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.22.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
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-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   msrest
jaraco-functools==4.2.1
    # 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.0
    # via warlock
jsonschema-specifications==2025.4.1
    # via jsonschema
keystoneauth1==5.11.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==6.0.0
    # via pyvcloud
markdown-it-py==3.0.0
    # via rich
markupsafe==3.0.2
    # via jinja2
mdurl==0.1.2
    # via markdown-it-py
more-itertools==10.7.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco-functools
msal==1.33.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
    #   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.6.0
    # 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.1.0
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==10.0.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==6.0.0
    # via oslo-log
oslo-i18n==6.5.1
    # 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.0
    # via python-neutronclient
oslo-serialization==5.7.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==9.0.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==3.5.1
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   -r RO-plugin/requirements.in
pbr==6.1.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
    #   stevedore
platformdirs==4.3.8
    # 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.0.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.22
    # via cffi
pygments==2.19.2
    # via
    #   pyvcloud
    #   rich
pyjwt[crypto]==2.10.1
    # via
    #   adal
    #   msal
pynacl==1.5.0
    # via paramiko
pyopenssl==25.1.0
    # via python-glanceclient
pyparsing==3.2.3
    # via
    #   httplib2
    #   oslo-utils
pyperclip==1.9.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.9.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==5.6.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.10.0
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-openstack/requirements.in
python-openstackclient==8.1.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.2
    # 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.4
    # 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.26.0
    # via
    #   jsonschema
    #   referencing
rsa==4.9.1
    # via google-auth
simplejson==3.20.1
    # via python-cinderclient
six==1.17.0
    # via
    #   azure-core
    #   google-auth
    #   msrestazure
    #   python-dateutil
stevedore==5.4.1
    # 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.14.1
    # via
    #   azure-core
    #   azure-identity
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   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.13
    # via
    #   cmd2
    #   prettytable
wrapt==1.17.2
    # via
    #   debtcollector
    #   python-glanceclient
zc-lockfile==3.0.post1
    # via cherrypy
zipp==3.23.0
    # via importlib-metadata

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