#######################################################################################
# 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.5.2
    # via cliff
azure-common==1.1.28
    # via
    #   -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
    #   azure-mgmt-resource
azure-core==1.36.0
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.25.1
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-mgmt-compute==37.1.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.1.0
    # via -r /home/ggdb/osm/RO/RO-VIM-azure/requirements.in
azure-mgmt-resource==24.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==2025.11.12
    # 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.0
    # via
    #   osc-lib
    #   python-neutronclient
    #   python-openstackclient
cmd2==3.0.0
    # via cliff
cryptography==46.0.3
    # 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.2.1
    # 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.0
    # via
    #   google-api-python-client
    #   google-auth-httplib2
humanfriendly==10.0
    # via pyvcloud
idna==3.11
    # via requests
importlib-metadata==8.7.0
    # 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-resource
    #   msrest
jaraco-functools==4.3.0
    # via
    #   cheroot
    #   tempora
jinja2==3.1.6
    # via -r /home/ggdb/osm/RO/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 /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.34.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
    #   azure-mgmt-compute
    #   azure-mgmt-network
    #   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.8.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.2
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==4.2.0
    # via
    #   python-neutronclient
    #   python-openstackclient
oslo-config==10.1.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==6.2.0
    # via oslo-log
oslo-i18n==6.7.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.1
    # via python-neutronclient
oslo-serialization==5.8.0
    # via
    #   oslo-log
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==9.2.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 /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-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.5.1
    # 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.1.3
    # via
    #   openstacksdk
    #   oslo-utils
py-radix==1.1.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.1
    # 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 /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.6.0
    # via -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
python-novaclient==18.11.0
    # via
    #   -r /home/ggdb/osm/RO/NG-RO/requirements.in
    #   -r /home/ggdb/osm/RO/RO-VIM-openstack/requirements.in
python-openstackclient==8.2.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.2.0
    # 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.6.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
    #   os-service-types
    #   oslo-context
    #   pyopenssl
    #   referencing
tzdata==2025.2
    # via
    #   oslo-serialization
    #   oslo-utils
uritemplate==4.2.0
    # via google-api-python-client
urllib3==2.6.1
    # 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.2.14
    # via prettytable
wrapt==2.0.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
