#######################################################################################
# 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==7.0.0
    # via flufl-enum
attrs==25.4.0
    # via
    #   jsonschema
    #   referencing
autopage==0.6.0
    # via cliff
azure-common==1.1.28
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-core==1.38.2
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.25.2
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-mgmt-compute==37.2.0
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-mgmt-core==1.6.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
azure-mgmt-network==30.2.0
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-mgmt-resource==25.0.0
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
backports-strenum==1.3.1
    # via cmd2
bcrypt==5.0.0
    # via paramiko
boto==2.49.0
    # via -r /home/ggdb/osm/RO/RO-VIM-aws/requirements.in
cachetools==5.5.2
    # via google-auth
certifi==2026.2.25
    # via
    #   msrest
    #   requests
cffi==2.0.0
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.4.4
    # via requests
cheroot==11.1.2
    # via cherrypy
cherrypy==18.1.2
    # via -r /home/ggdb/osm/RO/NG-RO/requirements.in
cliff==4.13.2
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==3.2.2
    # via cliff
cryptography==46.0.5
    # via
    #   -r /home/ggdb/osm/RO/NG-RO/requirements.in
    #   adal
    #   azure-identity
    #   msal
    #   openstacksdk
    #   paramiko
    #   pyjwt
    #   pyopenssl
    #   python-openstackclient
cvprac==1.4.2
    # via -r /home/ggdb/osm/RO/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.5.0
    # via openstacksdk
flufl-enum==8.0.0
    # via pyvcloud
google-api-core==2.8.2
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
    #   google-api-python-client
google-api-python-client==2.51.0
    # via -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
google-auth==2.8.0
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
    #   google-api-core
    #   google-api-python-client
    #   google-auth-httplib2
google-auth-httplib2==0.3.0
    # via google-api-python-client
google-cloud==0.34.0
    # via -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
googleapis-common-protos==1.56.3
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
    #   google-api-core
httplib2==0.31.2
    # via
    #   google-api-python-client
    #   google-auth-httplib2
humanfriendly==10.0
    # via pyvcloud
idna==3.11
    # via requests
importlib-metadata==8.7.1
    # via -r /home/ggdb/osm/RO/NG-RO/requirements.in
invoke==2.2.1
    # via paramiko
ipconflict==0.5.0
    # via -r /home/ggdb/osm/RO/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.4.0
    # via
    #   cheroot
    #   tempora
jinja2==3.1.6
    # via -r /home/ggdb/osm/RO/NG-RO/requirements.in
jmespath==1.1.0
    # via openstacksdk
jsonpatch==1.33
    # via
    #   openstacksdk
    #   warlock
jsonpointer==3.0.0
    # via jsonpatch
jsonschema==4.26.0
    # via warlock
jsonschema-specifications==2025.9.1
    # via jsonschema
keystoneauth1==5.13.1
    # via
    #   openstacksdk
    #   osc-lib
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
logutils==0.3.5
    # via -r /home/ggdb/osm/RO/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.35.0
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.3.1
    # via azure-identity
msgpack==1.1.2
    # via oslo-serialization
msrest==0.7.1
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
    #   msrestazure
msrestazure==0.6.4.post1
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
netaddr==1.3.0
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-aws/requirements.in
    #   -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
    #   ipconflict
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
oauthlib==3.3.1
    # via requests-oauthlib
openstacksdk==4.10.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
os-service-types==1.8.2
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==4.4.0
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==10.3.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==6.3.0
    # via oslo-log
oslo-i18n==6.7.2
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   python-openstackclient
oslo-log==8.1.0
    # via python-neutronclient
oslo-serialization==5.9.1
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==10.0.0
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-cinderclient
    #   python-glanceclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==26.0
    # via
    #   cvprac
    #   oslo-utils
    #   python-keystoneclient
paramiko==4.0.0
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-gcp/requirements.in
    #   -r /home/ggdb/osm/RO/RO-plugin/requirements.in
pbr==7.0.3
    # via
    #   keystoneauth1
    #   openstacksdk
    #   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.9.2
    # via openstacksdk
portend==3.2.1
    # via cherrypy
prettytable==3.17.0
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-vmware/requirements.in
    #   cliff
    #   python-cinderclient
    #   python-glanceclient
    #   python-novaclient
progressbar==2.5
    # via -r /home/ggdb/osm/RO/RO-VIM-vmware/requirements.in
protobuf==4.25.8
    # via
    #   google-api-core
    #   googleapis-common-protos
psutil==7.2.2
    # via
    #   openstacksdk
    #   oslo-utils
py-radix==1.1.0
    # via ipconflict
pyasn1==0.6.2
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.4.2
    # via google-auth
pycparser==3.0
    # via cffi
pygments==2.19.2
    # via
    #   pyvcloud
    #   rich
pyjwt[crypto]==2.11.0
    # via
    #   adal
    #   msal
pynacl==1.6.2
    # via paramiko
pyopenssl==25.3.0
    # via python-glanceclient
pyparsing==3.3.2
    # via
    #   httplib2
    #   oslo-utils
pyperclip==1.11.0
    # via cmd2
pysocks==1.7.1
    # via requests
python-cinderclient==7.4.1
    # via
    #   -r /home/ggdb/osm/RO/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 /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
python-keystoneclient==5.7.0
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
    #   python-neutronclient
    #   python-openstackclient
python-neutronclient==11.8.0
    # via -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
python-novaclient==18.12.0
    # via
    #   -r /home/ggdb/osm/RO/NG-RO/requirements.in
    #   -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
python-openstackclient==9.0.0
    # via -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
pyvcloud==19.1.1
    # via -r /home/ggdb/osm/RO/RO-VIM-vmware/requirements.in
pyvmomi==9.0.0.0
    # via -r /home/ggdb/osm/RO/RO-VIM-vmware/requirements.in
pyyaml==6.0.3
    # via
    #   -r /home/ggdb/osm/RO/NG-RO/requirements.in
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   oslo-utils
    #   pyvcloud
referencing==0.37.0
    # via
    #   jsonschema
    #   jsonschema-specifications
requests[socks]==2.32.5
    # via
    #   -r /home/ggdb/osm/RO/NG-RO/requirements.in
    #   -r /home/ggdb/osm/RO/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.3.3
    # via
    #   cmd2
    #   rich-argparse
rich-argparse==1.7.2
    # via cmd2
rpds-py==0.30.0
    # via
    #   jsonschema
    #   referencing
rsa==4.9.1
    # via google-auth
simplejson==3.20.2
    # via python-cinderclient
six==1.17.0
    # via
    #   google-auth
    #   msrestazure
    #   python-dateutil
stevedore==5.7.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.3
    # via ipconflict
typing-extensions==4.15.0
    # via
    #   azure-core
    #   azure-identity
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   azure-mgmt-resource
    #   cmd2
    #   cryptography
    #   dogpile-cache
    #   flufl-enum
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   oslo-context
    #   pyopenssl
    #   referencing
uritemplate==4.2.0
    # via google-api-python-client
urllib3==2.6.3
    # via requests
uuid==1.30
    # via -r /home/ggdb/osm/RO/RO-SDN-arista_cloudvision/requirements.in
warlock==2.1.0
    # via python-glanceclient
wcwidth==0.6.0
    # via prettytable
wrapt==2.1.1
    # 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
