{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.microsoft/python-sample-vscode-fastapi-tutorial","documentNamespace":"https://spdx.org/spdxdocs/protobom/d9c80a56-1a0f-4f94-ae54-f67244c6efbd","creationInfo":{"creators":["Tool: protobom-v0.0.0-20251216165153-1f3f3060931e+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2025-12-25T10:22:38Z"},"packages":[{"name":"actions/checkout","SPDXID":"SPDXRef-githubactions-actions-checkout-2-75c946","versionInfo":"2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/checkout@2"}]},{"name":"actions/setup-python","SPDXID":"SPDXRef-githubactions-actions-setup-python-2-75c946","versionInfo":"2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:githubactions/actions/setup-python@2"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-pypi-typing-extensions-4.8.0-75c946","versionInfo":"4.8.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Python-2.0.1","copyrightText":"Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands, Copyright (c) 1995-2001 Corporation for National Research Initiatives, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-extensions@4.8.0"}]},{"name":"cffi","SPDXID":"SPDXRef-pypi-cffi-1.16.0-75c946","versionInfo":"1.16.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 1996 Red Hat, Inc., Copyright (c) 1996-2003 Red Hat, Inc., Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc., Copyright (c) 1996, 1998 Red Hat, Inc., Copyright (c) 1996, 1998, 1999, 2001 Red Hat, Inc., Copyright (c) 1996, 1998, 2001, 2002 Red Hat, Inc., Copyright (c) 2001 John Beniton, Copyright (c) 2002 Bo Thorsen, Copyright (c) 2002 Ranjit Mathew, Copyright (c) 2002 Roger Sayle, Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd., Copyright (c) 2011, 2014, 2019, 2021 Anthony Green, copyright u'2012-2018, Armin Rigo, Maciej Fijalkowski","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/cffi@1.16.0"}]},{"name":"sniffio","SPDXID":"SPDXRef-pypi-sniffio-1.3.0-75c946","versionInfo":"1.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sniffio@1.3.0"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-8.1.7-75c946","versionInfo":"8.1.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright 2001-2006 Gregory P. Ward, Copyright 2002-2006 Python Software Foundation, copyright 2014 Pallets, Copyright 2014 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@8.1.7"}]},{"name":"annotated-types","SPDXID":"SPDXRef-pypi-annotated-types-0.6.0-75c946","versionInfo":"0.6.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022 the contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/annotated-types@0.6.0"}]},{"name":"types-pyopenssl","SPDXID":"SPDXRef-pypi-types-pyopenssl-23.3.0.0-75c946","versionInfo":"23.3.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/types-pyopenssl@23.3.0.0"}]},{"name":"redis","SPDXID":"SPDXRef-pypi-redis-5.0.1-75c946","versionInfo":"5.0.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022-2023, Redis, inc.","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/redis@5.0.1"}]},{"name":"anyio","SPDXID":"SPDXRef-pypi-anyio-3.7.1-75c946","versionInfo":"3.7.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Alex Gronholm copyright 2018, Copyright (c) 2018 Alex Gronholm","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/anyio@3.7.1"}]},{"name":"cryptography","SPDXID":"SPDXRef-pypi-cryptography-41.0.4-75c946","versionInfo":"41.0.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause OR Apache-2.0","copyrightText":"Copyright (c) 2005-2020, NumPy Developers, Copyright (c) Individual contributors, Copyright 2013-2023, copyright 2013-2023, Individual, copyright 2013-2023, Individual Contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/cryptography@41.0.4"}]},{"name":"pydantic","SPDXID":"SPDXRef-pypi-pydantic-2.4.2-75c946","versionInfo":"2.4.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2017","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic@2.4.2"}]},{"name":"uvicorn","SPDXID":"SPDXRef-pypi-uvicorn-0.23.2-75c946","versionInfo":"0.23.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2017-present, Encode OSS Ltd (https://www.encode.io/), Copyright (c) Django Software Foundation and individual contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uvicorn@0.23.2"}]},{"name":"types-redis","SPDXID":"SPDXRef-pypi-types-redis-4.6.0.7-75c946","versionInfo":"4.6.0.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/types-redis@4.6.0.7"}]},{"name":"idna","SPDXID":"SPDXRef-pypi-idna-3.4-75c946","versionInfo":"3.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) 2019 Unicode(r), Inc., Copyright (c) 2013-2021, Kim Davies","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/idna@3.4"}]},{"name":"pycparser","SPDXID":"SPDXRef-pypi-pycparser-2.21-75c946","versionInfo":"2.21","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2001-2017 David M. Beazley (Dabeaz LLC), Copyright (c) 2008-2020, Eli Bendersky, David Beazley (http://www.dabeaz.com) Copyright (c) 2017","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pycparser@2.21"}]},{"name":"h11","SPDXID":"SPDXRef-pypi-h11-0.14.0-75c946","versionInfo":"0.14.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2006-2008 Scipy Developers, Copyright (c) 2006, Jonathan E. Taylor, Copyright (c) 2009-2012 Statsmodels Developers, Copyright (c) 2016 Nathaniel J. Smith \u003cnjs@pobox.com\u003e and other contributors, Copyright 2007, 2008 Chris Wanstrath chris@ozmm.org, copyright 2016, Nathaniel J. Smith","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/h11@0.14.0"}]},{"name":"starlette","SPDXID":"SPDXRef-pypi-starlette-0.27.0-75c946","versionInfo":"0.27.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2018, Encode OSS Ltd (https://www.encode.io/)","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/starlette@0.27.0"}]},{"name":"pydantic-core","SPDXID":"SPDXRef-pypi-pydantic-core-2.10.1-75c946","versionInfo":"2.10.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022 Samuel Colvin","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-core@2.10.1"}]},{"name":"fastapi","SPDXID":"SPDXRef-pypi-fastapi-0.104.0-75c946","versionInfo":"0.104.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) a href https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers, Copyright (c) 2016-2023 Martin Donath \u003cmartin.donath@squidfunk.com\u003e, Copyright (c) 2018 Sebastian Ramirez","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi@0.104.0"}]},{"name":"com.github.microsoft/python-sample-vscode-fastapi-tutorial","SPDXID":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","versionInfo":"main","downloadLocation":"git+https://github.com/microsoft/python-sample-vscode-fastapi-tutorial","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/microsoft/python-sample-vscode-fastapi-tutorial@main"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-annotated-types-0.6.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-types-pyopenssl-23.3.0.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-redis-5.0.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-pydantic-2.4.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-uvicorn-0.23.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-githubactions-actions-setup-python-2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-cffi-1.16.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-cryptography-41.0.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-types-redis-4.6.0.7-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-pydantic-core-2.10.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-githubactions-actions-checkout-2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-starlette-0.27.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-anyio-3.7.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-idna-3.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-pycparser-2.21-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-h11-0.14.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-fastapi-0.104.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-typing-extensions-4.8.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-sniffio-1.3.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relatedSpdxElement":"SPDXRef-pypi-click-8.1.7-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-microsoft-python-sample-vscode-fastapi-tutorial-main-575d3e","relationshipType":"DESCRIBES"}]}