#######################################################################################
# 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==5.0
    # via flufl-enum
attrs==24.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.32.0
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.19.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-compute==33.1.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-core==1.5.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==28.0.0
    # via -r RO-VIM-azure/requirements.in
azure-mgmt-resource==23.2.0
    # via -r RO-VIM-azure/requirements.in
bcrypt==4.2.1
    # via paramiko
boto==2.49.0
    # via -r RO-VIM-aws/requirements.in
cachetools==5.5.0
    # via google-auth
certifi==2024.12.14
    # via
    #   msrest
    #   requests
cffi==1.17.1
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.4.0
    # via requests
cheroot==10.0.1
    # via cherrypy
cherrypy==18.1.2
    # via -r NG-RO/requirements.in
cliff==4.8.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==2.5.7
    # via cliff
cryptography==44.0.0
    # via
    #   -r NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
    #   python-openstackclient
cvprac==1.4.0
    # via -r RO-SDN-arista_cloudvision/requirements.in
debtcollector==3.0.0
    # via
    #   oslo-config
    #   oslo-context
    #   oslo-utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.1.1
    # via
    #   dogpile-cache
    #   openstacksdk
dogpile-cache==1.3.3
    # via openstacksdk
flufl-enum==6.1.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.5.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-neutronclient
    #   python-novaclient
    #   python-openstackclient
isodate==0.7.2
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   msrest
jaraco-functools==4.1.0
    # via
    #   cheroot
    #   tempora
jinja2==3.1.4
    # 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.23.0
    # via warlock
jsonschema-specifications==2024.10.1
    # via jsonschema
keystoneauth1==5.9.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==5.3.0
    # via pyvcloud
markupsafe==3.0.2
    # via jinja2
more-itertools==10.5.0
    # via
    #   cheroot
    #   cherrypy
    #   jaraco-functools
msal==1.31.1
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.2.0
    # via azure-identity
msgpack==1.1.0
    # 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.2.2
    # via requests-oauthlib
openstacksdk==4.2.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==3.2.0
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==9.7.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.7.0
    # via oslo-log
oslo-i18n==6.5.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
oslo-log==6.2.0
    # via python-neutronclient
oslo-serialization==5.6.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==8.0.0
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==24.2
    # via
    #   cvprac
    #   oslo-utils
    #   python-keystoneclient
paramiko==3.5.0
    # via
    #   -r RO-VIM-gcp/requirements.in
    #   -r RO-plugin/requirements.in
pbr==6.1.0
    # 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
platformdirs==4.3.6
    # via openstacksdk
portalocker==2.10.1
    # via msal-extensions
portend==3.2.0
    # via cherrypy
prettytable==3.12.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.5
    # via
    #   google-api-core
    #   googleapis-common-protos
psutil==6.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.1
    # via google-auth
pycparser==2.22
    # via cffi
pygments==2.18.0
    # via pyvcloud
pyjwt[crypto]==2.10.1
    # via
    #   adal
    #   msal
pynacl==1.5.0
    # via paramiko
pyopenssl==24.3.0
    # via python-glanceclient
pyparsing==3.2.0
    # 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.7.0
    # via -r RO-VIM-openstack/requirements.in
python-keystoneclient==5.5.0
    # via
    #   -r RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==11.3.1
    # via -r RO-VIM-openstack/requirements.in
python-novaclient==18.7.0
    # via
    #   -r NG-RO/requirements.in
    #   -r RO-VIM-openstack/requirements.in
python-openstackclient==7.2.1
    # via -r RO-VIM-openstack/requirements.in
pyvcloud==19.1.1
    # via -r RO-VIM-vmware/requirements.in
pyvmomi==8.0.3.0.1
    # 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.35.1
    # via
    #   jsonschema
    #   jsonschema-specifications
requests[socks]==2.32.3
    # 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
rpds-py==0.22.3
    # via
    #   jsonschema
    #   referencing
rsa==4.9
    # via google-auth
simplejson==3.19.3
    # via python-cinderclient
six==1.17.0
    # via
    #   azure-core
    #   google-auth
    #   msrestazure
    #   python-dateutil
    #   pyvmomi
stevedore==5.4.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
tempora==5.7.0
    # via portend
tqdm==4.67.1
    # via ipconflict
typing-extensions==4.12.2
    # via
    #   azure-core
    #   azure-identity
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   dogpile-cache
    #   keystoneauth1
tzdata==2024.2
    # via
    #   oslo-serialization
    #   oslo-utils
uritemplate==4.1.1
    # via google-api-python-client
urllib3==2.2.3
    # via requests
uuid==1.30
    # via -r RO-SDN-arista_cloudvision/requirements.in
warlock==2.0.1
    # via python-glanceclient
wcwidth==0.2.13
    # via
    #   cmd2
    #   prettytable
wrapt==1.17.0
    # via
    #   debtcollector
    #   python-glanceclient
zc-lockfile==3.0.post1
    # via cherrypy
zipp==3.21.0
    # via importlib-metadata

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