diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 00000000..2111aee3 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,7 @@ +--- +self-hosted-runner: + labels: + - vsphere + - ubuntu + - jammy + - large diff --git a/.github/workflows/vsphere.yaml b/.github/workflows/vsphere.yaml new file mode 100644 index 00000000..e622ea58 --- /dev/null +++ b/.github/workflows/vsphere.yaml @@ -0,0 +1,65 @@ +--- +name: vsphere + +on: + pull_request: + branches: + - main + paths: + - runner_manager/backend/vsphere.py + push: + branches: + - main + paths: + - runner_manager/backend/vsphere.py + workflow_dispatch: {} + +permissions: + contents: read + +jobs: + vsphere: + name: vsphere + runs-on: + - self-hosted + - vsphere + - jammy + - large + env: + REDIS_OM_URL: redis://localhost:6379/0 + GITHUB_BASE_URL: http://localhost:4010 + steps: + - uses: actions/checkout@v4 + - name: Boot compose services + run: docker compose --profile tests up --build --detach + - run: | + sudo apt-get install -y pipx + pipx ensurepath + pipx install poetry + - name: ensure .local/bin is in PATH + run: echo "$HOME/.local/bin" >> $GITHUB_PATH + - uses: actions/setup-python@v5 + with: + python-version: 3.11 + cache: poetry + - run: poetry install + - name: Run tests + run: poetry run pytest tests/unit/backend/test_vsphere.py + env: + GITHUB_TOKEN: test + GOVC_URL: ${{ secrets.GOVC_URL }} + GOVC_USERNAME: ${{ secrets.GOVC_USERNAME }} + GOVC_PASSWORD: ${{ secrets.GOVC_PASSWORD }} + GOVC_INSECURE: true + GOVC_DATACENTER: ${{ secrets.GOVC_DATACENTER }} + GOVC_DATASTORE: ${{ secrets.GOVC_DATASTORE }} + - name: Upload coverage + uses: codecov/codecov-action@v4 + with: + flags: vsphere + name: vsphere + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - name: Dump logs + run: docker compose --profile tests logs + if: always() diff --git a/docs/development/concepts.md b/docs/development/concepts.md index ebb996c0..bd620d6d 100644 --- a/docs/development/concepts.md +++ b/docs/development/concepts.md @@ -37,6 +37,7 @@ for hosting the runners. The following backends will be supported: - GCP. - AWS. +- VMware vSphere. - Docker (For local functional testing). - FakeBackend (For local unit testing). diff --git a/poetry.lock b/poetry.lock index 9cb977d2..64d92e1c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,14 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "anyio" -version = "3.7.1" +version = "4.3.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, - {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, ] [package.dependencies] @@ -16,9 +16,9 @@ idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] -test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (<0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "asgiref" @@ -47,31 +47,32 @@ files = [ [[package]] name = "attrs" -version = "23.1.0" +version = "23.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] [package.extras] cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] +dev = ["attrs[tests]", "pre-commit"] docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] [[package]] name = "babel" -version = "2.13.0" +version = "2.14.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.13.0-py3-none-any.whl", hash = "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"}, - {file = "Babel-2.13.0.tar.gz", hash = "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.extras] @@ -123,19 +124,19 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.28.85" +version = "1.34.57" description = "The AWS SDK for Python" optional = false -python-versions = ">= 3.7" +python-versions = ">= 3.8" files = [ - {file = "boto3-1.28.85-py3-none-any.whl", hash = "sha256:1fb7e7ba32a6701990168eb7a08e1fb624ae48130784dfab25904ed47deabb31"}, - {file = "boto3-1.28.85.tar.gz", hash = "sha256:96b4cb2708933cef7dbe1177df37ef0593839942978784147aade0e49511eb2b"}, + {file = "boto3-1.34.57-py3-none-any.whl", hash = "sha256:f8046e3e2d1186a49b49f7464c4811c265c86001f404dd1a96c4365c773a4245"}, + {file = "boto3-1.34.57.tar.gz", hash = "sha256:c26c31ceeeb2bc5d2bb96ba0fdc9a04d7b10e6e0b081c55b9cea9069a0be04dd"}, ] [package.dependencies] -botocore = ">=1.31.85,<1.32.0" +botocore = ">=1.34.57,<1.35.0" jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.7.0,<0.8.0" +s3transfer = ">=0.10.0,<0.11.0" [package.extras] crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] @@ -547,13 +548,13 @@ xray = ["mypy-boto3-xray (>=1.34.0,<1.35.0)"] [[package]] name = "botocore" -version = "1.31.85" +version = "1.34.57" description = "Low-level, data-driven core of boto 3." optional = false -python-versions = ">= 3.7" +python-versions = ">= 3.8" files = [ - {file = "botocore-1.31.85-py3-none-any.whl", hash = "sha256:b8f35d65f2b45af50c36fc25cc1844d6bd61d38d2148b2ef133b8f10e198555d"}, - {file = "botocore-1.31.85.tar.gz", hash = "sha256:ce58e688222df73ec5691f934be1a2122a52c9d11d3037b586b3fff16ed6d25f"}, + {file = "botocore-1.34.57-py3-none-any.whl", hash = "sha256:c8dafe0ad378a88bcf4153e6972870b03fb5aab406b694202307500709940baf"}, + {file = "botocore-1.34.57.tar.gz", hash = "sha256:9a5aa2034de9f0c367b4b61a92af0fa827f5c21affa19e0a284838a142e71083"}, ] [package.dependencies] @@ -562,42 +563,45 @@ python-dateutil = ">=2.1,<3.0.0" urllib3 = {version = ">=1.25.4,<2.1", markers = "python_version >= \"3.10\""} [package.extras] -crt = ["awscrt (==0.19.12)"] +crt = ["awscrt (==0.19.19)"] [[package]] name = "botocore-stubs" -version = "1.31.66" +version = "1.34.57" description = "Type annotations and code completion for botocore" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8,<4.0" files = [ - {file = "botocore_stubs-1.31.66-py3-none-any.whl", hash = "sha256:b65fa3ff36e8a70518a143b5025559918a68d7a20b85c88f8a1f067f6620a205"}, - {file = "botocore_stubs-1.31.66.tar.gz", hash = "sha256:5ea5f4af18ee654cf510d69b3bc7c1ed3236b50fcd4e3eb98c11d28033ff05c3"}, + {file = "botocore_stubs-1.34.57-py3-none-any.whl", hash = "sha256:13f133ef244ebde6425cff3b41b43898af709d0fc8a749b26ddf304eff3a6570"}, + {file = "botocore_stubs-1.34.57.tar.gz", hash = "sha256:2deb03f218469c5a76dfefeb2d1e9f1599914adbb5f8bd8cc0d7ad7d7a07ae33"}, ] [package.dependencies] types-awscrt = "*" +[package.extras] +botocore = ["botocore"] + [[package]] name = "cachetools" -version = "5.3.1" +version = "5.3.3" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, - {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, + {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, + {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, ] [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -666,101 +670,101 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.3.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.0.tar.gz", hash = "sha256:63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effe5406c9bd748a871dbcaf3ac69167c38d72db8c9baf3ff954c344f31c4cbe"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4162918ef3098851fcd8a628bf9b6a98d10c380725df9e04caf5ca6dd48c847a"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0570d21da019941634a531444364f2482e8db0b3425fcd5ac0c36565a64142c8"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5707a746c6083a3a74b46b3a631d78d129edab06195a92a8ece755aac25a3f3d"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:278c296c6f96fa686d74eb449ea1697f3c03dc28b75f873b65b5201806346a69"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4b71f4d1765639372a3b32d2638197f5cd5221b19531f9245fcc9ee62d38f56"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5969baeaea61c97efa706b9b107dcba02784b1601c74ac84f2a532ea079403e"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3f93dab657839dfa61025056606600a11d0b696d79386f974e459a3fbc568ec"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:db756e48f9c5c607b5e33dd36b1d5872d0422e960145b08ab0ec7fd420e9d649"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:232ac332403e37e4a03d209a3f92ed9071f7d3dbda70e2a5e9cff1c4ba9f0678"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e5c1502d4ace69a179305abb3f0bb6141cbe4714bc9b31d427329a95acfc8bdd"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:2502dd2a736c879c0f0d3e2161e74d9907231e25d35794584b1ca5284e43f596"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23e8565ab7ff33218530bc817922fae827420f143479b753104ab801145b1d5b"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-win32.whl", hash = "sha256:1872d01ac8c618a8da634e232f24793883d6e456a66593135aeafe3784b0848d"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:557b21a44ceac6c6b9773bc65aa1b4cc3e248a5ad2f5b914b91579a32e22204d"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7eff0f27edc5afa9e405f7165f85a6d782d308f3b6b9d96016c010597958e63"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a685067d05e46641d5d1623d7c7fdf15a357546cbb2f71b0ebde91b175ffc3e"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d3d5b7db9ed8a2b11a774db2bbea7ba1884430a205dbd54a32d61d7c2a190fa"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2935ffc78db9645cb2086c2f8f4cfd23d9b73cc0dc80334bc30aac6f03f68f8c"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fe359b2e3a7729010060fbca442ca225280c16e923b37db0e955ac2a2b72a05"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:380c4bde80bce25c6e4f77b19386f5ec9db230df9f2f2ac1e5ad7af2caa70459"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0d1e3732768fecb052d90d62b220af62ead5748ac51ef61e7b32c266cac9293"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b2919306936ac6efb3aed1fbf81039f7087ddadb3160882a57ee2ff74fd2382"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f8888e31e3a85943743f8fc15e71536bda1c81d5aa36d014a3c0c44481d7db6e"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:82eb849f085624f6a607538ee7b83a6d8126df6d2f7d3b319cb837b289123078"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7b8b8bf1189b3ba9b8de5c8db4d541b406611a71a955bbbd7385bbc45fcb786c"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5adf257bd58c1b8632046bbe43ee38c04e1038e9d37de9c57a94d6bd6ce5da34"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c350354efb159b8767a6244c166f66e67506e06c8924ed74669b2c70bc8735b1"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-win32.whl", hash = "sha256:02af06682e3590ab952599fbadac535ede5d60d78848e555aa58d0c0abbde786"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:86d1f65ac145e2c9ed71d8ffb1905e9bba3a91ae29ba55b4c46ae6fc31d7c0d4"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3b447982ad46348c02cb90d230b75ac34e9886273df3a93eec0539308a6296d7"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:abf0d9f45ea5fb95051c8bfe43cb40cda383772f7e5023a83cc481ca2604d74e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b09719a17a2301178fac4470d54b1680b18a5048b481cb8890e1ef820cb80455"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3d9b48ee6e3967b7901c052b670c7dda6deb812c309439adaffdec55c6d7b78"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:edfe077ab09442d4ef3c52cb1f9dab89bff02f4524afc0acf2d46be17dc479f5"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3debd1150027933210c2fc321527c2299118aa929c2f5a0a80ab6953e3bd1908"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f63face3a527284f7bb8a9d4f78988e3c06823f7bea2bd6f0e0e9298ca0403"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24817cb02cbef7cd499f7c9a2735286b4782bd47a5b3516a0e84c50eab44b98e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c71f16da1ed8949774ef79f4a0260d28b83b3a50c6576f8f4f0288d109777989"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9cf3126b85822c4e53aa28c7ec9869b924d6fcfb76e77a45c44b83d91afd74f9"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:b3b2316b25644b23b54a6f6401074cebcecd1244c0b8e80111c9a3f1c8e83d65"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:03680bb39035fbcffe828eae9c3f8afc0428c91d38e7d61aa992ef7a59fb120e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cc152c5dd831641e995764f9f0b6589519f6f5123258ccaca8c6d34572fefa8"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-win32.whl", hash = "sha256:b8f3307af845803fb0b060ab76cf6dd3a13adc15b6b451f54281d25911eb92df"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:8eaf82f0eccd1505cf39a45a6bd0a8cf1c70dcfc30dba338207a969d91b965c0"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dc45229747b67ffc441b3de2f3ae5e62877a282ea828a5bdb67883c4ee4a8810"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4a0033ce9a76e391542c182f0d48d084855b5fcba5010f707c8e8c34663d77"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ada214c6fa40f8d800e575de6b91a40d0548139e5dc457d2ebb61470abf50186"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1121de0e9d6e6ca08289583d7491e7fcb18a439305b34a30b20d8215922d43c"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1063da2c85b95f2d1a430f1c33b55c9c17ffaf5e612e10aeaad641c55a9e2b9d"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70f1d09c0d7748b73290b29219e854b3207aea922f839437870d8cc2168e31cc"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:250c9eb0f4600361dd80d46112213dff2286231d92d3e52af1e5a6083d10cad9"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:750b446b2ffce1739e8578576092179160f6d26bd5e23eb1789c4d64d5af7dc7"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:fc52b79d83a3fe3a360902d3f5d79073a993597d48114c29485e9431092905d8"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:588245972aca710b5b68802c8cad9edaa98589b1b42ad2b53accd6910dad3545"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e39c7eb31e3f5b1f88caff88bcff1b7f8334975b46f6ac6e9fc725d829bc35d4"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:abecce40dfebbfa6abf8e324e1860092eeca6f7375c8c4e655a8afb61af58f2c"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a91a981f185721542a0b7c92e9054b7ab4fea0508a795846bc5b0abf8118d4"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:67b8cc9574bb518ec76dc8e705d4c39ae78bb96237cb533edac149352c1f39fe"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac71b2977fb90c35d41c9453116e283fac47bb9096ad917b8819ca8b943abecd"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ae38d325b512f63f8da31f826e6cb6c367336f95e418137286ba362925c877e"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:542da1178c1c6af8873e143910e2269add130a299c9106eef2594e15dae5e482"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30a85aed0b864ac88309b7d94be09f6046c834ef60762a8833b660139cfbad13"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aae32c93e0f64469f74ccc730a7cb21c7610af3a775157e50bbd38f816536b38"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b26ddf78d57f1d143bdf32e820fd8935d36abe8a25eb9ec0b5a71c82eb3895"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f5d10bae5d78e4551b7be7a9b29643a95aded9d0f602aa2ba584f0388e7a557"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:249c6470a2b60935bafd1d1d13cd613f8cd8388d53461c67397ee6a0f5dce741"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c5a74c359b2d47d26cdbbc7845e9662d6b08a1e915eb015d044729e92e7050b7"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:b5bcf60a228acae568e9911f410f9d9e0d43197d030ae5799e20dca8df588287"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:187d18082694a29005ba2944c882344b6748d5be69e3a89bf3cc9d878e548d5a"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:81bf654678e575403736b85ba3a7867e31c2c30a69bc57fe88e3ace52fb17b89"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-win32.whl", hash = "sha256:85a32721ddde63c9df9ebb0d2045b9691d9750cb139c161c80e500d210f5e26e"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:468d2a840567b13a590e67dd276c570f8de00ed767ecc611994c301d0f8c014f"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e0fc42822278451bc13a2e8626cf2218ba570f27856b536e00cfa53099724828"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:09c77f964f351a7369cc343911e0df63e762e42bac24cd7d18525961c81754f4"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12ebea541c44fdc88ccb794a13fe861cc5e35d64ed689513a5c03d05b53b7c82"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:805dfea4ca10411a5296bcc75638017215a93ffb584c9e344731eef0dcfb026a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96c2b49eb6a72c0e4991d62406e365d87067ca14c1a729a870d22354e6f68115"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaf7b34c5bc56b38c931a54f7952f1ff0ae77a2e82496583b247f7c969eb1479"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:619d1c96099be5823db34fe89e2582b336b5b074a7f47f819d6b3a57ff7bdb86"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0ac5e7015a5920cfce654c06618ec40c33e12801711da6b4258af59a8eff00a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:93aa7eef6ee71c629b51ef873991d6911b906d7312c6e8e99790c0f33c576f89"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7966951325782121e67c81299a031f4c115615e68046f79b85856b86ebffc4cd"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:02673e456dc5ab13659f85196c534dc596d4ef260e4d86e856c3b2773ce09843"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c2af80fb58f0f24b3f3adcb9148e6203fa67dd3f61c4af146ecad033024dde43"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:153e7b6e724761741e0974fc4dcd406d35ba70b92bfe3fedcb497226c93b9da7"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-win32.whl", hash = "sha256:d47ecf253780c90ee181d4d871cd655a789da937454045b17b5798da9393901a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d97d85fa63f315a8bdaba2af9a6a686e0eceab77b3089af45133252618e70884"}, - {file = "charset_normalizer-3.3.0-py3-none-any.whl", hash = "sha256:e46cd37076971c1040fc8c41273a8b3e2c624ce4f2be3f5dfcb7a430c1d3acc2"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -819,63 +823,63 @@ uvicorn = ["uvicorn[standard] (>=0.17.6)"] [[package]] name = "coverage" -version = "7.3.2" +version = "7.4.3" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, - {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, - {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, - {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, - {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, - {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, - {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, - {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, - {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, - {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, - {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, - {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, - {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, - {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8580b827d4746d47294c0e0b92854c85a92c2227927433998f0d3320ae8a71b6"}, + {file = "coverage-7.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:718187eeb9849fc6cc23e0d9b092bc2348821c5e1a901c9f8975df0bc785bfd4"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:767b35c3a246bcb55b8044fd3a43b8cd553dd1f9f2c1eeb87a302b1f8daa0524"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae7f19afe0cce50039e2c782bff379c7e347cba335429678450b8fe81c4ef96d"}, + {file = "coverage-7.4.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba3a8aaed13770e970b3df46980cb068d1c24af1a1968b7818b69af8c4347efb"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ee866acc0861caebb4f2ab79f0b94dbfbdbfadc19f82e6e9c93930f74e11d7a0"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:506edb1dd49e13a2d4cac6a5173317b82a23c9d6e8df63efb4f0380de0fbccbc"}, + {file = "coverage-7.4.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd6545d97c98a192c5ac995d21c894b581f1fd14cf389be90724d21808b657e2"}, + {file = "coverage-7.4.3-cp310-cp310-win32.whl", hash = "sha256:f6a09b360d67e589236a44f0c39218a8efba2593b6abdccc300a8862cffc2f94"}, + {file = "coverage-7.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:18d90523ce7553dd0b7e23cbb28865db23cddfd683a38fb224115f7826de78d0"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbbe5e739d45a52f3200a771c6d2c7acf89eb2524890a4a3aa1a7fa0695d2a47"}, + {file = "coverage-7.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:489763b2d037b164846ebac0cbd368b8a4ca56385c4090807ff9fad817de4113"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:451f433ad901b3bb00184d83fd83d135fb682d780b38af7944c9faeecb1e0bfe"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcc66e222cf4c719fe7722a403888b1f5e1682d1679bd780e2b26c18bb648cdc"}, + {file = "coverage-7.4.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ec74cfef2d985e145baae90d9b1b32f85e1741b04cd967aaf9cfa84c1334f3"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:abbbd8093c5229c72d4c2926afaee0e6e3140de69d5dcd918b2921f2f0c8baba"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:35eb581efdacf7b7422af677b92170da4ef34500467381e805944a3201df2079"}, + {file = "coverage-7.4.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8249b1c7334be8f8c3abcaaa996e1e4927b0e5a23b65f5bf6cfe3180d8ca7840"}, + {file = "coverage-7.4.3-cp311-cp311-win32.whl", hash = "sha256:cf30900aa1ba595312ae41978b95e256e419d8a823af79ce670835409fc02ad3"}, + {file = "coverage-7.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:18c7320695c949de11a351742ee001849912fd57e62a706d83dfc1581897fa2e"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b51bfc348925e92a9bd9b2e48dad13431b57011fd1038f08316e6bf1df107d10"}, + {file = "coverage-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d6cdecaedea1ea9e033d8adf6a0ab11107b49571bbb9737175444cea6eb72328"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b2eccb883368f9e972e216c7b4c7c06cabda925b5f06dde0650281cb7666a30"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c00cdc8fa4e50e1cc1f941a7f2e3e0f26cb2a1233c9696f26963ff58445bac7"}, + {file = "coverage-7.4.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4a8dd3dcf4cbd3165737358e4d7dfbd9d59902ad11e3b15eebb6393b0446e"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:062b0a75d9261e2f9c6d071753f7eef0fc9caf3a2c82d36d76667ba7b6470003"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ebe7c9e67a2d15fa97b77ea6571ce5e1e1f6b0db71d1d5e96f8d2bf134303c1d"}, + {file = "coverage-7.4.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0a120238dd71c68484f02562f6d446d736adcc6ca0993712289b102705a9a3a"}, + {file = "coverage-7.4.3-cp312-cp312-win32.whl", hash = "sha256:37389611ba54fd6d278fde86eb2c013c8e50232e38f5c68235d09d0a3f8aa352"}, + {file = "coverage-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:d25b937a5d9ffa857d41be042b4238dd61db888533b53bc76dc082cb5a15e914"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28ca2098939eabab044ad68850aac8f8db6bf0b29bc7f2887d05889b17346454"}, + {file = "coverage-7.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:280459f0a03cecbe8800786cdc23067a8fc64c0bd51dc614008d9c36e1659d7e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c0cdedd3500e0511eac1517bf560149764b7d8e65cb800d8bf1c63ebf39edd2"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a9babb9466fe1da12417a4aed923e90124a534736de6201794a3aea9d98484e"}, + {file = "coverage-7.4.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dec9de46a33cf2dd87a5254af095a409ea3bf952d85ad339751e7de6d962cde6"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:16bae383a9cc5abab9bb05c10a3e5a52e0a788325dc9ba8499e821885928968c"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2c854ce44e1ee31bda4e318af1dbcfc929026d12c5ed030095ad98197eeeaed0"}, + {file = "coverage-7.4.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ce8c50520f57ec57aa21a63ea4f325c7b657386b3f02ccaedeccf9ebe27686e1"}, + {file = "coverage-7.4.3-cp38-cp38-win32.whl", hash = "sha256:708a3369dcf055c00ddeeaa2b20f0dd1ce664eeabde6623e516c5228b753654f"}, + {file = "coverage-7.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:1bf25fbca0c8d121a3e92a2a0555c7e5bc981aee5c3fdaf4bb7809f410f696b9"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3b253094dbe1b431d3a4ac2f053b6d7ede2664ac559705a704f621742e034f1f"}, + {file = "coverage-7.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77fbfc5720cceac9c200054b9fab50cb2a7d79660609200ab83f5db96162d20c"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6679060424faa9c11808598504c3ab472de4531c571ab2befa32f4971835788e"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4af154d617c875b52651dd8dd17a31270c495082f3d55f6128e7629658d63765"}, + {file = "coverage-7.4.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8640f1fde5e1b8e3439fe482cdc2b0bb6c329f4bb161927c28d2e8879c6029ee"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:69b9f6f66c0af29642e73a520b6fed25ff9fd69a25975ebe6acb297234eda501"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0842571634f39016a6c03e9d4aba502be652a6e4455fadb73cd3a3a49173e38f"}, + {file = "coverage-7.4.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a78ed23b08e8ab524551f52953a8a05d61c3a760781762aac49f8de6eede8c45"}, + {file = "coverage-7.4.3-cp39-cp39-win32.whl", hash = "sha256:c0524de3ff096e15fcbfe8f056fdb4ea0bf497d584454f344d59fce069d3e6e9"}, + {file = "coverage-7.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:0209a6369ccce576b43bb227dc8322d8ef9e323d089c6f3f26a597b09cb4d2aa"}, + {file = "coverage-7.4.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:7cbde573904625509a3f37b6fecea974e363460b556a627c60dc2f47e2fffa51"}, + {file = "coverage-7.4.3.tar.gz", hash = "sha256:276f6077a5c61447a48d133ed13e759c09e62aff0dc84274a68dc18660104d52"}, ] [package.extras] @@ -893,43 +897,43 @@ files = [ [[package]] name = "cryptography" -version = "42.0.4" +version = "42.0.5" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-42.0.4-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:ffc73996c4fca3d2b6c1c8c12bfd3ad00def8621da24f547626bf06441400449"}, - {file = "cryptography-42.0.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:db4b65b02f59035037fde0998974d84244a64c3265bdef32a827ab9b63d61b18"}, - {file = "cryptography-42.0.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad9c385ba8ee025bb0d856714f71d7840020fe176ae0229de618f14dae7a6e2"}, - {file = "cryptography-42.0.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69b22ab6506a3fe483d67d1ed878e1602bdd5912a134e6202c1ec672233241c1"}, - {file = "cryptography-42.0.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e09469a2cec88fb7b078e16d4adec594414397e8879a4341c6ace96013463d5b"}, - {file = "cryptography-42.0.4-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3e970a2119507d0b104f0a8e281521ad28fc26f2820687b3436b8c9a5fcf20d1"}, - {file = "cryptography-42.0.4-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:e53dc41cda40b248ebc40b83b31516487f7db95ab8ceac1f042626bc43a2f992"}, - {file = "cryptography-42.0.4-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c3a5cbc620e1e17009f30dd34cb0d85c987afd21c41a74352d1719be33380885"}, - {file = "cryptography-42.0.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6bfadd884e7280df24d26f2186e4e07556a05d37393b0f220a840b083dc6a824"}, - {file = "cryptography-42.0.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:01911714117642a3f1792c7f376db572aadadbafcd8d75bb527166009c9f1d1b"}, - {file = "cryptography-42.0.4-cp37-abi3-win32.whl", hash = "sha256:fb0cef872d8193e487fc6bdb08559c3aa41b659a7d9be48b2e10747f47863925"}, - {file = "cryptography-42.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:c1f25b252d2c87088abc8bbc4f1ecbf7c919e05508a7e8628e6875c40bc70923"}, - {file = "cryptography-42.0.4-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:15a1fb843c48b4a604663fa30af60818cd28f895572386e5f9b8a665874c26e7"}, - {file = "cryptography-42.0.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52"}, - {file = "cryptography-42.0.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a"}, - {file = "cryptography-42.0.4-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9"}, - {file = "cryptography-42.0.4-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764"}, - {file = "cryptography-42.0.4-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff"}, - {file = "cryptography-42.0.4-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257"}, - {file = "cryptography-42.0.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929"}, - {file = "cryptography-42.0.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0"}, - {file = "cryptography-42.0.4-cp39-abi3-win32.whl", hash = "sha256:810bcf151caefc03e51a3d61e53335cd5c7316c0a105cc695f0959f2c638b129"}, - {file = "cryptography-42.0.4-cp39-abi3-win_amd64.whl", hash = "sha256:a0298bdc6e98ca21382afe914c642620370ce0470a01e1bef6dd9b5354c36854"}, - {file = "cryptography-42.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5f8907fcf57392cd917892ae83708761c6ff3c37a8e835d7246ff0ad251d9298"}, - {file = "cryptography-42.0.4-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:12d341bd42cdb7d4937b0cabbdf2a94f949413ac4504904d0cdbdce4a22cbf88"}, - {file = "cryptography-42.0.4-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1cdcdbd117681c88d717437ada72bdd5be9de117f96e3f4d50dab3f59fd9ab20"}, - {file = "cryptography-42.0.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0e89f7b84f421c56e7ff69f11c441ebda73b8a8e6488d322ef71746224c20fce"}, - {file = "cryptography-42.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f1e85a178384bf19e36779d91ff35c7617c885da487d689b05c1366f9933ad74"}, - {file = "cryptography-42.0.4-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d2a27aca5597c8a71abbe10209184e1a8e91c1fd470b5070a2ea60cafec35bcd"}, - {file = "cryptography-42.0.4-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4e36685cb634af55e0677d435d425043967ac2f3790ec652b2b88ad03b85c27b"}, - {file = "cryptography-42.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f47be41843200f7faec0683ad751e5ef11b9a56a220d57f300376cd8aba81660"}, - {file = "cryptography-42.0.4.tar.gz", hash = "sha256:831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, + {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, + {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, + {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, + {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, + {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, + {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, ] [package.dependencies] @@ -1046,13 +1050,13 @@ uvicorn = {version = ">=0.29.0", extras = ["standard"]} [[package]] name = "freezegun" -version = "1.2.2" +version = "1.4.0" description = "Let your Python tests travel through time" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "freezegun-1.2.2-py3-none-any.whl", hash = "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f"}, - {file = "freezegun-1.2.2.tar.gz", hash = "sha256:cd22d1ba06941384410cd967d8a99d5ae2442f57dfafeff2fda5de8dc5c05446"}, + {file = "freezegun-1.4.0-py3-none-any.whl", hash = "sha256:55e0fc3c84ebf0a96a5aa23ff8b53d70246479e9a68863f1fcac5a3e52f19dd6"}, + {file = "freezegun-1.4.0.tar.gz", hash = "sha256:10939b0ba0ff5adaecf3b06a5c2f73071d9678e507c5eaedb23c761d56ac774b"}, ] [package.dependencies] @@ -1102,13 +1106,13 @@ jwt = ["PyJWT[crypto] (>=2.4.0,<3.0.0)"] [[package]] name = "google-api-core" -version = "2.12.0" +version = "2.17.1" description = "Google API client core library" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-core-2.12.0.tar.gz", hash = "sha256:c22e01b1e3c4dcd90998494879612c38d0a3411d1f7b679eb89e2abe3ce1f553"}, - {file = "google_api_core-2.12.0-py3-none-any.whl", hash = "sha256:ec6054f7d64ad13b41e43d96f735acbd763b0f3b695dabaa2d579673f6a6e160"}, + {file = "google-api-core-2.17.1.tar.gz", hash = "sha256:9df18a1f87ee0df0bc4eea2770ebc4228392d8cc4066655b320e2cfccb15db95"}, + {file = "google_api_core-2.17.1-py3-none-any.whl", hash = "sha256:610c5b90092c360736baccf17bd3efbcb30dd380e7a6dc28a71059edb8bd0d8e"}, ] [package.dependencies] @@ -1126,13 +1130,13 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] [[package]] name = "google-auth" -version = "2.23.3" +version = "2.28.1" description = "Google Authentication Library" optional = false python-versions = ">=3.7" files = [ - {file = "google-auth-2.23.3.tar.gz", hash = "sha256:6864247895eea5d13b9c57c9e03abb49cb94ce2dc7c58e91cba3248c7477c9e3"}, - {file = "google_auth-2.23.3-py2.py3-none-any.whl", hash = "sha256:a8f4608e65c244ead9e0538f181a96c6e11199ec114d41f1d7b1bffa96937bda"}, + {file = "google-auth-2.28.1.tar.gz", hash = "sha256:34fc3046c257cedcf1622fc4b31fc2be7923d9b4d44973d481125ecc50d83885"}, + {file = "google_auth-2.28.1-py2.py3-none-any.whl", hash = "sha256:25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72"}, ] [package.dependencies] @@ -1166,13 +1170,13 @@ protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4 [[package]] name = "googleapis-common-protos" -version = "1.61.0" +version = "1.62.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" files = [ - {file = "googleapis-common-protos-1.61.0.tar.gz", hash = "sha256:8a64866a97f6304a7179873a465d6eee97b7a24ec6cfd78e0f575e96b821240b"}, - {file = "googleapis_common_protos-1.61.0-py2.py3-none-any.whl", hash = "sha256:22f1915393bb3245343f6efe87f6fe868532efc12aa26b391b15132e1279f1c0"}, + {file = "googleapis-common-protos-1.62.0.tar.gz", hash = "sha256:83f0ece9f94e5672cced82f592d2a5edf527a96ed1794f0bab36d5735c996277"}, + {file = "googleapis_common_protos-1.62.0-py2.py3-none-any.whl", hash = "sha256:4750113612205514f9f6aa4cb00d523a94f3e8c06c5ad2fee466387dc4875f07"}, ] [package.dependencies] @@ -1183,84 +1187,84 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] [[package]] name = "grpcio" -version = "1.59.0" +version = "1.62.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.7" files = [ - {file = "grpcio-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:225e5fa61c35eeaebb4e7491cd2d768cd8eb6ed00f2664fa83a58f29418b39fd"}, - {file = "grpcio-1.59.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b95ec8ecc4f703f5caaa8d96e93e40c7f589bad299a2617bdb8becbcce525539"}, - {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:1a839ba86764cc48226f50b924216000c79779c563a301586a107bda9cbe9dcf"}, - {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6cfe44a5d7c7d5f1017a7da1c8160304091ca5dc64a0f85bca0d63008c3137a"}, - {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0fcf53df684fcc0154b1e61f6b4a8c4cf5f49d98a63511e3f30966feff39cd0"}, - {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa66cac32861500f280bb60fe7d5b3e22d68c51e18e65367e38f8669b78cea3b"}, - {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8cd2d38c2d52f607d75a74143113174c36d8a416d9472415eab834f837580cf7"}, - {file = "grpcio-1.59.0-cp310-cp310-win32.whl", hash = "sha256:228b91ce454876d7eed74041aff24a8f04c0306b7250a2da99d35dd25e2a1211"}, - {file = "grpcio-1.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:ca87ee6183421b7cea3544190061f6c1c3dfc959e0b57a5286b108511fd34ff4"}, - {file = "grpcio-1.59.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:c173a87d622ea074ce79be33b952f0b424fa92182063c3bda8625c11d3585d09"}, - {file = "grpcio-1.59.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:ec78aebb9b6771d6a1de7b6ca2f779a2f6113b9108d486e904bde323d51f5589"}, - {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:0b84445fa94d59e6806c10266b977f92fa997db3585f125d6b751af02ff8b9fe"}, - {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c251d22de8f9f5cca9ee47e4bade7c5c853e6e40743f47f5cc02288ee7a87252"}, - {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:956f0b7cb465a65de1bd90d5a7475b4dc55089b25042fe0f6c870707e9aabb1d"}, - {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:38da5310ef84e16d638ad89550b5b9424df508fd5c7b968b90eb9629ca9be4b9"}, - {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:63982150a7d598281fa1d7ffead6096e543ff8be189d3235dd2b5604f2c553e5"}, - {file = "grpcio-1.59.0-cp311-cp311-win32.whl", hash = "sha256:50eff97397e29eeee5df106ea1afce3ee134d567aa2c8e04fabab05c79d791a7"}, - {file = "grpcio-1.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f03bd714f987d48ae57fe092cf81960ae36da4e520e729392a59a75cda4f29"}, - {file = "grpcio-1.59.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f1feb034321ae2f718172d86b8276c03599846dc7bb1792ae370af02718f91c5"}, - {file = "grpcio-1.59.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d09bd2a4e9f5a44d36bb8684f284835c14d30c22d8ec92ce796655af12163588"}, - {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:2f120d27051e4c59db2f267b71b833796770d3ea36ca712befa8c5fff5da6ebd"}, - {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0ca727a173ee093f49ead932c051af463258b4b493b956a2c099696f38aa66"}, - {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5711c51e204dc52065f4a3327dca46e69636a0b76d3e98c2c28c4ccef9b04c52"}, - {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d74f7d2d7c242a6af9d4d069552ec3669965b74fed6b92946e0e13b4168374f9"}, - {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3859917de234a0a2a52132489c4425a73669de9c458b01c9a83687f1f31b5b10"}, - {file = "grpcio-1.59.0-cp312-cp312-win32.whl", hash = "sha256:de2599985b7c1b4ce7526e15c969d66b93687571aa008ca749d6235d056b7205"}, - {file = "grpcio-1.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:598f3530231cf10ae03f4ab92d48c3be1fee0c52213a1d5958df1a90957e6a88"}, - {file = "grpcio-1.59.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b34c7a4c31841a2ea27246a05eed8a80c319bfc0d3e644412ec9ce437105ff6c"}, - {file = "grpcio-1.59.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:c4dfdb49f4997dc664f30116af2d34751b91aa031f8c8ee251ce4dcfc11277b0"}, - {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:61bc72a00ecc2b79d9695220b4d02e8ba53b702b42411397e831c9b0589f08a3"}, - {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f367e4b524cb319e50acbdea57bb63c3b717c5d561974ace0b065a648bb3bad3"}, - {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849c47ef42424c86af069a9c5e691a765e304079755d5c29eff511263fad9c2a"}, - {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c0488c2b0528e6072010182075615620071371701733c63ab5be49140ed8f7f0"}, - {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:611d9aa0017fa386809bddcb76653a5ab18c264faf4d9ff35cb904d44745f575"}, - {file = "grpcio-1.59.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e5378785dce2b91eb2e5b857ec7602305a3b5cf78311767146464bfa365fc897"}, - {file = "grpcio-1.59.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:fe976910de34d21057bcb53b2c5e667843588b48bf11339da2a75f5c4c5b4055"}, - {file = "grpcio-1.59.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:c041a91712bf23b2a910f61e16565a05869e505dc5a5c025d429ca6de5de842c"}, - {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ae444221b2c16d8211b55326f8ba173ba8f8c76349bfc1768198ba592b58f74"}, - {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceb1e68135788c3fce2211de86a7597591f0b9a0d2bb80e8401fd1d915991bac"}, - {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4b1cc3a9dc1924d2eb26eec8792fedd4b3fcd10111e26c1d551f2e4eda79ce"}, - {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:871371ce0c0055d3db2a86fdebd1e1d647cf21a8912acc30052660297a5a6901"}, - {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:93e9cb546e610829e462147ce724a9cb108e61647a3454500438a6deef610be1"}, - {file = "grpcio-1.59.0-cp38-cp38-win32.whl", hash = "sha256:f21917aa50b40842b51aff2de6ebf9e2f6af3fe0971c31960ad6a3a2b24988f4"}, - {file = "grpcio-1.59.0-cp38-cp38-win_amd64.whl", hash = "sha256:14890da86a0c0e9dc1ea8e90101d7a3e0e7b1e71f4487fab36e2bfd2ecadd13c"}, - {file = "grpcio-1.59.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:34341d9e81a4b669a5f5dca3b2a760b6798e95cdda2b173e65d29d0b16692857"}, - {file = "grpcio-1.59.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:986de4aa75646e963466b386a8c5055c8b23a26a36a6c99052385d6fe8aaf180"}, - {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:aca8a24fef80bef73f83eb8153f5f5a0134d9539b4c436a716256b311dda90a6"}, - {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:936b2e04663660c600d5173bc2cc84e15adbad9c8f71946eb833b0afc205b996"}, - {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc8bf2e7bc725e76c0c11e474634a08c8f24bcf7426c0c6d60c8f9c6e70e4d4a"}, - {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81d86a096ccd24a57fa5772a544c9e566218bc4de49e8c909882dae9d73392df"}, - {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2ea95cd6abbe20138b8df965b4a8674ec312aaef3147c0f46a0bac661f09e8d0"}, - {file = "grpcio-1.59.0-cp39-cp39-win32.whl", hash = "sha256:3b8ff795d35a93d1df6531f31c1502673d1cebeeba93d0f9bd74617381507e3f"}, - {file = "grpcio-1.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:38823bd088c69f59966f594d087d3a929d1ef310506bee9e3648317660d65b81"}, - {file = "grpcio-1.59.0.tar.gz", hash = "sha256:acf70a63cf09dd494000007b798aff88a436e1c03b394995ce450be437b8e54f"}, + {file = "grpcio-1.62.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:136ffd79791b1eddda8d827b607a6285474ff8a1a5735c4947b58c481e5e4271"}, + {file = "grpcio-1.62.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:d6a56ba703be6b6267bf19423d888600c3f574ac7c2cc5e6220af90662a4d6b0"}, + {file = "grpcio-1.62.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:4cd356211579043fce9f52acc861e519316fff93980a212c8109cca8f47366b6"}, + {file = "grpcio-1.62.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e803e9b58d8f9b4ff0ea991611a8d51b31c68d2e24572cd1fe85e99e8cc1b4f8"}, + {file = "grpcio-1.62.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4c04fe33039b35b97c02d2901a164bbbb2f21fb9c4e2a45a959f0b044c3512c"}, + {file = "grpcio-1.62.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:95370c71b8c9062f9ea033a0867c4c73d6f0ff35113ebd2618171ec1f1e903e0"}, + {file = "grpcio-1.62.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c912688acc05e4ff012c8891803659d6a8a8b5106f0f66e0aed3fb7e77898fa6"}, + {file = "grpcio-1.62.0-cp310-cp310-win32.whl", hash = "sha256:821a44bd63d0f04e33cf4ddf33c14cae176346486b0df08b41a6132b976de5fc"}, + {file = "grpcio-1.62.0-cp310-cp310-win_amd64.whl", hash = "sha256:81531632f93fece32b2762247c4c169021177e58e725494f9a746ca62c83acaa"}, + {file = "grpcio-1.62.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:3fa15850a6aba230eed06b236287c50d65a98f05054a0f01ccedf8e1cc89d57f"}, + {file = "grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:36df33080cd7897623feff57831eb83c98b84640b016ce443305977fac7566fb"}, + {file = "grpcio-1.62.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:7a195531828b46ea9c4623c47e1dc45650fc7206f8a71825898dd4c9004b0928"}, + {file = "grpcio-1.62.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab140a3542bbcea37162bdfc12ce0d47a3cda3f2d91b752a124cc9fe6776a9e2"}, + {file = "grpcio-1.62.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f9d6c3223914abb51ac564dc9c3782d23ca445d2864321b9059d62d47144021"}, + {file = "grpcio-1.62.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fbe0c20ce9a1cff75cfb828b21f08d0a1ca527b67f2443174af6626798a754a4"}, + {file = "grpcio-1.62.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38f69de9c28c1e7a8fd24e4af4264726637b72f27c2099eaea6e513e7142b47e"}, + {file = "grpcio-1.62.0-cp311-cp311-win32.whl", hash = "sha256:ce1aafdf8d3f58cb67664f42a617af0e34555fe955450d42c19e4a6ad41c84bd"}, + {file = "grpcio-1.62.0-cp311-cp311-win_amd64.whl", hash = "sha256:eef1d16ac26c5325e7d39f5452ea98d6988c700c427c52cbc7ce3201e6d93334"}, + {file = "grpcio-1.62.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:8aab8f90b2a41208c0a071ec39a6e5dbba16fd827455aaa070fec241624ccef8"}, + {file = "grpcio-1.62.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:62aa1659d8b6aad7329ede5d5b077e3d71bf488d85795db517118c390358d5f6"}, + {file = "grpcio-1.62.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:0d7ae7fc7dbbf2d78d6323641ded767d9ec6d121aaf931ec4a5c50797b886532"}, + {file = "grpcio-1.62.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f359d635ee9428f0294bea062bb60c478a8ddc44b0b6f8e1f42997e5dc12e2ee"}, + {file = "grpcio-1.62.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d48e5b1f8f4204889f1acf30bb57c30378e17c8d20df5acbe8029e985f735c"}, + {file = "grpcio-1.62.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:662d3df5314ecde3184cf87ddd2c3a66095b3acbb2d57a8cada571747af03873"}, + {file = "grpcio-1.62.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92cdb616be44c8ac23a57cce0243af0137a10aa82234f23cd46e69e115071388"}, + {file = "grpcio-1.62.0-cp312-cp312-win32.whl", hash = "sha256:0b9179478b09ee22f4a36b40ca87ad43376acdccc816ce7c2193a9061bf35701"}, + {file = "grpcio-1.62.0-cp312-cp312-win_amd64.whl", hash = "sha256:614c3ed234208e76991992342bab725f379cc81c7dd5035ee1de2f7e3f7a9842"}, + {file = "grpcio-1.62.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:7e1f51e2a460b7394670fdb615e26d31d3260015154ea4f1501a45047abe06c9"}, + {file = "grpcio-1.62.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:bcff647e7fe25495e7719f779cc219bbb90b9e79fbd1ce5bda6aae2567f469f2"}, + {file = "grpcio-1.62.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:56ca7ba0b51ed0de1646f1735154143dcbdf9ec2dbe8cc6645def299bb527ca1"}, + {file = "grpcio-1.62.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e84bfb2a734e4a234b116be208d6f0214e68dcf7804306f97962f93c22a1839"}, + {file = "grpcio-1.62.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c1488b31a521fbba50ae86423f5306668d6f3a46d124f7819c603979fc538c4"}, + {file = "grpcio-1.62.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:98d8f4eb91f1ce0735bf0b67c3b2a4fea68b52b2fd13dc4318583181f9219b4b"}, + {file = "grpcio-1.62.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b3d3d755cfa331d6090e13aac276d4a3fb828bf935449dc16c3d554bf366136b"}, + {file = "grpcio-1.62.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a33f2bfd8a58a02aab93f94f6c61279be0f48f99fcca20ebaee67576cd57307b"}, + {file = "grpcio-1.62.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:5e709f7c8028ce0443bddc290fb9c967c1e0e9159ef7a030e8c21cac1feabd35"}, + {file = "grpcio-1.62.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:2f3d9a4d0abb57e5f49ed5039d3ed375826c2635751ab89dcc25932ff683bbb6"}, + {file = "grpcio-1.62.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:62ccb92f594d3d9fcd00064b149a0187c246b11e46ff1b7935191f169227f04c"}, + {file = "grpcio-1.62.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:921148f57c2e4b076af59a815467d399b7447f6e0ee10ef6d2601eb1e9c7f402"}, + {file = "grpcio-1.62.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f897b16190b46bc4d4aaf0a32a4b819d559a37a756d7c6b571e9562c360eed72"}, + {file = "grpcio-1.62.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1bc8449084fe395575ed24809752e1dc4592bb70900a03ca42bf236ed5bf008f"}, + {file = "grpcio-1.62.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:81d444e5e182be4c7856cd33a610154fe9ea1726bd071d07e7ba13fafd202e38"}, + {file = "grpcio-1.62.0-cp38-cp38-win32.whl", hash = "sha256:88f41f33da3840b4a9bbec68079096d4caf629e2c6ed3a72112159d570d98ebe"}, + {file = "grpcio-1.62.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc2836cb829895ee190813446dce63df67e6ed7b9bf76060262c55fcd097d270"}, + {file = "grpcio-1.62.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:fcc98cff4084467839d0a20d16abc2a76005f3d1b38062464d088c07f500d170"}, + {file = "grpcio-1.62.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:0d3dee701e48ee76b7d6fbbba18ba8bc142e5b231ef7d3d97065204702224e0e"}, + {file = "grpcio-1.62.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:b7a6be562dd18e5d5bec146ae9537f20ae1253beb971c0164f1e8a2f5a27e829"}, + {file = "grpcio-1.62.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29cb592c4ce64a023712875368bcae13938c7f03e99f080407e20ffe0a9aa33b"}, + {file = "grpcio-1.62.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eda79574aec8ec4d00768dcb07daba60ed08ef32583b62b90bbf274b3c279f7"}, + {file = "grpcio-1.62.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7eea57444a354ee217fda23f4b479a4cdfea35fb918ca0d8a0e73c271e52c09c"}, + {file = "grpcio-1.62.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0e97f37a3b7c89f9125b92d22e9c8323f4e76e7993ba7049b9f4ccbe8bae958a"}, + {file = "grpcio-1.62.0-cp39-cp39-win32.whl", hash = "sha256:39cd45bd82a2e510e591ca2ddbe22352e8413378852ae814549c162cf3992a93"}, + {file = "grpcio-1.62.0-cp39-cp39-win_amd64.whl", hash = "sha256:b71c65427bf0ec6a8b48c68c17356cb9fbfc96b1130d20a07cb462f4e4dcdcd5"}, + {file = "grpcio-1.62.0.tar.gz", hash = "sha256:748496af9238ac78dcd98cce65421f1adce28c3979393e3609683fcd7f3880d7"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.59.0)"] +protobuf = ["grpcio-tools (>=1.62.0)"] [[package]] name = "grpcio-status" -version = "1.59.0" +version = "1.62.0" description = "Status proto mapping for gRPC" optional = false python-versions = ">=3.6" files = [ - {file = "grpcio-status-1.59.0.tar.gz", hash = "sha256:f93b9c33e0a26162ef8431bfcffcc3e1fb217ccd8d7b5b3061b6e9f813e698b5"}, - {file = "grpcio_status-1.59.0-py3-none-any.whl", hash = "sha256:cb5a222b14a80ee050bff9676623822e953bff0c50d2d29180de723652fdf10d"}, + {file = "grpcio-status-1.62.0.tar.gz", hash = "sha256:0d693e9c09880daeaac060d0c3dba1ae470a43c99e5d20dfeafd62cf7e08a85d"}, + {file = "grpcio_status-1.62.0-py3-none-any.whl", hash = "sha256:3baac03fcd737310e67758c4082a188107f771d32855bce203331cd4c9aa687a"}, ] [package.dependencies] googleapis-common-protos = ">=1.5.5" -grpcio = ">=1.59.0" +grpcio = ">=1.62.0" protobuf = ">=4.21.6" [[package]] @@ -1276,100 +1280,120 @@ files = [ [[package]] name = "hiredis" -version = "2.2.3" +version = "2.3.2" description = "Python wrapper for hiredis" optional = false python-versions = ">=3.7" files = [ - {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:9a1a80a8fa767f2fdc3870316a54b84fe9fc09fa6ab6a2686783de6a228a4604"}, - {file = "hiredis-2.2.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3f006c28c885deb99b670a5a66f367a175ab8955b0374029bad7111f5357dcd4"}, - {file = "hiredis-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffaf841546905d90ff189de7397aa56413b1ce5e54547f17a98f0ebf3a3b0a3b"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cadb0ac7ba3babfd804e425946bec9717b320564a1390f163a54af9365a720a"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33bc4721632ef9708fa44e5df0066053fccc8e65410a2c48573192517a533b48"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:227c5b4bcb60f89008c275d596e4a7b6625a6b3c827b8a66ae582eace7051f71"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61995eb826009d99ed8590747bc0da683a5f4fbb4faa8788166bf3810845cd5c"}, - {file = "hiredis-2.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f969edc851efe23010e0f53a64269f2629a9364135e9ec81c842e8b2277d0c1"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27e560eefb57914d742a837f1da98d3b29cb22eff013c8023b7cf52ae6e051d"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3759f4789ae1913b7df278dfc9e8749205b7a106f888cd2903d19461e24a7697"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c6cb613148422c523945cdb8b6bed617856f2602fd8750e33773ede2616e55d5"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:1d274d5c511dfc03f83f997d3238eaa9b6ee3f982640979f509373cced891e98"}, - {file = "hiredis-2.2.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b7fe075e91b9d9cff40eba4fb6a8eff74964d3979a39be9a9ef58b1b4cb3604"}, - {file = "hiredis-2.2.3-cp310-cp310-win32.whl", hash = "sha256:77924b0d32fd1f493d3df15d9609ddf9d94c31a364022a6bf6b525ce9da75bea"}, - {file = "hiredis-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:dcb0569dd5bfe6004658cd0f229efa699a3169dcb4f77bd72e188adda302063d"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:d115790f18daa99b5c11a506e48923b630ef712e9e4b40482af942c3d40638b8"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c3b8be557e08b234774925622e196f0ee36fe4eab66cd19df934d3efd8f3743"}, - {file = "hiredis-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3f5446068197b35a11ccc697720c41879c8657e2e761aaa8311783aac84cef20"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa17a3b22b3726d54d7af20394f65d4a1735a842a4e0f557dc67a90f6965c4bc"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7df645b6b7800e8b748c217fbd6a4ca8361bcb9a1ae6206cc02377833ec8a1aa"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fb9300959a0048138791f3d68359d61a788574ec9556bddf1fec07f2dbc5320"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d7e459fe7313925f395148d36d9b7f4f8dac65be06e45d7af356b187cef65fc"}, - {file = "hiredis-2.2.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8eceffca3941775b646cd585cd19b275d382de43cc3327d22f7c75d7b003d481"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b17baf702c6e5b4bb66e1281a3efbb1d749c9d06cdb92b665ad81e03118f78fc"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e43e2b5acaad09cf48c032f7e4926392bb3a3f01854416cf6d82ebff94d5467"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:a7205497d7276a81fe92951a29616ef96562ed2f91a02066f72b6f93cb34b40e"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:126623b03c31cb6ac3e0d138feb6fcc36dd43dd34fc7da7b7a0c38b5d75bc896"}, - {file = "hiredis-2.2.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:071c5814b850574036506a8118034f97c3cbf2fe9947ff45a27b07a48da56240"}, - {file = "hiredis-2.2.3-cp311-cp311-win32.whl", hash = "sha256:d1be9e30e675f5bc1cb534633324578f6f0944a1bcffe53242cf632f554f83b6"}, - {file = "hiredis-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9a7c987e161e3c58f992c63b7e26fea7fe0777f3b975799d23d65bbb8cb5899"}, - {file = "hiredis-2.2.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:f2dcb8389fa3d453927b1299f46bdb38473c293c8269d5c777d33ea0e526b610"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2df98f5e071320c7d84e8bd07c0542acdd0a7519307fc31774d60e4b842ec4f"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a72e4a523cdfc521762137559c08dfa360a3caef63620be58c699d1717dac1"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9b9e5bde7030cae83aa900b5bd660decc65afd2db8c400f3c568c815a47ca2a"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2614f17e261f72efc2f19f5e5ff2ee19e2296570c0dcf33409e22be30710de"}, - {file = "hiredis-2.2.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46525fbd84523cac75af5bf524bc74aaac848beaf31b142d2df8a787d9b4bbc4"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d1a4ce40ba11da9382c14da31f4f9e88c18f7d294f523decd0fadfb81f51ad18"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cda592405bbd29d53942e0389dc3fa77b49c362640210d7e94a10c14a677d4d"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5e6674a017629284ef373b50496d9fb1a89b85a20a7fa100ecd109484ec748e5"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:e62ec131816c6120eff40dffe43424e140264a15fa4ab88c301bd6a595913af3"}, - {file = "hiredis-2.2.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17e938d9d3ee92e1adbff361706f1c36cc60eeb3e3eeca7a3a353eae344f4c91"}, - {file = "hiredis-2.2.3-cp37-cp37m-win32.whl", hash = "sha256:95d2305fd2a7b179cacb48b10f618872fc565c175f9f62b854e8d1acac3e8a9e"}, - {file = "hiredis-2.2.3-cp37-cp37m-win_amd64.whl", hash = "sha256:8f9dbe12f011a9b784f58faecc171d22465bb532c310bd588d769ba79a59ef5a"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:5a4bcef114fc071d5f52c386c47f35aae0a5b43673197b9288a15b584da8fa3a"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:232d0a70519865741ba56e1dfefd160a580ae78c30a1517bad47b3cf95a3bc7d"}, - {file = "hiredis-2.2.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9076ce8429785c85f824650735791738de7143f61f43ae9ed83e163c0ca0fa44"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec58fb7c2062f835595c12f0f02dcda76d0eb0831423cc191d1e18c9276648de"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f2b34a6444b8f9c1e9f84bd2c639388e5d14f128afd14a869dfb3d9af893aa2"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:818dfd310aa1020a13cd08ee48e116dd8c3bb2e23b8161f8ac4df587dd5093d7"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d9ea6c8d4cbdeee2e0d43379ce2881e4af0454b00570677c59f33f2531cd38"}, - {file = "hiredis-2.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1eadbcd3de55ac42310ff82550d3302cb4efcd4e17d76646a17b6e7004bb42b"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:477c34c4489666dc73cb5e89dafe2617c3e13da1298917f73d55aac4696bd793"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:14824e457e4f5cda685c3345d125da13949bcf3bb1c88eb5d248c8d2c3dee08f"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9cd32326dfa6ce87edf754153b0105aca64486bebe93b9600ccff74fa0b224df"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:51341e70b467004dcbec3a6ce8c478d2d6241e0f6b01e4c56764afd5022e1e9d"}, - {file = "hiredis-2.2.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2443659c76b226267e2a04dbbb21bc2a3f91aa53bdc0c22964632753ae43a247"}, - {file = "hiredis-2.2.3-cp38-cp38-win32.whl", hash = "sha256:4e3e3e31423f888d396b1fc1f936936e52af868ac1ec17dd15e3eeba9dd4de24"}, - {file = "hiredis-2.2.3-cp38-cp38-win_amd64.whl", hash = "sha256:20f509e3a1a20d6e5f5794fc37ceb21f70f409101fcfe7a8bde783894d51b369"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:d20891e3f33803b26d54c77fd5745878497091e33f4bbbdd454cf6e71aee8890"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:50171f985e17970f87d5a29e16603d1e5b03bdbf5c2691a37e6c912942a6b657"}, - {file = "hiredis-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9944a2cac25ffe049a7e89f306e11b900640837d1ef38d9be0eaa4a4e2b73a52"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a5c8019ff94988d56eb49b15de76fe83f6b42536d76edeb6565dbf7fe14b973"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a286ded34eb16501002e3713b3130c987366eee2ba0d58c33c72f27778e31676"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b3e974ad15eb32b1f537730dea70b93a4c3db7b026de3ad2b59da49c6f7454d"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08415ea74c1c29b9d6a4ca3dd0e810dc1af343c1d1d442e15ba133b11ab5be6a"}, - {file = "hiredis-2.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e17d04ea58ab8cf3f2dc52e875db16077c6357846006780086fff3189fb199d"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6ccdcb635dae85b006592f78e32d97f4bc7541cb27829d505f9c7fefcef48298"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69536b821dd1bc78058a6e7541743f8d82bf2d981b91280b14c4daa6cdc7faba"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:3753df5f873d473f055e1f8837bfad0bd3b277c86f3c9bf058c58f14204cd901"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6f88cafe46612b6fa68e6dea49e25bebf160598bba00101caa51cc8c1f18d597"}, - {file = "hiredis-2.2.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:33ee3ea5cad3a8cb339352cd230b411eb437a2e75d7736c4899acab32056ccdb"}, - {file = "hiredis-2.2.3-cp39-cp39-win32.whl", hash = "sha256:b4f3d06dc16671b88a13ae85d8ca92534c0b637d59e49f0558d040a691246422"}, - {file = "hiredis-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4f674e309cd055ee7a48304ceb8cf43265d859faf4d7d01d270ce45e976ae9d3"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:8f280ab4e043b089777b43b4227bdc2035f88da5072ab36588e0ccf77d45d058"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15c2a551f3b8a26f7940d6ee10b837810201754b8d7e6f6b1391655370882c5a"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60c4e3c258eafaab21b174b17270a0cc093718d61cdbde8c03f85ec4bf835343"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc36a9dded458d4e37492fe3e619c6c83caae794d26ad925adbce61d592f8428"}, - {file = "hiredis-2.2.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4ed68a3b1ccb4313d2a42546fd7e7439ad4745918a48b6c9bcaa61e1e3e42634"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3bf4b5bae472630c229518e4a814b1b68f10a3d9b00aeaec45f1a330f03a0251"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33a94d264e6e12a79d9bb8af333b01dc286b9f39c99072ab5fef94ce1f018e17"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fa6811a618653164f918b891a0fa07052bd71a799defa5c44d167cac5557b26"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af33f370be90b48bbaf0dab32decbdcc522b1fa95d109020a963282086518a8e"}, - {file = "hiredis-2.2.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b9953d87418ac228f508d93898ab572775e4d3b0eeb886a1a7734553bcdaf291"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5e7bb4dd524f50b71c20ef5a12bd61da9b463f8894b18a06130942fe31509881"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89a258424158eb8b3ed9f65548d68998da334ef155d09488c5637723eb1cd697"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f4a65276f6ecdebe75f2a53f578fbc40e8d2860658420d5e0611c56bbf5054c"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:334f2738700b20faa04a0d813366fb16ed17287430a6b50584161d5ad31ca6d7"}, - {file = "hiredis-2.2.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d194decd9608f11c777946f596f31d5aacad13972a0a87829ae1e6f2d26c1885"}, - {file = "hiredis-2.2.3.tar.gz", hash = "sha256:e75163773a309e56a9b58165cf5a50e0f84b755f6ff863b2c01a38918fe92daa"}, + {file = "hiredis-2.3.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:742093f33d374098aa21c1696ac6e4874b52658c870513a297a89265a4d08fe5"}, + {file = "hiredis-2.3.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:9e14fb70ca4f7efa924f508975199353bf653f452e4ef0a1e47549e208f943d7"}, + {file = "hiredis-2.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d7302b4b17fcc1cc727ce84ded7f6be4655701e8d58744f73b09cb9ed2b13df"}, + {file = "hiredis-2.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed63e8b75c193c5e5a8288d9d7b011da076cc314fafc3bfd59ec1d8a750d48c8"}, + {file = "hiredis-2.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b4edee59dc089bc3948f4f6fba309f51aa2ccce63902364900aa0a553a85e97"}, + {file = "hiredis-2.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6481c3b7673a86276220140456c2a6fbfe8d1fb5c613b4728293c8634134824"}, + {file = "hiredis-2.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684840b014ce83541a087fcf2d48227196576f56ae3e944d4dfe14c0a3e0ccb7"}, + {file = "hiredis-2.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c4c0bcf786f0eac9593367b6279e9b89534e008edbf116dcd0de956524702c8"}, + {file = "hiredis-2.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66ab949424ac6504d823cba45c4c4854af5c59306a1531edb43b4dd22e17c102"}, + {file = "hiredis-2.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:322c668ee1c12d6c5750a4b1057e6b4feee2a75b3d25d630922a463cfe5e7478"}, + {file = "hiredis-2.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:bfa73e3f163c6e8b2ec26f22285d717a5f77ab2120c97a2605d8f48b26950dac"}, + {file = "hiredis-2.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7f39f28ffc65de577c3bc0c7615f149e35bc927802a0f56e612db9b530f316f9"}, + {file = "hiredis-2.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:55ce31bf4711da879b96d511208efb65a6165da4ba91cb3a96d86d5a8d9d23e6"}, + {file = "hiredis-2.3.2-cp310-cp310-win32.whl", hash = "sha256:3dd63d0bbbe75797b743f35d37a4cca7ca7ba35423a0de742ae2985752f20c6d"}, + {file = "hiredis-2.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:ea002656a8d974daaf6089863ab0a306962c8b715db6b10879f98b781a2a5bf5"}, + {file = "hiredis-2.3.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:adfbf2e9c38b77d0db2fb32c3bdaea638fa76b4e75847283cd707521ad2475ef"}, + {file = "hiredis-2.3.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:80b02d27864ebaf9b153d4b99015342382eeaed651f5591ce6f07e840307c56d"}, + {file = "hiredis-2.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd40d2e2f82a483de0d0a6dfd8c3895a02e55e5c9949610ecbded18188fd0a56"}, + {file = "hiredis-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfa904045d7cebfb0f01dad51352551cce1d873d7c3f80c7ded7d42f8cac8f89"}, + {file = "hiredis-2.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28bd184b33e0dd6d65816c16521a4ba1ffbe9ff07d66873c42ea4049a62fed83"}, + {file = "hiredis-2.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f70481213373d44614148f0f2e38e7905be3f021902ae5167289413196de4ba4"}, + {file = "hiredis-2.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb8797b528c1ff81eef06713623562b36db3dafa106b59f83a6468df788ff0d1"}, + {file = "hiredis-2.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02fc71c8333586871602db4774d3a3e403b4ccf6446dc4603ec12df563127cee"}, + {file = "hiredis-2.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0da56915bda1e0a49157191b54d3e27689b70960f0685fdd5c415dacdee2fbed"}, + {file = "hiredis-2.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e2674a5a3168349435b08fa0b82998ed2536eb9acccf7087efe26e4cd088a525"}, + {file = "hiredis-2.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:dc1c3fd49930494a67dcec37d0558d99d84eca8eb3f03b17198424538f2608d7"}, + {file = "hiredis-2.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:14c7b43205e515f538a9defb4e411e0f0576caaeeda76bb9993ed505486f7562"}, + {file = "hiredis-2.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7bac7e02915b970c3723a7a7c5df4ba7a11a3426d2a3f181e041aa506a1ff028"}, + {file = "hiredis-2.3.2-cp311-cp311-win32.whl", hash = "sha256:63a090761ddc3c1f7db5e67aa4e247b4b3bb9890080bdcdadd1b5200b8b89ac4"}, + {file = "hiredis-2.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:70d226ab0306a5b8d408235cabe51d4bf3554c9e8a72d53ce0b3c5c84cf78881"}, + {file = "hiredis-2.3.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:5c614552c6bd1d0d907f448f75550f6b24fb56cbfce80c094908b7990cad9702"}, + {file = "hiredis-2.3.2-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:9c431431abf55b64347ddc8df68b3ef840269cb0aa5bc2d26ad9506eb4b1b866"}, + {file = "hiredis-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a45857e87e9d2b005e81ddac9d815a33efd26ec67032c366629f023fe64fb415"}, + {file = "hiredis-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e138d141ec5a6ec800b6d01ddc3e5561ce1c940215e0eb9960876bfde7186aae"}, + {file = "hiredis-2.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:387f655444d912a963ab68abf64bf6e178a13c8e4aa945cb27388fd01a02e6f1"}, + {file = "hiredis-2.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4852f4bf88f0e2d9bdf91279892f5740ed22ae368335a37a52b92a5c88691140"}, + {file = "hiredis-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d711c107e83117129b7f8bd08e9820c43ceec6204fff072a001fd82f6d13db9f"}, + {file = "hiredis-2.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92830c16885f29163e1c2da1f3c1edb226df1210ec7e8711aaabba3dd0d5470a"}, + {file = "hiredis-2.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:16b01d9ceae265d4ab9547be0cd628ecaff14b3360357a9d30c029e5ae8b7e7f"}, + {file = "hiredis-2.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5986fb5f380169270a0293bebebd95466a1c85010b4f1afc2727e4d17c452512"}, + {file = "hiredis-2.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:49532d7939cc51f8e99efc326090c54acf5437ed88b9c904cc8015b3c4eda9c9"}, + {file = "hiredis-2.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8f34801b251ca43ad70691fb08b606a2e55f06b9c9fb1fc18fd9402b19d70f7b"}, + {file = "hiredis-2.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7298562a49d95570ab1c7fc4051e72824c6a80e907993a21a41ba204223e7334"}, + {file = "hiredis-2.3.2-cp312-cp312-win32.whl", hash = "sha256:e1d86b75de787481b04d112067a4033e1ecfda2a060e50318a74e4e1c9b2948c"}, + {file = "hiredis-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:6dbfe1887ffa5cf3030451a56a8f965a9da2fa82b7149357752b67a335a05fc6"}, + {file = "hiredis-2.3.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:4fc242e9da4af48714199216eb535b61e8f8d66552c8819e33fc7806bd465a09"}, + {file = "hiredis-2.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e81aa4e9a1fcf604c8c4b51aa5d258e195a6ba81efe1da82dea3204443eba01c"}, + {file = "hiredis-2.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:419780f8583ddb544ffa86f9d44a7fcc183cd826101af4e5ffe535b6765f5f6b"}, + {file = "hiredis-2.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6871306d8b98a15e53a5f289ec1106a3a1d43e7ab6f4d785f95fcef9a7bd9504"}, + {file = "hiredis-2.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb0b35b63717ef1e41d62f4f8717166f7c6245064957907cfe177cc144357c"}, + {file = "hiredis-2.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c490191fa1218851f8a80c5a21a05a6f680ac5aebc2e688b71cbfe592f8fec6"}, + {file = "hiredis-2.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4baf4b579b108062e91bd2a991dc98b9dc3dc06e6288db2d98895eea8acbac22"}, + {file = "hiredis-2.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e627d8ef5e100556e09fb44c9571a432b10e11596d3c4043500080ca9944a91a"}, + {file = "hiredis-2.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:ba3dc0af0def8c21ce7d903c59ea1e8ec4cb073f25ece9edaec7f92a286cd219"}, + {file = "hiredis-2.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:56e9b7d6051688ca94e68c0c8a54a243f8db841911b683cedf89a29d4de91509"}, + {file = "hiredis-2.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:380e029bb4b1d34cf560fcc8950bf6b57c2ef0c9c8b7c7ac20b7c524a730fadd"}, + {file = "hiredis-2.3.2-cp37-cp37m-win32.whl", hash = "sha256:948d9f2ca7841794dd9b204644963a4bcd69ced4e959b0d4ecf1b8ce994a6daa"}, + {file = "hiredis-2.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:cfa67afe2269b2d203cd1389c00c5bc35a287cd57860441fb0e53b371ea6a029"}, + {file = "hiredis-2.3.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:bcbe47da0aebc00a7cfe3ebdcff0373b86ce2b1856251c003e3d69c9db44b5a7"}, + {file = "hiredis-2.3.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f2c9c0d910dd3f7df92f0638e7f65d8edd7f442203caf89c62fc79f11b0b73f8"}, + {file = "hiredis-2.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:01b6c24c0840ac7afafbc4db236fd55f56a9a0919a215c25a238f051781f4772"}, + {file = "hiredis-2.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1f567489f422d40c21e53212a73bef4638d9f21043848150f8544ef1f3a6ad1"}, + {file = "hiredis-2.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28adecb308293e705e44087a1c2d557a816f032430d8a2a9bb7873902a1c6d48"}, + {file = "hiredis-2.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27e9619847e9dc70b14b1ad2d0fb4889e7ca18996585c3463cff6c951fd6b10b"}, + {file = "hiredis-2.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a0026cfbf29f07649b0e34509091a2a6016ff8844b127de150efce1c3aff60b"}, + {file = "hiredis-2.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9de7586522e5da6bee83c9cf0dcccac0857a43249cb4d721a2e312d98a684d1"}, + {file = "hiredis-2.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e58494f282215fc461b06709e9a195a24c12ba09570f25bdf9efb036acc05101"}, + {file = "hiredis-2.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:de3a32b4b76d46f1eb42b24a918d51d8ca52411a381748196241d59a895f7c5c"}, + {file = "hiredis-2.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:1979334ccab21a49c544cd1b8d784ffb2747f99a51cb0bd0976eebb517628382"}, + {file = "hiredis-2.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:0c0773266e1c38a06e7593bd08870ac1503f5f0ce0f5c63f2b4134b090b5d6a4"}, + {file = "hiredis-2.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bd1cee053416183adcc8e6134704c46c60c3f66b8faaf9e65bf76191ca59a2f7"}, + {file = "hiredis-2.3.2-cp38-cp38-win32.whl", hash = "sha256:5341ce3d01ef3c7418a72e370bf028c7aeb16895e79e115fe4c954fff990489e"}, + {file = "hiredis-2.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:8fc7197ff33047ce43a67851ccf190acb5b05c52fd4a001bb55766358f04da68"}, + {file = "hiredis-2.3.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:f47775e27388b58ce52f4f972f80e45b13c65113e9e6b6bf60148f893871dc9b"}, + {file = "hiredis-2.3.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:9412a06b8a8e09abd6313d96864b6d7713c6003a365995a5c70cfb9209df1570"}, + {file = "hiredis-2.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3020b60e3fc96d08c2a9b011f1c2e2a6bdcc09cb55df93c509b88be5cb791df"}, + {file = "hiredis-2.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53d0f2c59bce399b8010a21bc779b4f8c32d0f582b2284ac8c98dc7578b27bc4"}, + {file = "hiredis-2.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57c0d0c7e308ed5280a4900d4468bbfec51f0e1b4cde1deae7d4e639bc6b7766"}, + {file = "hiredis-2.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d63318ca189fddc7e75f6a4af8eae9c0545863619fb38cfba5f43e81280b286"}, + {file = "hiredis-2.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e741ffe4e2db78a1b9dd6e5d29678ce37fbaaf65dfe132e5b82a794413302ef1"}, + {file = "hiredis-2.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb98038ccd368e0d88bd92ee575c58cfaf33e77f788c36b2a89a84ee1936dc6b"}, + {file = "hiredis-2.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:eae62ed60d53b3561148bcd8c2383e430af38c0deab9f2dd15f8874888ffd26f"}, + {file = "hiredis-2.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ca33c175c1cf60222d9c6d01c38fc17ec3a484f32294af781de30226b003e00f"}, + {file = "hiredis-2.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c5f6972d2bdee3cd301d5c5438e31195cf1cabf6fd9274491674d4ceb46914d"}, + {file = "hiredis-2.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a6b54dabfaa5dbaa92f796f0c32819b4636e66aa8e9106c3d421624bd2a2d676"}, + {file = "hiredis-2.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e96cd35df012a17c87ae276196ea8f215e77d6eeca90709eb03999e2d5e3fd8a"}, + {file = "hiredis-2.3.2-cp39-cp39-win32.whl", hash = "sha256:63b99b5ea9fe4f21469fb06a16ca5244307678636f11917359e3223aaeca0b67"}, + {file = "hiredis-2.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:a50c8af811b35b8a43b1590cf890b61ff2233225257a3cad32f43b3ec7ff1b9f"}, + {file = "hiredis-2.3.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7e8bf4444b09419b77ce671088db9f875b26720b5872d97778e2545cd87dba4a"}, + {file = "hiredis-2.3.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bd42d0d45ea47a2f96babd82a659fbc60612ab9423a68e4a8191e538b85542a"}, + {file = "hiredis-2.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80441b55edbef868e2563842f5030982b04349408396e5ac2b32025fb06b5212"}, + {file = "hiredis-2.3.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec444ab8f27562a363672d6a7372bc0700a1bdc9764563c57c5f9efa0e592b5f"}, + {file = "hiredis-2.3.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f9f606e810858207d4b4287b4ef0dc622c2aa469548bf02b59dcc616f134f811"}, + {file = "hiredis-2.3.2-pp37-pypy37_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c3dde4ca00fe9eee3b76209711f1941bb86db42b8a75d7f2249ff9dfc026ab0e"}, + {file = "hiredis-2.3.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4dd676107a1d3c724a56a9d9db38166ad4cf44f924ee701414751bd18a784a0"}, + {file = "hiredis-2.3.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce42649e2676ad783186264d5ffc788a7612ecd7f9effb62d51c30d413a3eefe"}, + {file = "hiredis-2.3.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e3f8b1733078ac663dad57e20060e16389a60ab542f18a97931f3a2a2dd64a4"}, + {file = "hiredis-2.3.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:532a84a82156a82529ec401d1c25d677c6543c791e54a263aa139541c363995f"}, + {file = "hiredis-2.3.2-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4d59f88c4daa36b8c38e59ac7bffed6f5d7f68eaccad471484bf587b28ccc478"}, + {file = "hiredis-2.3.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91a14dd95e24dc078204b18b0199226ee44644974c645dc54ee7b00c3157330"}, + {file = "hiredis-2.3.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb777a38797c8c7df0444533119570be18d1a4ce5478dffc00c875684df7bfcb"}, + {file = "hiredis-2.3.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d47c915897a99d0d34a39fad4be97b4b709ab3d0d3b779ebccf2b6024a8c681e"}, + {file = "hiredis-2.3.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:333b5e04866758b11bda5f5315b4e671d15755fc6ed3b7969721bc6311d0ee36"}, + {file = "hiredis-2.3.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c8937f1100435698c18e4da086968c4b5d70e86ea718376f833475ab3277c9aa"}, + {file = "hiredis-2.3.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa45f7d771094b8145af10db74704ab0f698adb682fbf3721d8090f90e42cc49"}, + {file = "hiredis-2.3.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33d5ebc93c39aed4b5bc769f8ce0819bc50e74bb95d57a35f838f1c4378978e0"}, + {file = "hiredis-2.3.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a797d8c7df9944314d309b0d9e1b354e2fa4430a05bb7604da13b6ad291bf959"}, + {file = "hiredis-2.3.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e15a408f71a6c8c87b364f1f15a6cd9c1baca12bbc47a326ac8ab99ec7ad3c64"}, + {file = "hiredis-2.3.2.tar.gz", hash = "sha256:733e2456b68f3f126ddaf2cd500a33b25146c3676b97ea843665717bda0c5d43"}, ] [[package]] @@ -1395,24 +1419,24 @@ yaml = ["pyyaml (==6.0.1)"] [[package]] name = "httpcore" -version = "0.18.0" +version = "1.0.4" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpcore-0.18.0-py3-none-any.whl", hash = "sha256:adc5398ee0a476567bf87467063ee63584a8bce86078bf748e48754f60202ced"}, - {file = "httpcore-0.18.0.tar.gz", hash = "sha256:13b5e5cd1dca1a6636a6aaea212b19f4f85cd88c366a2b82304181b769aab3c9"}, + {file = "httpcore-1.0.4-py3-none-any.whl", hash = "sha256:ac418c1db41bade2ad53ae2f3834a3a0f5ae76b56cf5aa497d2d033384fc7d73"}, + {file = "httpcore-1.0.4.tar.gz", hash = "sha256:cb2839ccfcba0d2d3c1131d3c3e26dfc327326fbe7a5dc0dbfe9f6c9151bb022"}, ] [package.dependencies] -anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = "==1.*" [package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.25.0)"] [[package]] name = "httptools" @@ -1464,18 +1488,19 @@ test = ["Cython (>=0.29.24,<0.30.0)"] [[package]] name = "httpx" -version = "0.25.0" +version = "0.27.0" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" files = [ - {file = "httpx-0.25.0-py3-none-any.whl", hash = "sha256:181ea7f8ba3a82578be86ef4171554dd45fec26a02556a744db029a0a27b7100"}, - {file = "httpx-0.25.0.tar.gz", hash = "sha256:47ecda285389cb32bb2691cc6e069e3ab0205956f681c5b2ad2325719751d875"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [package.dependencies] +anyio = "*" certifi = "*" -httpcore = ">=0.18.0,<0.19.0" +httpcore = "==1.*" idna = "*" sniffio = "*" @@ -1594,13 +1619,13 @@ files = [ [[package]] name = "jsonschema" -version = "4.19.1" +version = "4.21.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, - {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, + {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, + {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, ] [package.dependencies] @@ -1615,27 +1640,27 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-specifications" -version = "2023.7.1" +version = "2023.12.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"}, - {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"}, + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, ] [package.dependencies] -referencing = ">=0.28.0" +referencing = ">=0.31.0" [[package]] name = "markdown" -version = "3.5" +version = "3.5.2" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "Markdown-3.5-py3-none-any.whl", hash = "sha256:4afb124395ce5fc34e6d9886dab977fd9ae987fc6e85689f08278cf0c69d4bf3"}, - {file = "Markdown-3.5.tar.gz", hash = "sha256:a807eb2e4778d9156c8f07876c6e4d50b5494c5665c4834f67b06459dfd877b3"}, + {file = "Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd"}, + {file = "Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"}, ] [package.extras] @@ -1668,71 +1693,71 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1834,13 +1859,13 @@ recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2. [[package]] name = "mkdocs-material-extensions" -version = "1.3" +version = "1.3.1" description = "Extension pack for Python Markdown and MkDocs Material." optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, - {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] [[package]] @@ -1856,13 +1881,13 @@ files = [ [[package]] name = "mypy-boto3-ec2" -version = "1.34.0" -description = "Type annotations for boto3.EC2 1.34.0 service generated with mypy-boto3-builder 7.21.0" +version = "1.34.54" +description = "Type annotations for boto3.EC2 1.34.54 service generated with mypy-boto3-builder 7.23.2" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-boto3-ec2-1.34.0.tar.gz", hash = "sha256:f19d4fe9b4ae4173af6ec841d1d2d38e53b0c5eec4f4e6fcbad06d0658e13070"}, - {file = "mypy_boto3_ec2-1.34.0-py3-none-any.whl", hash = "sha256:678f58876bcbb21fcae455ed1ba75a542c026a36b0dd464dae7b379afdcecd52"}, + {file = "mypy-boto3-ec2-1.34.54.tar.gz", hash = "sha256:ce34c2d7741be1918caf5b46cafb0cb7b1f6ac81ec6fbd8846bbe85c93d43101"}, + {file = "mypy_boto3_ec2-1.34.54-py3-none-any.whl", hash = "sha256:f36180ea33bad6626ff5302def1250eeb6612fafa15a56d269190d33d5a42093"}, ] [package.dependencies] @@ -1971,29 +1996,29 @@ files = [ [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "platformdirs" -version = "3.11.0" +version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] [[package]] name = "pluggy" @@ -2012,13 +2037,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "proto-plus" -version = "1.22.3" +version = "1.23.0" description = "Beautiful, Pythonic protocol buffers." optional = false python-versions = ">=3.6" files = [ - {file = "proto-plus-1.22.3.tar.gz", hash = "sha256:fdcd09713cbd42480740d2fe29c990f7fbd885a67efc328aa8be6ee3e9f76a6b"}, - {file = "proto_plus-1.22.3-py3-none-any.whl", hash = "sha256:a49cd903bc0b6ab41f76bf65510439d56ca76f868adf0274e738bfdd096894df"}, + {file = "proto-plus-1.23.0.tar.gz", hash = "sha256:89075171ef11988b3fa157f5dbd8b9cf09d65fffee97e29ce403cd8defba19d2"}, + {file = "proto_plus-1.23.0-py3-none-any.whl", hash = "sha256:a829c79e619e1cf632de091013a4173deed13a55f326ef84f05af6f50ff4c82c"}, ] [package.dependencies] @@ -2029,35 +2054,33 @@ testing = ["google-api-core[grpc] (>=1.31.5)"] [[package]] name = "protobuf" -version = "4.24.4" +version = "4.25.3" description = "" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "protobuf-4.24.4-cp310-abi3-win32.whl", hash = "sha256:ec9912d5cb6714a5710e28e592ee1093d68c5ebfeda61983b3f40331da0b1ebb"}, - {file = "protobuf-4.24.4-cp310-abi3-win_amd64.whl", hash = "sha256:1badab72aa8a3a2b812eacfede5020472e16c6b2212d737cefd685884c191085"}, - {file = "protobuf-4.24.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e61a27f362369c2f33248a0ff6896c20dcd47b5d48239cb9720134bef6082e4"}, - {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:bffa46ad9612e6779d0e51ae586fde768339b791a50610d85eb162daeb23661e"}, - {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b493cb590960ff863743b9ff1452c413c2ee12b782f48beca77c8da3e2ffe9d9"}, - {file = "protobuf-4.24.4-cp37-cp37m-win32.whl", hash = "sha256:dbbed8a56e56cee8d9d522ce844a1379a72a70f453bde6243e3c86c30c2a3d46"}, - {file = "protobuf-4.24.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6b7d2e1c753715dcfe9d284a25a52d67818dd43c4932574307daf836f0071e37"}, - {file = "protobuf-4.24.4-cp38-cp38-win32.whl", hash = "sha256:02212557a76cd99574775a81fefeba8738d0f668d6abd0c6b1d3adcc75503dbe"}, - {file = "protobuf-4.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:2fa3886dfaae6b4c5ed2730d3bf47c7a38a72b3a1f0acb4d4caf68e6874b947b"}, - {file = "protobuf-4.24.4-cp39-cp39-win32.whl", hash = "sha256:b77272f3e28bb416e2071186cb39efd4abbf696d682cbb5dc731308ad37fa6dd"}, - {file = "protobuf-4.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:9fee5e8aa20ef1b84123bb9232b3f4a5114d9897ed89b4b8142d81924e05d79b"}, - {file = "protobuf-4.24.4-py3-none-any.whl", hash = "sha256:80797ce7424f8c8d2f2547e2d42bfbb6c08230ce5832d6c099a37335c9c90a92"}, - {file = "protobuf-4.24.4.tar.gz", hash = "sha256:5a70731910cd9104762161719c3d883c960151eea077134458503723b60e3667"}, + {file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa"}, + {file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8"}, + {file = "protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019"}, + {file = "protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d"}, + {file = "protobuf-4.25.3-cp38-cp38-win32.whl", hash = "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2"}, + {file = "protobuf-4.25.3-cp38-cp38-win_amd64.whl", hash = "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4"}, + {file = "protobuf-4.25.3-cp39-cp39-win32.whl", hash = "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4"}, + {file = "protobuf-4.25.3-cp39-cp39-win_amd64.whl", hash = "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c"}, + {file = "protobuf-4.25.3-py3-none-any.whl", hash = "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9"}, + {file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"}, ] [[package]] name = "pyasn1" -version = "0.5.0" +version = "0.5.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"}, - {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"}, + {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, + {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, ] [[package]] @@ -2139,17 +2162,18 @@ email = ["email-validator (>=1.0.3)"] [[package]] name = "pygments" -version = "2.16.1" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyjwt" @@ -2173,22 +2197,40 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pymdown-extensions" -version = "10.3.1" +version = "10.7.1" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, - {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, + {file = "pymdown_extensions-10.7.1-py3-none-any.whl", hash = "sha256:f5cc7000d7ff0d1ce9395d216017fa4df3dde800afb1fb72d1c7d3fd35e710f4"}, + {file = "pymdown_extensions-10.7.1.tar.gz", hash = "sha256:c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584"}, ] [package.dependencies] -markdown = ">=3.2" +markdown = ">=3.5" pyyaml = "*" [package.extras] extra = ["pygments (>=2.12)"] +[[package]] +name = "pyopenssl" +version = "24.0.0" +description = "Python wrapper module around the OpenSSL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyOpenSSL-24.0.0-py3-none-any.whl", hash = "sha256:ba07553fb6fd6a7a2259adb9b84e12302a9a8a75c44046e8bb5d3e5ee887e3c3"}, + {file = "pyOpenSSL-24.0.0.tar.gz", hash = "sha256:6aa33039a93fffa4563e655b61d11364d01264be8ccb49906101e02a334530bf"}, +] + +[package.dependencies] +cryptography = ">=41.0.5,<43" + +[package.extras] +docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"] +test = ["flaky", "pretend", "pytest (>=3.0.1)"] + [[package]] name = "pyright" version = "1.1.362" @@ -2247,13 +2289,13 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -2261,13 +2303,13 @@ six = ">=1.5" [[package]] name = "python-dotenv" -version = "1.0.0" +version = "1.0.1" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false python-versions = ">=3.8" files = [ - {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, - {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, ] [package.extras] @@ -2275,17 +2317,17 @@ cli = ["click (>=5.0)"] [[package]] name = "python-multipart" -version = "0.0.7" +version = "0.0.9" description = "A streaming multipart parser for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "python_multipart-0.0.7-py3-none-any.whl", hash = "sha256:b1fef9a53b74c795e2347daac8c54b252d9e0df9c619712691c1cc8021bd3c49"}, - {file = "python_multipart-0.0.7.tar.gz", hash = "sha256:288a6c39b06596c1b988bb6794c6fbc80e6c369e35e5062637df256bee0c9af9"}, + {file = "python_multipart-0.0.9-py3-none-any.whl", hash = "sha256:97ca7b8ea7b05f977dc3849c3ba99d51689822fab725c3703af7c866a0c2b215"}, + {file = "python_multipart-0.0.9.tar.gz", hash = "sha256:03f54688c663f1b7977105f021043b0793151e4cb1c1a9d4a11fc13d622c4026"}, ] [package.extras] -dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==2.2.0)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pyyaml (==5.1)"] +dev = ["atomicwrites (==1.4.1)", "attrs (==23.2.0)", "coverage (==7.4.1)", "hatch", "invoke (==2.2.0)", "more-itertools (==10.2.0)", "pbr (==6.0.0)", "pluggy (==1.4.0)", "py (==1.11.0)", "pytest (==8.0.0)", "pytest-cov (==4.1.0)", "pytest-timeout (==2.2.0)", "pyyaml (==6.0.1)", "ruff (==0.2.1)"] [[package]] name = "python-ulid" @@ -2298,6 +2340,22 @@ files = [ {file = "python_ulid-1.1.0-py3-none-any.whl", hash = "sha256:88c952f6be133dbede19c907d72d26717d2691ec8421512b573144794d891e24"}, ] +[[package]] +name = "pyvmomi" +version = "8.0.2.0.1" +description = "VMware vSphere Python SDK" +optional = false +python-versions = ">=2.7.9, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pyvmomi-8.0.2.0.1.tar.gz", hash = "sha256:791c4d93252e3c0896fecae8d785f8342b123672e7cae9c5548a639b9bf668ad"}, +] + +[package.dependencies] +six = ">=1.7.3" + +[package.extras] +sso = ["lxml", "pyOpenSSL", "pywin32"] + [[package]] name = "pywin32" version = "306" @@ -2437,13 +2495,13 @@ typing-extensions = ">=4.4.0,<5.0.0" [[package]] name = "referencing" -version = "0.30.2" +version = "0.33.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, - {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, ] [package.dependencies] @@ -2452,99 +2510,104 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2023.10.3" +version = "2023.12.25" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.7" files = [ - {file = "regex-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc"}, - {file = "regex-2023.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55"}, - {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a"}, - {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a"}, - {file = "regex-2023.10.3-cp310-cp310-win32.whl", hash = "sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec"}, - {file = "regex-2023.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353"}, - {file = "regex-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e"}, - {file = "regex-2023.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac"}, - {file = "regex-2023.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6"}, - {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54"}, - {file = "regex-2023.10.3-cp311-cp311-win32.whl", hash = "sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2"}, - {file = "regex-2023.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c"}, - {file = "regex-2023.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037"}, - {file = "regex-2023.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841"}, - {file = "regex-2023.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292"}, - {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, - {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, - {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, - {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, - {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, - {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, - {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, - {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, - {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, - {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, - {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f"}, + {file = "regex-2023.12.25-cp310-cp310-win32.whl", hash = "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630"}, + {file = "regex-2023.12.25-cp310-cp310-win_amd64.whl", hash = "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4"}, + {file = "regex-2023.12.25-cp311-cp311-win32.whl", hash = "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87"}, + {file = "regex-2023.12.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d"}, + {file = "regex-2023.12.25-cp312-cp312-win32.whl", hash = "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5"}, + {file = "regex-2023.12.25-cp312-cp312-win_amd64.whl", hash = "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232"}, + {file = "regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39"}, + {file = "regex-2023.12.25-cp37-cp37m-win32.whl", hash = "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c"}, + {file = "regex-2023.12.25-cp37-cp37m-win_amd64.whl", hash = "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2"}, + {file = "regex-2023.12.25-cp38-cp38-win32.whl", hash = "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb"}, + {file = "regex-2023.12.25-cp38-cp38-win_amd64.whl", hash = "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20"}, + {file = "regex-2023.12.25-cp39-cp39-win32.whl", hash = "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9"}, + {file = "regex-2023.12.25-cp39-cp39-win_amd64.whl", hash = "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91"}, + {file = "regex-2023.12.25.tar.gz", hash = "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"}, ] [[package]] @@ -2588,110 +2651,110 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.10.6" +version = "0.18.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"}, - {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"}, - {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"}, - {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"}, - {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"}, - {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"}, - {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"}, - {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"}, - {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"}, - {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"}, - {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"}, - {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"}, - {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, + {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, + {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, + {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, + {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, + {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, + {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, + {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, + {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, + {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, + {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, ] [[package]] @@ -2768,20 +2831,20 @@ files = [ [[package]] name = "s3transfer" -version = "0.7.0" +version = "0.10.0" description = "An Amazon S3 Transfer Manager" optional = false -python-versions = ">= 3.7" +python-versions = ">= 3.8" files = [ - {file = "s3transfer-0.7.0-py3-none-any.whl", hash = "sha256:10d6923c6359175f264811ef4bf6161a3156ce8e350e705396a7557d6293c33a"}, - {file = "s3transfer-0.7.0.tar.gz", hash = "sha256:fd3889a66f5fe17299fe75b82eae6cf722554edca744ca5d5fe308b104883d2e"}, + {file = "s3transfer-0.10.0-py3-none-any.whl", hash = "sha256:3cdb40f5cfa6966e812209d0994f2a4709b561c88e90cf00c2696d2df4e56b2e"}, + {file = "s3transfer-0.10.0.tar.gz", hash = "sha256:d0c8bbf672d5eebbe4e57945e23b972d963f07d82f661cabf678a5c88831595b"}, ] [package.dependencies] -botocore = ">=1.12.36,<2.0a.0" +botocore = ">=1.33.2,<2.0a.0" [package.extras] -crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] +crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] [[package]] name = "setuptools" @@ -2823,13 +2886,13 @@ files = [ [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -2879,24 +2942,24 @@ typing-extensions = ">=3.7.4.3" [[package]] name = "types-awscrt" -version = "0.19.3" +version = "0.20.5" description = "Type annotations and code completion for awscrt" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "types_awscrt-0.19.3-py3-none-any.whl", hash = "sha256:7b55f5a12ccd4407bc8f1e35c69bb40c931f8513ce1ad81a4527fce3989003fd"}, - {file = "types_awscrt-0.19.3.tar.gz", hash = "sha256:9a21caac4287c113dd52665707785c45bb1d3242b7a2b8aeb57c49e9e749a330"}, + {file = "types_awscrt-0.20.5-py3-none-any.whl", hash = "sha256:79d5bfb01f64701b6cf442e89a37d9c4dc6dbb79a46f2f611739b2418d30ecfd"}, + {file = "types_awscrt-0.20.5.tar.gz", hash = "sha256:61811bbf4de95248939f9276a434be93d2b95f6ccfe8aa94e56999e9778cfcc2"}, ] [[package]] name = "types-pyopenssl" -version = "23.2.0.2" +version = "24.0.0.20240228" description = "Typing stubs for pyOpenSSL" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-pyOpenSSL-23.2.0.2.tar.gz", hash = "sha256:6a010dac9ecd42b582d7dd2cc3e9e40486b79b3b64bb2fffba1474ff96af906d"}, - {file = "types_pyOpenSSL-23.2.0.2-py3-none-any.whl", hash = "sha256:19536aa3debfbe25a918cf0d898e9f5fbbe6f3594a429da7914bf331deb1b342"}, + {file = "types-pyOpenSSL-24.0.0.20240228.tar.gz", hash = "sha256:cd990717d8aa3743ef0e73e0f462e64b54d90c304249232d48fece4f0f7c3c6a"}, + {file = "types_pyOpenSSL-24.0.0.20240228-py3-none-any.whl", hash = "sha256:a472cf877a873549175e81972f153f44e975302a3cf17381eb5f3d41ccfb75a4"}, ] [package.dependencies] @@ -2919,24 +2982,24 @@ types-pyOpenSSL = "*" [[package]] name = "types-s3transfer" -version = "0.7.0" +version = "0.10.0" description = "Type annotations and code completion for s3transfer" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "types_s3transfer-0.7.0-py3-none-any.whl", hash = "sha256:ae9ed9273465d9f43da8b96307383da410c6b59c3b2464c88d20b578768e97c6"}, - {file = "types_s3transfer-0.7.0.tar.gz", hash = "sha256:aca0f2486d0a3a5037cd5b8f3e20a4522a29579a8dd183281ff0aa1c4e2c8aa7"}, + {file = "types_s3transfer-0.10.0-py3-none-any.whl", hash = "sha256:44fcdf0097b924a9aab1ee4baa1179081a9559ca62a88c807e2b256893ce688f"}, + {file = "types_s3transfer-0.10.0.tar.gz", hash = "sha256:35e4998c25df7f8985ad69dedc8e4860e8af3b43b7615e940d53c00d413bdc69"}, ] [[package]] name = "typing-extensions" -version = "4.8.0" +version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] @@ -3057,87 +3120,125 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", [[package]] name = "uvloop" -version = "0.18.0" +version = "0.19.0" description = "Fast implementation of asyncio event loop on top of libuv" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "uvloop-0.18.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1f354d669586fca96a9a688c585b6257706d216177ac457c92e15709acaece10"}, - {file = "uvloop-0.18.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:280904236a5b333a273292b3bcdcbfe173690f69901365b973fa35be302d7781"}, - {file = "uvloop-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad79cd30c7e7484bdf6e315f3296f564b3ee2f453134a23ffc80d00e63b3b59e"}, - {file = "uvloop-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99deae0504547d04990cc5acf631d9f490108c3709479d90c1dcd14d6e7af24d"}, - {file = "uvloop-0.18.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:edbb4de38535f42f020da1e3ae7c60f2f65402d027a08a8c60dc8569464873a6"}, - {file = "uvloop-0.18.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:54b211c46facb466726b227f350792770fc96593c4ecdfaafe20dc00f3209aef"}, - {file = "uvloop-0.18.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:25b714f07c68dcdaad6994414f6ec0f2a3b9565524fba181dcbfd7d9598a3e73"}, - {file = "uvloop-0.18.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1121087dfeb46e9e65920b20d1f46322ba299b8d93f7cb61d76c94b5a1adc20c"}, - {file = "uvloop-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74020ef8061678e01a40c49f1716b4f4d1cc71190d40633f08a5ef8a7448a5c6"}, - {file = "uvloop-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f4a549cd747e6f4f8446f4b4c8cb79504a8372d5d3a9b4fc20e25daf8e76c05"}, - {file = "uvloop-0.18.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6132318e1ab84a626639b252137aa8d031a6c0550250460644c32ed997604088"}, - {file = "uvloop-0.18.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:585b7281f9ea25c4a5fa993b1acca4ad3d8bc3f3fe2e393f0ef51b6c1bcd2fe6"}, - {file = "uvloop-0.18.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:61151cc207cf5fc88863e50de3d04f64ee0fdbb979d0b97caf21cae29130ed78"}, - {file = "uvloop-0.18.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c65585ae03571b73907b8089473419d8c0aff1e3826b3bce153776de56cbc687"}, - {file = "uvloop-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3d301e23984dcbc92d0e42253e0e0571915f0763f1eeaf68631348745f2dccc"}, - {file = "uvloop-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:680da98f12a7587f76f6f639a8aa7708936a5d17c5e7db0bf9c9d9cbcb616593"}, - {file = "uvloop-0.18.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:75baba0bfdd385c886804970ae03f0172e0d51e51ebd191e4df09b929771b71e"}, - {file = "uvloop-0.18.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ed3c28337d2fefc0bac5705b9c66b2702dc392f2e9a69badb1d606e7e7f773bb"}, - {file = "uvloop-0.18.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8849b8ef861431543c07112ad8436903e243cdfa783290cbee3df4ce86d8dd48"}, - {file = "uvloop-0.18.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:211ce38d84118ae282a91408f61b85cf28e2e65a0a8966b9a97e0e9d67c48722"}, - {file = "uvloop-0.18.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0a8f706b943c198dcedf1f2fb84899002c195c24745e47eeb8f2fb340f7dfc3"}, - {file = "uvloop-0.18.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:58e44650cbc8607a218caeece5a689f0a2d10be084a69fc32f7db2e8f364927c"}, - {file = "uvloop-0.18.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b8b7cf7806bdc745917f84d833f2144fabcc38e9cd854e6bc49755e3af2b53e"}, - {file = "uvloop-0.18.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:56c1026a6b0d12b378425e16250acb7d453abaefe7a2f5977143898db6cfe5bd"}, - {file = "uvloop-0.18.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:12af0d2e1b16780051d27c12de7e419b9daeb3516c503ab3e98d364cc55303bb"}, - {file = "uvloop-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b028776faf9b7a6d0a325664f899e4c670b2ae430265189eb8d76bd4a57d8a6e"}, - {file = "uvloop-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53aca21735eee3859e8c11265445925911ffe410974f13304edb0447f9f58420"}, - {file = "uvloop-0.18.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:847f2ed0887047c63da9ad788d54755579fa23f0784db7e752c7cf14cf2e7506"}, - {file = "uvloop-0.18.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6e20bb765fcac07879cd6767b6dca58127ba5a456149717e0e3b1f00d8eab51c"}, - {file = "uvloop-0.18.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e14de8800765b9916d051707f62e18a304cde661fa2b98a58816ca38d2b94029"}, - {file = "uvloop-0.18.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f3b18663efe0012bc4c315f1b64020e44596f5fabc281f5b0d9bc9465288559c"}, - {file = "uvloop-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6d341bc109fb8ea69025b3ec281fcb155d6824a8ebf5486c989ff7748351a37"}, - {file = "uvloop-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:895a1e3aca2504638a802d0bec2759acc2f43a0291a1dff886d69f8b7baff399"}, - {file = "uvloop-0.18.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d90858f32a852988d33987d608bcfba92a1874eb9f183995def59a34229f30d"}, - {file = "uvloop-0.18.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db1fcbad5deb9551e011ca589c5e7258b5afa78598174ac37a5f15ddcfb4ac7b"}, - {file = "uvloop-0.18.0.tar.gz", hash = "sha256:d5d1135beffe9cd95d0350f19e2716bc38be47d5df296d7cc46e3b7557c0d1ff"}, + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"}, + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b1fd71c3843327f3bbc3237bedcdb6504fd50368ab3e04d0410e52ec293f5b8"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a05128d315e2912791de6088c34136bfcdd0c7cbc1cf85fd6fd1bb321b7c849"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cd81bdc2b8219cb4b2556eea39d2e36bfa375a2dd021404f90a62e44efaaf957"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f17766fb6da94135526273080f3455a112f82570b2ee5daa64d682387fe0dcd"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4ce6b0af8f2729a02a5d1575feacb2a94fc7b2e983868b009d51c9a9d2149bef"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:31e672bb38b45abc4f26e273be83b72a0d28d074d5b370fc4dcf4c4eb15417d2"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:570fc0ed613883d8d30ee40397b79207eedd2624891692471808a95069a007c1"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5138821e40b0c3e6c9478643b4660bd44372ae1e16a322b8fc07478f92684e24"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:91ab01c6cd00e39cde50173ba4ec68a1e578fee9279ba64f5221810a9e786533"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:47bf3e9312f63684efe283f7342afb414eea4d3011542155c7e625cd799c3b12"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:da8435a3bd498419ee8c13c34b89b5005130a476bda1d6ca8cfdde3de35cd650"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:02506dc23a5d90e04d4f65c7791e65cf44bd91b37f24cfc3ef6cf2aff05dc7ec"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2693049be9d36fef81741fddb3f441673ba12a34a704e7b4361efb75cf30befc"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7010271303961c6f0fe37731004335401eb9075a12680738731e9c92ddd96ad6"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5daa304d2161d2918fa9a17d5635099a2f78ae5b5960e742b2fcfbb7aefaa593"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7207272c9520203fea9b93843bb775d03e1cf88a80a936ce760f60bb5add92f3"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:78ab247f0b5671cc887c31d33f9b3abfb88d2614b84e4303f1a63b46c046c8bd"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:472d61143059c84947aa8bb74eabbace30d577a03a1805b77933d6bd13ddebbd"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45bf4c24c19fb8a50902ae37c5de50da81de4922af65baf760f7c0c42e1088be"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271718e26b3e17906b28b67314c45d19106112067205119dddbd834c2b7ce797"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:34175c9fd2a4bc3adc1380e1261f60306344e3407c20a4d684fd5f3be010fa3d"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e27f100e1ff17f6feeb1f33968bc185bf8ce41ca557deee9d9bbbffeb72030b7"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13dfdf492af0aa0a0edf66807d2b465607d11c4fa48f4a1fd41cbea5b18e8e8b"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e3d4e85ac060e2342ff85e90d0c04157acb210b9ce508e784a944f852a40e67"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca4956c9ab567d87d59d49fa3704cf29e37109ad348f2d5223c9bf761a332e7"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f467a5fd23b4fc43ed86342641f3936a68ded707f4627622fa3f82a120e18256"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:492e2c32c2af3f971473bc22f086513cedfc66a130756145a931a90c3958cb17"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2df95fca285a9f5bfe730e51945ffe2fa71ccbfdde3b0da5772b4ee4f2e770d5"}, + {file = "uvloop-0.19.0.tar.gz", hash = "sha256:0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd"}, ] [package.extras] docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] +[[package]] +name = "vapi-runtime" +version = "2.40.0" +description = "vAPI Runtime" +optional = false +python-versions = "*" +files = [ + {file = "vapi_runtime-2.40.0-py2.py3-none-any.whl", hash = "sha256:89ac5f61858d6a3a452b8ba28e64da7956aeb25e530ee17d1ad1c6c256df49f6"}, +] + +[package.dependencies] +pyOpenSSL = "*" +requests = ">=2.0.0,<3.0.0" +six = ">=1.0.0,<2.0.0" + +[package.extras] +server = ["lxml (>=4.3.0)", "urllib3 (>=1.25.1)", "werkzeug (>=0.14.1)"] +twisted = ["lxml (>=4.3.0)", "service-identity (>=18.0.0)", "twisted (>=18.0.0)", "urllib3 (>=1.25.1)", "werkzeug (>=0.14.1)"] + +[package.source] +type = "url" +url = "https://raw.githubusercontent.com/vmware/vsphere-automation-sdk-python/v8.0.1.0/lib/vapi-runtime/vapi_runtime-2.40.0-py2.py3-none-any.whl" + +[[package]] +name = "vcenter-bindings" +version = "4.1.0" +description = "vapi client bindings for VMware vSphere Automation" +optional = false +python-versions = "*" +files = [ + {file = "vcenter_bindings-4.1.0-py2.py3-none-any.whl", hash = "sha256:3019a76128019e2b31066e03307eff415e8d34e96ac5589c81e73dbac3834cc3"}, +] + +[package.dependencies] +setuptools = "*" +vapi-runtime = ">=2.9.0" + +[package.source] +type = "url" +url = "https://raw.githubusercontent.com/vmware/vsphere-automation-sdk-python/v8.0.1.0/lib/vcenter-bindings/vcenter_bindings-4.1.0-py2.py3-none-any.whl" + [[package]] name = "watchdog" -version = "3.0.0" +version = "4.0.0" description = "Filesystem events monitoring" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, - {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, - {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, - {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, - {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, - {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, - {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, - {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, - {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"}, + {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, + {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, + {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, + {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, + {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, + {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, + {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, ] [package.extras] @@ -3232,81 +3333,83 @@ anyio = ">=3.0.0" [[package]] name = "websockets" -version = "11.0.3" +version = "12.0" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526"}, - {file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69"}, - {file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd"}, - {file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c"}, - {file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8"}, - {file = "websockets-11.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f59a3c656fef341a99e3d63189852be7084c0e54b75734cde571182c087b152"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2529338a6ff0eb0b50c7be33dc3d0e456381157a31eefc561771ee431134a97f"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fd59a4ac42dff6d4681d8843217137f6bc85ed29722f2f7222bd619d15e95b"}, - {file = "websockets-11.0.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:332d126167ddddec94597c2365537baf9ff62dfcc9db4266f263d455f2f031cb"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6505c1b31274723ccaf5f515c1824a4ad2f0d191cec942666b3d0f3aa4cb4007"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f467ba0050b7de85016b43f5a22b46383ef004c4f672148a8abf32bc999a87f0"}, - {file = "websockets-11.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9d9acd80072abcc98bd2c86c3c9cd4ac2347b5a5a0cae7ed5c0ee5675f86d9af"}, - {file = "websockets-11.0.3-cp37-cp37m-win32.whl", hash = "sha256:e590228200fcfc7e9109509e4d9125eace2042fd52b595dd22bbc34bb282307f"}, - {file = "websockets-11.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:b16fff62b45eccb9c7abb18e60e7e446998093cdcb50fed33134b9b6878836de"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788"}, - {file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74"}, - {file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311"}, - {file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128"}, - {file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602"}, - {file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"}, - {file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, + {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, + {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, + {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, + {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, + {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, + {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, + {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, + {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, + {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, + {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, + {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, + {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, + {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, + {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, + {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, + {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, + {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, + {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, + {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, + {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, + {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, + {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, + {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, ] [[package]] @@ -3347,4 +3450,4 @@ dev = ["doc8", "flake8", "flake8-import-order", "rstcheck[sphinx]", "sphinx"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "c96d7c8e6f21d5a159eb6ee834eefb1a81a602d3913e02e4afa4c1c1107d0f7c" +content-hash = "5bfdac7ebefb52fb42fe437159f8f73ece1b378498f08226b5804a7aa8d90023" diff --git a/pyproject.toml b/pyproject.toml index 531dbfcb..8a0d57b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,9 @@ botocore = "^1.31.85" boto3-stubs = { extras = ["ec2"], version = "^1.34.104" } githubkit = { extras = ["auth-app"], version = "^0.11.4" } rq-scheduler = "^0.13.1" +pyvmomi = "^8.0.2.0.1" +vapi-runtime = { url = "https://raw.githubusercontent.com/vmware/vsphere-automation-sdk-python/v8.0.1.0/lib/vapi-runtime/vapi_runtime-2.40.0-py2.py3-none-any.whl" } +vcenter-bindings = { url = "https://raw.githubusercontent.com/vmware/vsphere-automation-sdk-python/v8.0.1.0/lib/vcenter-bindings/vcenter_bindings-4.1.0-py2.py3-none-any.whl" } [tool.poetry.group.docs] diff --git a/runner_manager/backend/vsphere.py b/runner_manager/backend/vsphere.py new file mode 100644 index 00000000..60a568b9 --- /dev/null +++ b/runner_manager/backend/vsphere.py @@ -0,0 +1,178 @@ +import logging +from base64 import b64encode +from typing import List, Literal + +from com.vmware.content.library_client import Item +from com.vmware.content_client import Library +from com.vmware.vcenter.ovf_client import ( + DiskProvisioningType, + LibraryItem, + Property, + PropertyParams, +) +from com.vmware.vcenter.vm_client import Power +from com.vmware.vcenter_client import Datacenter, ResourcePool +from pydantic import Field +from requests import Session +from vmware.vapi.vsphere.client import VsphereClient, create_vsphere_client + +from runner_manager.backend.base import BaseBackend +from runner_manager.models.backend import Backends, VsphereConfig, VsphereInstanceConfig +from runner_manager.models.runner import Runner + +log = logging.getLogger(__name__) + + +class VsphereBackend(BaseBackend): + name: Literal[Backends.vsphere] = Field(default=Backends.vsphere) + config: VsphereConfig + instance_config: VsphereInstanceConfig + + def _create_client(self) -> VsphereClient: + session = Session() + session.verify = self.config.verify_ssl + return create_vsphere_client( + server=self.config.server, + username=self.config.username, + password=self.config.password, + session=session, + ) + + def get_library_id(self, client: VsphereClient, library: str) -> str: + find_spec = Library.FindSpec(name=library) + library_ids: List[str] = client.content.Library.find(find_spec) + if len(library_ids) == 0: + raise Exception("Library with name '{0}' not found".format(library)) + library_id: str = library_ids[0] + return library_id + + def get_library_item_id( + self, client: VsphereClient, template: str, library_id: str + ): + find_spec = Item.FindSpec( + name=template, + library_id=library_id, + ) + item_ids = client.content.library.Item.find(find_spec) + item_id = item_ids[0] if item_ids else None + if item_id: + log.debug("Library item ID: {0}".format(item_id)) + else: + raise Exception("Library item with name '{0}' not found".format(template)) + return item_id + + def get_datacenter(self, client, datacenter_name): + """ + Returns the identifier of a datacenter + Note: The method assumes only one datacenter with the mentioned name. + """ + + filter_spec = Datacenter.FilterSpec(names=set([datacenter_name])) + + datacenter_summaries = client.vcenter.Datacenter.list(filter_spec) + if len(datacenter_summaries) > 0: + datacenter = datacenter_summaries[0].datacenter + return datacenter + else: + return None + + def get_resource_pool(self, client, datacenter_name, resource_pool_name=None): + """ + Returns the identifier of the resource pool with the given name or the + first resource pool in the datacenter if the name is not provided. + """ + datacenter = self.get_datacenter(client, datacenter_name) + if not datacenter: + log.error("Datacenter '{}' not found".format(datacenter_name)) + return None + + names = set([resource_pool_name]) if resource_pool_name else None + filter_spec = ResourcePool.FilterSpec( + datacenters=set([datacenter]), names=names + ) + + resource_pool_summaries = client.vcenter.ResourcePool.list(filter_spec) + if len(resource_pool_summaries) > 0: + resource_pool = resource_pool_summaries[0].resource_pool + log.debug("Selecting ResourcePool '{}'".format(resource_pool)) + return resource_pool + else: + log.error( + "ResourcePool not found in Datacenter '{}'".format(datacenter_name) + ) + return None + + def create(self, runner: Runner) -> Runner: + client: VsphereClient = self._create_client() + library_id = self.get_library_id(client, self.instance_config.library) + library_item_id = self.get_library_item_id( + client, self.instance_config.library_item, library_id + ) + resource_pool_id = self.get_resource_pool( + client, self.instance_config.datacenter + ) + deployment_target = LibraryItem.DeploymentTarget( + resource_pool_id=resource_pool_id, + ) + + ovf = client.vcenter.ovf.LibraryItem.filter( + library_item_id, + deployment_target, + ) + user_data = b64encode(self.instance_config.template_startup(runner).encode()) + params = PropertyParams( + properties=[ + Property(id="user-data", value=user_data.decode()), + Property(id="hostname", value=runner.name), + Property(id="instance-id", value=runner.name), + ], + type="PropertyParams", + ) + for param in ovf.additional_params: + if param.to_dict().get("type") == "PropertyParams": + ovf.additional_params.remove(param) + ovf.additional_params.append(params) + + deployment_spec = LibraryItem.ResourcePoolDeploymentSpec( + name=runner.name, + annotation=ovf.annotation, + accept_all_eula=True, + network_mappings=None, + storage_mappings=None, + storage_provisioning=DiskProvisioningType( + self.instance_config.disk_provisioning + ), + storage_profile_id=None, + locale=None, + flags=None, + additional_parameters=ovf.additional_params, + default_datastore_id=None, + ) + deploy = client.vcenter.ovf.LibraryItem.deploy( + library_item_id, + deployment_target, + deployment_spec, + ) + + log.debug(deploy) + if deploy.succeeded is False: + msg = "Deployment of library item failed" + log.error(msg) + raise Exception(msg) + log.info("Deployment of library item succeeded") + runner.instance_id = deploy.resource_id.id + client.vcenter.vm.Power.start(runner.instance_id) + return super().create(runner) + + def delete(self, runner: Runner): + client = self._create_client() + if runner.instance_id is not None: + state = client.vcenter.vm.Power.get(runner.instance_id) + if state == Power.Info(state=Power.State.POWERED_ON): + client.vcenter.vm.Power.stop(runner.instance_id) + elif state == Power.Info(state=Power.State.SUSPENDED): + client.vcenter.vm.Power.start(runner.instance_id) + client.vcenter.vm.Power.stop(runner.instance_id) + log.info(f"Deleting {runner.name}...") + client.vcenter.VM.delete(runner.instance_id) + return super().delete(runner) diff --git a/runner_manager/bin/startup.sh b/runner_manager/bin/startup.sh index db275cee..88ca7c76 100755 --- a/runner_manager/bin/startup.sh +++ b/runner_manager/bin/startup.sh @@ -87,6 +87,18 @@ WantedBy=multi-user.target" | sudo tee /etc/systemd/system/actions.runner.servic } +function setup_hostname { + # Ensure the hostname is defined in /etc/hosts + local hostname + hostname=$(hostname) + + # Check if the hostname is in /etc/hosts + if ! grep -q "${hostname}" /etc/hosts; then + # If it's not in the file, append it + echo "127.0.0.1 ${hostname}" | sudo tee -a /etc/hosts + fi +} + function setup_runner { sudo groupadd -f docker sudo useradd -m actions @@ -220,4 +232,5 @@ done init install_docker +setup_hostname setup_runner diff --git a/runner_manager/models/backend.py b/runner_manager/models/backend.py index 295d1a7f..6a7c56dc 100644 --- a/runner_manager/models/backend.py +++ b/runner_manager/models/backend.py @@ -24,6 +24,7 @@ class Backends(str, Enum): docker = "docker" gcloud = "gcloud" aws = "aws" + vsphere = "vsphere" class BackendConfig(BaseModel): @@ -203,3 +204,22 @@ def configure_instance(self, runner: Runner) -> AwsInstance: BlockDeviceMappings=block_device_mappings, IamInstanceProfile=iam_instance_profile, ) + + +class VsphereConfig(BackendConfig): + """Configuration for vSphere backend.""" + + server: str + username: str + password: str + verify_ssl: bool = False + + +class VsphereInstanceConfig(InstanceConfig): + """Configuration for vSphere backend instance.""" + + disk_provisioning: Literal["thin", "thick"] = "thin" + datacenter: str + datastore: str + library: str + library_item: str diff --git a/runner_manager/models/runner_group.py b/runner_manager/models/runner_group.py index 927998a9..f84e78ff 100644 --- a/runner_manager/models/runner_group.py +++ b/runner_manager/models/runner_group.py @@ -18,6 +18,7 @@ from runner_manager.backend.base import BaseBackend from runner_manager.backend.docker import DockerBackend from runner_manager.backend.gcloud import GCPBackend +from runner_manager.backend.vsphere import VsphereBackend from runner_manager.clients.github import GitHub from runner_manager.clients.github import RunnerGroup as GitHubRunnerGroup from runner_manager.models.base import BaseModel @@ -45,7 +46,7 @@ class BaseRunnerGroup(PydanticBaseModel): labels: List[str] backend: Annotated[ - Union[BaseBackend, DockerBackend, GCPBackend, AWSBackend], + Union[BaseBackend, DockerBackend, GCPBackend, AWSBackend, VsphereBackend], PydanticField(..., discriminator="name"), ] diff --git a/tests/unit/backend/test_vsphere.py b/tests/unit/backend/test_vsphere.py new file mode 100644 index 00000000..7eaba718 --- /dev/null +++ b/tests/unit/backend/test_vsphere.py @@ -0,0 +1,45 @@ +import os + +from pytest import fixture, mark + +from runner_manager.backend.vsphere import VsphereBackend +from runner_manager.models.backend import Backends, VsphereConfig, VsphereInstanceConfig +from runner_manager.models.runner import Runner +from runner_manager.models.runner_group import RunnerGroup + + +@fixture() +def vsphere_group(settings) -> RunnerGroup: + config = VsphereConfig( + server=os.environ.get("GOVC_URL", ""), + username=os.environ.get("GOVC_USERNAME", ""), + password=os.environ.get("GOVC_PASSWORD", ""), + ) + runner_group: RunnerGroup = RunnerGroup( + id=2, + name="test", + organization="octo-org", + manager="runner-manager", + backend=VsphereBackend( + name=Backends.vsphere, + config=config, + instance_config=VsphereInstanceConfig( + library="runners", + library_item="jammy-server-cloudimg-amd64", + datacenter=os.environ.get("GOVC_DATACENTER", ""), + datastore=os.environ.get("GOVC_DATASTORE", ""), + ), + ), + labels=[ + "label", + ], + ) + + return runner_group + + +@mark.skipif(not os.getenv("GOVC_URL"), reason="GOVC_URL environment variable not set") +def test_vsphere_client(vsphere_group: RunnerGroup, runner: Runner): + runner = vsphere_group.backend.create(runner) + assert runner.instance_id is not None + vsphere_group.backend.delete(runner) diff --git a/typings/com/vmware/cis_client.pyi b/typings/com/vmware/cis_client.pyi new file mode 100644 index 00000000..8e735c69 --- /dev/null +++ b/typings/com/vmware/cis_client.pyi @@ -0,0 +1,444 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The ``com.vmware.cis_client`` module provides VMware common infrastructure +classes. + +""" +__author__ = ... +__docformat__ = ... + +class Session(VapiInterface): + """ + The ``Session`` class allows API clients to manage session tokens including + creating, deleting and obtaining information about sessions. + + + + * The :func:`Session.create` method creates session token in exchange for + another authentication token. + * The :func:`Session.delete` method invalidates a session token. + * The :func:`Session.get` retrieves information about a session token. + + + + The call to the :func:`Session.create` method is part of the overall + authentication process for API clients. For example, the sequence of steps + for establishing a session with SAML token is: + + * Connect to lookup service. + * Discover the secure token service (STS) endpoint URL. + * Connect to the secure token service to obtain a SAML token. + * Authenticate to the lookup service using the obtained SAML token. + * Discover the API endpoint URL from lookup service. + * Call the :func:`Session.create` method. The :func:`Session.create` call + must include the SAML token. + + + + See the programming guide and samples for additional information about + establishing API sessions. + + **Execution Context and Security Context** + + To use session based authentication a client should supply the session + token obtained through the :func:`Session.create` method. The client should + add the session token in the security context when using SDK classes. + Clients using the REST API should supply the session token using the + ``vmware-api-session-id`` HTTP header field. + + **Session Lifetime** + + A session begins with call to the :func:`Session.create` method to exchange + a SAML token for a API session token. A session ends under the following + circumstances: + + * Call to the :func:`Session.delete` method. + * The session expires. Session expiration may be caused by one of the + following situations: + + * Client inactivity - For a particular session identified by client + requests that specify the associated session ID, the lapsed time since the + last request exceeds the maximum interval between requests. + * Unconditional or absolute session expiration time: At the beginning of + the session, the session logic uses the SAML token and the system + configuration to calculate absolute expiration time. + + + + When a session ends, the authentication logic will reject any subsequent + client requests that specify that session. Any operations in progress will + continue to completion. + + **Error Handling** + + The :class:`Session` returns the following exceptions: + + * :class:`com.vmware.vapi.std.errors_client.Unauthenticated` exception for + any exceptions related to the request. + * :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` exception + for all exceptions caused by internal service failure. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + Represents data associated with an API session. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, user=..., created_time=..., last_accessed_time=...) -> None: + """ + :type user: :class:`str` + :param user: Fully qualified name of the end user that created the session, for + example Administrator\\\\@vsphere.local. A typical use case for + this information is in Graphical User Interfaces (GUI) or logging + systems to visualize the identity of the current user. + :type created_time: :class:`datetime.datetime` + :param created_time: Time when the session was created. + :type last_accessed_time: :class:`datetime.datetime` + :param last_accessed_time: Last time this session was used by passing the session token for + invoking an API. + """ + ... + + def create(self): + """ + Creates a session with the API. This is the equivalent of login. This + method exchanges user credentials supplied in the security context for + a session token that is to be used for authenticating subsequent calls. + + To authenticate subsequent calls clients are expected to include the + session token. For REST API calls the HTTP ``vmware-api-session-id`` + header field should be used for this. + + + :rtype: :class:`str` + :return: Newly created session token to be used for authenticating further + requests. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the session creation fails due to request specific issues. Due + to the security nature of the API the details of the error are not + disclosed. + + Please check the following preconditions if using a SAML token to + authenticate: + + * the supplied token is delegate-able. + * the time of client and server system are synchronized. + * the token supplied is valid. + * if bearer tokens are used check that system configuration allows + the API endpoint to accept such tokens. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if session creation fails due to server specific issues, for + example connection to a back end component is failing. Due to the + security nature of this API further details will not be disclosed + in the exception. Please refer to component health information, + administrative logs and product specific documentation for possible + causes. + """ + ... + + def delete(self): + """ + Terminates the validity of a session token. This is the equivalent of + log out. + + A session token is expected as part of the request. + + + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the session id is missing from the request or the corresponding + session object cannot be found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if session deletion fails due to server specific issues, for + example connection to a back end component is failing. Due to the + security nature of this API further details will not be disclosed + in the exception. Please refer to component health information, + administrative logs and product specific documentation for possible + causes. + """ + ... + + def get(self): + """ + Returns information about the current session. This method expects a + valid session token to be supplied. + + A side effect of invoking this method may be a change to the session's + last accessed time to the current time if this is supported by the + session implementation. Invoking any other method in the API will also + update the session's last accessed time. + + This API is meant to serve the needs of various front end projects that + may want to display the name of the user. Examples of this include + various web based user interfaces and logging facilities. + + + :rtype: :class:`Session.Info` + :return: Information about the session. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the session id is missing from the request or the corresponding + session object cannot be found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if session retrieval fails due to server specific issues e.g. + connection to back end component is failing. Due to the security + nature of this API further details will not be disclosed in the + error. Please refer to component health information, administrative + logs and product specific documentation for possible causes. + """ + ... + +class Tasks(VapiInterface): + """ + The ``Tasks`` class provides methods for managing the task related to a + long running operation. This class was added in vSphere API 6.7.1. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class GetSpec(VapiStruct): + """ + The ``Tasks.GetSpec`` class describes what data should be included when + retrieving information about a task. This class was added in vSphere API + 6.7.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, return_all=..., exclude_result=...) -> None: + """ + :type return_all: :class:`bool` or ``None`` + :param return_all: If true, all data, including operation-specific data, will be + returned, otherwise only the data described in + :class:`com.vmware.cis.task_client.Info` will be returned. This + attribute was added in vSphere API 6.7.1. + If None, only the data described in + :class:`com.vmware.cis.task_client.Info` will be returned. + :type exclude_result: :class:`bool` or ``None`` + :param exclude_result: If true, the result will not be included in the task information, + otherwise it will be included. This attribute was added in vSphere + API 6.7.1. + If None, the result of the operation will be included in the task + information. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Tasks.FilterSpec`` class contains attributes used to filter the + results when listing tasks (see :func:`Tasks.list`). If multiple attributes + are specified, only tasks matching all of the attributes match the filter. + + Currently at least one of :attr:`Tasks.FilterSpec.tasks` or + :attr:`Tasks.FilterSpec.services` must be specified and not empty.. This + class was added in vSphere API 6.7.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + tasks=..., + services=..., + operations=..., + status=..., + targets=..., + users=..., + ) -> None: + """ + :type tasks: :class:`set` of :class:`str` or ``None`` + :param tasks: Identifiers of tasks that can match the filter. This attribute was + added in vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``com.vmware.cis.task``. When methods return a value of this class + as a return value, the attribute will contain identifiers for the + resource type: ``com.vmware.cis.task``. + This attribute may be None if ``services`` is specified. Currently + all tasks must be from the same provider. If None or empty, tasks + with any identifier will match the filter. + :type services: :class:`set` of :class:`str` or ``None`` + :param services: Identifiers of services. Tasks created by operations in these + services match the filter (see + :attr:`com.vmware.cis.task_client.CommonInfo.service`). This + attribute was added in vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``com.vmware.vapi.service``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``com.vmware.vapi.service``. + This attribute may be None if ``tasks`` is specified. Currently all + services must be from the same provider. If this attribute is None + or empty, tasks for any service will match the filter. + :type operations: :class:`set` of :class:`str` or ``None`` + :param operations: Identifiers of operations. Tasks created by these operations match + the filter (see + :attr:`com.vmware.cis.task_client.CommonInfo.operation`). + + Note that an operation identifier by itself is not globally unique. + To filter on an operation, the identifier of the service interface + containing the operation should also be specified in ``services``.. + This attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``com.vmware.vapi.operation``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``com.vmware.vapi.operation``. + If None or empty, tasks associated with any operation will match + the filter. + :type status: :class:`set` of :class:`com.vmware.cis.task_client.Status` or ``None`` + :param status: Status that a task must have to match the filter (see + :attr:`com.vmware.cis.task_client.CommonInfo.status`). This + attribute was added in vSphere API 6.7.1. + If None or empty, tasks with any status match the filter. + :type targets: :class:`list` of :class:`com.vmware.vapi.std_client.DynamicID` or ``None`` + :param targets: Identifiers of the targets the operation for the associated task + created or was performed on (see + :attr:`com.vmware.cis.task_client.CommonInfo.target`). This + attribute was added in vSphere API 6.7.1. + If None or empty, tasks associated with operations on any target + match the filter. + :type users: :class:`set` of :class:`str` or ``None`` + :param users: Users who must have initiated the operation for the associated task + to match the filter (see + :attr:`com.vmware.cis.task_client.CommonInfo.user`). This attribute + was added in vSphere API 6.7.1. + If None or empty, tasks associated with operations initiated by any + user match the filter. + """ + ... + + def get(self, task, spec=...): + """ + Returns information about a task. This method was added in vSphere API + 6.7.1. + + :type task: :class:`str` + :param task: Task identifier. + The parameter must be an identifier for the resource type: + ``com.vmware.cis.task``. + :type spec: :class:`Tasks.GetSpec` or ``None`` + :param spec: Specification on what to get for a task. + If None, the behavior is equivalent to a :class:`Tasks.GetSpec` + with all attributes None which means only the data described in + :class:`com.vmware.cis.task_client.Info` will be returned and the + result of the operation will be return. + :rtype: :class:`com.vmware.cis.task_client.Info` + :return: Information about the specified task. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the task is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the task's state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def list(self, filter_spec=..., result_spec=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) tasks matching the :class:`Tasks.FilterSpec`. All tasks must be + in the same provider. This method was added in vSphere API 6.7.1. + + :type filter_spec: :class:`Tasks.FilterSpec` or ``None`` + :param filter_spec: Specification of matching tasks. + This is currently required. In the future, if it is None, the + behavior is equivalent to a :class:`Tasks.FilterSpec` with all + attributes None which means all tasks match the filter. + :type result_spec: :class:`Tasks.GetSpec` or ``None`` + :param result_spec: Specification of what to return for a task. + If None, the behavior is equivalent to a :class:`Tasks.GetSpec` + with all attributes None which means only the data describe in + :class:`com.vmware.cis.task_client.Info` will be returned and the + result of the operation will be return. + :rtype: :class:`dict` of :class:`str` and :class:`com.vmware.cis.task_client.Info` + :return: Map of task identifier to information about the task. + The key in the return value :class:`dict` will be an identifier for + the resource type: ``com.vmware.cis.task``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a task's state cannot be accessed or over 1000 tasks matching + the :class:`Tasks.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def cancel(self, task): + """ + Cancel a running operation associated with the task. This is the best + effort attempt. Operation may not be cancelled anymore once it reaches + certain stage. This method was added in vSphere API 6.7.1. + + :type task: :class:`str` + :param task: Task identifier. + The parameter must be an identifier for the resource type: + ``com.vmware.cis.task``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the task is already canceled or completed. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the task is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the task's state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the task is not cancelable. + """ + ... + +class _SessionStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _TasksStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/com/vmware/content/library_client.pyi b/typings/com/vmware/content/library_client.pyi new file mode 100644 index 00000000..e31d3fee --- /dev/null +++ b/typings/com/vmware/content/library_client.pyi @@ -0,0 +1,2106 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.enum import Enum +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The Content Library module provides classes and classes for defining and +managing the library's items, subscription, publication, and storage. + +""" +__author__ = ... +__docformat__ = ... + +class ItemModel(VapiStruct): + """ + The ``ItemModel`` class represents a library item that has been stored in a + library. + + A ``ItemModel`` represents a single logical unit to be managed within a + :class:`com.vmware.content_client.LibraryModel`. Items contain the actual + content of a library, and their placement within a library determines + policies that affect that content such as publishing. + + A library item can have a specified type, indicated with the + :attr:`ItemModel.type` attribute. This property is associated with a + Content Library Service plugin that supports specific types and provides + additional services. The types available in a specific Content Library + Service can be queried using the :class:`com.vmware.content_client.Type` + class. Items of an unknown or unspecified type are treated generically. + Because subscribed library catalogs are synchronized as is, subscribing to + a remote Content Library Service effectively gives you a library with the + functionality of the remote service's type adapter plugins, even if they + are not installed locally. + + Items can be managed using the :class:`Item` class and, for items in + subscribed libraries, the :class:`SubscribedItem` class. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + id=..., + library_id=..., + content_version=..., + creation_time=..., + description=..., + last_modified_time=..., + last_sync_time=..., + metadata_version=..., + name=..., + cached=..., + size=..., + type=..., + version=..., + source_id=..., + security_compliance=..., + certificate_verification_info=..., + ) -> None: + """ + :type id: :class:`str` + :param id: A unique identifier for this library item. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + This attribute is not used for the ``create`` method. It will not + be present in the return value of the ``get`` or ``list`` methods. + It is not used for the ``update`` method. + :type library_id: :class:`str` + :param library_id: The identifier of the + :class:`com.vmware.content_client.LibraryModel` to which this item + belongs. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type content_version: :class:`str` + :param content_version: The latest version of the file content list of this library item. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.item.Version``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.library.item.Version``. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type creation_time: :class:`datetime.datetime` + :param creation_time: The date and time when this library item was created. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type description: :class:`str` + :param description: A human-readable description for this library item. + This attribute is optional for the ``create`` method. Leaving it + None during creation will result in an empty string value. It will + always be present in the result of a ``get`` or ``list`` method. It + is optional for the ``update`` method. Leaving it None during + update indicates that the description remains unchanged. + :type last_modified_time: :class:`datetime.datetime` + :param last_modified_time: The date and time when the metadata for this library item was last + changed. + + This attribute is affected by changes to the properties or file + content of this item. It is not modified by changes to the tags of + the item, or by changes to the library which owns this item. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type last_sync_time: :class:`datetime.datetime` + :param last_sync_time: The date and time when this library item was last synchronized. + + This attribute is updated every time a synchronization is triggered + on the library item, including when a synchronization is triggered + on the library to which this item belongs. The value is None for a + library item that belongs to a local library. + This attribute is not used for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is not used for the ``update`` method. + :type metadata_version: :class:`str` + :param metadata_version: A version number for the metadata of this library item. + + This value is incremented with each change to the metadata of this + item. Changes to name, description, and so on will increment this + value. The value is not incremented by changes to the content or + tags of the item or the library which owns it. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type name: :class:`str` + :param name: A human-readable name for this library item. + + The name may not be None or an empty string. The name does not have + to be unique, even within the same library. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type cached: :class:`bool` + :param cached: The status that indicates whether the library item is on disk or + not. The library item is cached when all its files are on disk. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type size: :class:`long` + :param size: The library item size, in bytes. The size is the sum of the size + used on the storage backing for all the files in the item. When the + library item is not cached, the size is 0. + This attribute is not used for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is not used for the ``update`` method. + :type type: :class:`str` + :param type: An optional type identifier which indicates the type adapter plugin + to use. + + This attribute may be set to a non-empty string value that + corresponds to an identifier supported by a type adapter plugin + present in the Content Library Service. A type adapter plugin, if + present for the specified type, can provide additional information + and services around the item content. A type adapter can guide the + upload process by creating file entries that are in need of being + uploaded to complete an item. + + The types and plugins supported by the Content Library Service can + be queried using the :class:`com.vmware.content_client.Type` class. + This attribute is optional for the ``create`` and ``update`` + methods. During creation, if the type is left unspecified, or if + the type is specified but does not have a corresponding type + support plugin, then the type of the library item is considered to + be generic and all data is treated as generic files. During update, + if the type is not specified, then it is not updated. + :type version: :class:`str` + :param version: A version number that is updated on metadata changes. This value is + used to validate update requests to provide optimistic concurrency + of changes. + + This value represents a number that is incremented every time + library item properties, such as name or description, are changed. + It is not incremented by changes to the file content of the library + item, including adding or removing files. It is also not affected + by tagging the library item. + This attribute is not used for the ``create`` method. It will + always be present in the result of a ``get`` or ``list`` method. It + is optional for the ``update`` method. Leaving it None during + update indicates that you do not need to detect concurrent updates. + :type source_id: :class:`str` + :param source_id: The identifier of the :class:`ItemModel` to which this item is + synchronized to if the item belongs to a subscribed library. The + value is None for a library item that belongs to a local library. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + This attribute is not used for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is not used for the ``update`` method. + :type security_compliance: :class:`bool` + :param security_compliance: Shows the security compliance of :class:`ItemModel`. This attribute + was added in vSphere API 7.0.3.0. + This attribute is not used for the ``create`` and ``update`` + methods. It will be present in the result of a ``get`` or ``list`` + method. + :type certificate_verification_info: :class:`com.vmware.content.library.item_client.CertificateVerificationInfo` or ``None`` + :param certificate_verification_info: Certificate verification status and :class:`ItemModel`'s signing + certificate . Currently, this field is available only in following + cases 1. This item belongs to a secure content library 2. The item + is of type ovf. This attribute was added in vSphere API 7.0.3.0. + This attribute is not used for the ``create`` and ``update`` + methods. It may be present in the result of a ``get`` or ``list`` + method. + """ + ... + +class OptimizationInfo(VapiStruct): + """ + The ``OptimizationInfo`` class defines different optimizations and + optimization parameters applied to particular library. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, optimize_remote_publishing=...) -> None: + """ + :type optimize_remote_publishing: :class:`bool` + :param optimize_remote_publishing: If set to ``true`` then library would be optimized for remote + publishing. + + Turn it on if remote publishing is dominant use case for this + library. Remote publishing means here that publisher and + subscribers are not the part of the same ``Vcenter`` SSO domain. + + Any optimizations could be done as result of turning on this + optimization during library creation. For example, library content + could be stored in different format but optimizations are not + limited to just storage format. + + Note, that value of this toggle could be set only during creation + of the library and you would need to migrate your library in case + you need to change this value (optimize the library for different + use case). + This attribute is optional for the ``create`` method. If not + specified for the ``create``, the default is for the library to not + be optmized for specific use case. It is not used for the + ``update`` method. + """ + ... + +class PublishInfo(VapiStruct): + """ + The ``PublishInfo`` class defines how a local library is published publicly + for synchronization to other libraries. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + authentication_method=..., + published=..., + publish_url=..., + user_name=..., + password=..., + current_password=..., + persist_json_enabled=..., + ) -> None: + """ + :type authentication_method: :class:`PublishInfo.AuthenticationMethod` + :param authentication_method: Indicates how a subscribed library should authenticate (BASIC, + NONE) to the published library endpoint. + This attribute is required for the + :func:`com.vmware.content_client.LocalLibrary.create` method. It is + optional for the + :func:`com.vmware.content_client.LocalLibrary.update` operation, + and if None the value will not be changed. When the existing + authentication method is + :attr:`PublishInfo.AuthenticationMethod.BASIC` and authentication + is being turned off by updating this attribute to + :attr:`PublishInfo.AuthenticationMethod.NONE`, then the + :attr:`PublishInfo.current_password` attribute is required. This + attribute will always be present in the results of the + :func:`com.vmware.content_client.LocalLibrary.get` method. + :type published: :class:`bool` + :param published: Whether the local library is published. + This attribute is required for the + :func:`com.vmware.content_client.LocalLibrary.create` method. It is + optional for the + :func:`com.vmware.content_client.LocalLibrary.update` operation, + and if None the value will not be changed. When the existing + authentication method is + :attr:`PublishInfo.AuthenticationMethod.BASIC` and the local + library is published, the :attr:`PublishInfo.current_password` + attribute is required before turning off publishing. This attribute + will always be present in the results of the + :func:`com.vmware.content_client.LocalLibrary.get` method. + :type publish_url: :class:`str` + :param publish_url: The URL to which the library metadata is published by the Content + Library Service. + + This value can be used to set the + :attr:`SubscriptionInfo.subscription_url` property when creating a + subscribed library. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type user_name: :class:`str` + :param user_name: The username to require for authentication. + This attribute is optional for the + :func:`com.vmware.content_client.LocalLibrary.create` and + :func:`com.vmware.content_client.LocalLibrary.update` methods. When + the authentication method is + :attr:`PublishInfo.AuthenticationMethod.NONE`, the username can be + left None. When the authentication method is + :attr:`PublishInfo.AuthenticationMethod.BASIC`, the username is + ignored in the current release. It defaults to "vcsp". It is + preferable to leave this None. If specified, it must be set to + "vcsp". + :type password: :class:`str` + :param password: The new password to require for authentication. + This attribute is optional for the + :func:`com.vmware.content_client.LocalLibrary.create` method. When + the authentication method is + :attr:`PublishInfo.AuthenticationMethod.NONE`, the password can be + left None. When the authentication method is + :attr:`PublishInfo.AuthenticationMethod.BASIC`, the password should + be a non-empty string. This attribute is optional for the + :func:`com.vmware.content_client.LocalLibrary.update` method. + Leaving it None during update indicates that the password is not + changed. When the password is changed, the + :attr:`PublishInfo.current_password` attribute is required. This + attribute is not used for the + :func:`com.vmware.content_client.LocalLibrary.get` method. + :type current_password: :class:`str` + :param current_password: The current password to verify. This attribute is available + starting in vSphere 6.7. + This attribute is unused for the + :func:`com.vmware.content_client.LocalLibrary.create` method. This + attribute is optional for the + :func:`com.vmware.content_client.LocalLibrary.update` method. When + the existing authentication method is + :attr:`PublishInfo.AuthenticationMethod.NONE`, the current password + can be left None. When the existing authentication method is + :attr:`PublishInfo.AuthenticationMethod.BASIC`, the current + password is verified before applying the new + :attr:`PublishInfo.password`, turning off authentication, or + unpublishing the library. This attribute is not used for the + :func:`com.vmware.content_client.LocalLibrary.get` method. + :type persist_json_enabled: :class:`bool` + :param persist_json_enabled: Whether library and library item metadata are persisted in the + storage backing as JSON files. This flag only applies if the local + library is published. + + Enabling JSON persistence allows you to synchronize a subscribed + library manually instead of over HTTP. You copy the local library + content and metadata to another storage backing manually and then + create a subscribed library referencing the location of the library + JSON file in the :attr:`SubscriptionInfo.subscription_url`. When + the subscribed library's storage backing matches the subscription + URL, files do not need to be copied to the subscribed library. + + For a library backed by a datastore, the library JSON file will be + stored at the path contentlib-{library_id}/lib.json on the + datastore. + + For a library backed by a remote file system, the library JSON file + will be stored at {library_id}/lib.json in the remote file system + path. + This attribute is optional for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + """ + ... + + class AuthenticationMethod(Enum): + """ + The ``PublishInfo.AuthenticationMethod`` class indicates how a subscribed + library should authenticate to the published library endpoint. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + BASIC = ... + NONE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`AuthenticationMethod` instance. + """ + ... + +class SourceInfo(VapiStruct): + """ + The ``SourceInfo`` class contains information about the source published + library of a subscribed library. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, source_library=..., subscription=...) -> None: + """ + :type source_library: :class:`str` + :param source_library: Identifier of the published library. This attribute was added in + vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type subscription: :class:`str` + :param subscription: Identifier of the subscription associated with the subscribed + library. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + """ + ... + +class StorageBacking(VapiStruct): + """ + The ``StorageBacking`` class defines a storage location where content in a + library will be stored. The storage location can either be a Datastore or + Other type. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__(self, type=..., datastore_id=..., storage_uri=...) -> None: + """ + :type type: :class:`StorageBacking.Type` + :param type: Type (DATASTORE, OTHER) of :class:`StorageBacking`. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type datastore_id: :class:`str` + :param datastore_id: Identifier of the datastore used to store the content in the + library. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is optional and it is only relevant when the value + of ``type`` is :attr:`StorageBacking.Type.DATASTORE`. + :type storage_uri: :class:`str` + :param storage_uri: URI identifying the location used to store the content in the + library. + + The following URI formats are supported: + + vSphere 6.5 + + * nfs://server/path?version=4 (for vCenter Server Appliance only) - + Specifies an NFS Version 4 server. + * nfs://server/path (for vCenter Server Appliance only) - Specifies + an NFS Version 3 server. The nfs://server:/path format is also + supported. + * smb://server/path - Specifies an SMB server or Windows share. + + + + vSphere 6.0 Update 1 + + * nfs://server:/path (for vCenter Server Appliance only) + * file://unc-server/path (for vCenter Server for Windows only) + * file:///mount/point (for vCenter Server Appliance only) - Local + file URIs are supported only when the path is a local mount point + for an NFS file system. Use of file URIs is strongly discouraged. + Instead, use an NFS URI to specify the remote file system. + + + + vSphere 6.0 + + * nfs://server:/path (for vCenter Server Appliance only) + * file://unc-server/path (for vCenter Server for Windows only) + * file:///path - Local file URIs are supported but strongly + discouraged because it may interfere with the performance of + vCenter Server. + This attribute is optional and it is only relevant when the value + of ``type`` is :attr:`StorageBacking.Type.OTHER`. + """ + ... + + class Type(Enum): + """ + The ``StorageBacking.Type`` class specifies the type of the + :class:`StorageBacking`. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DATASTORE = ... + OTHER = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Type` instance. + """ + ... + +class SubscriptionInfo(VapiStruct): + """ + The ``SubscriptionInfo`` class defines the subscription behavior for a + subscribed library. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + authentication_method=..., + automatic_sync_enabled=..., + on_demand=..., + password=..., + ssl_thumbprint=..., + subscription_url=..., + user_name=..., + source_info=..., + ) -> None: + """ + :type authentication_method: :class:`SubscriptionInfo.AuthenticationMethod` + :param authentication_method: Indicate how the subscribed library should authenticate (BASIC, + NONE) with the published library endpoint. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type automatic_sync_enabled: :class:`bool` + :param automatic_sync_enabled: Whether the library should participate in automatic library + synchronization. In order for automatic synchronization to happen, + the global + :attr:`com.vmware.content_client.ConfigurationModel.automatic_sync_enabled` + option must also be true. The subscription is still active even + when automatic synchronization is turned off, but synchronization + is only activated with an explicit call to + :func:`com.vmware.content_client.SubscribedLibrary.sync` or + :func:`SubscribedItem.sync`. In other words, manual synchronization + is still available even when automatic synchronization is disabled. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type on_demand: :class:`bool` + :param on_demand: Indicates whether a library item's content will be synchronized + only on demand. + + If this is set to ``true``, then the library item's metadata will + be synchronized but the item's content (its files) will not be + synchronized. The Content Library Service will synchronize the + content upon request only. This can cause the first use of the + content to have a noticeable delay. + + Items without synchronized content can be forcefully synchronized + in advance using the :func:`SubscribedItem.sync` call with + ``forceSyncContent`` set to true. Once content has been + synchronized, the content can removed with the + :func:`SubscribedItem.evict` call. + + If this value is set to ``false``, all content will be synchronized + in advance. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type password: :class:`str` + :param password: The password to use when authenticating. + + The password must be set when using a password-based authentication + method; empty strings are not allowed. + This attribute is optional for the ``create`` method. It will not + be present in the return value of the ``get`` or ``list`` methods. + It is optional for the ``update`` method. + :type ssl_thumbprint: :class:`str` + :param ssl_thumbprint: An optional SHA-1 hash of the SSL certificate for the remote + endpoint. + + If this value is defined the SSL certificate will be verified by + comparing it to the SSL thumbprint. The SSL certificate must verify + against the thumbprint. When specified, the standard certificate + chain validation behavior is not used. The certificate chain is + validated normally if this value is None. + This attribute is optional for the ``create`` method. It will not + be present in the return value of the ``get`` or ``list`` methods. + It is optional for the ``update`` method. + :type subscription_url: :class:`str` + :param subscription_url: The URL of the endpoint where the metadata for the remotely + published library is being served. + + This URL can be the :attr:`PublishInfo.publish_url` of the + published library (for example, https://server/path/lib.json). + + If the source content comes from a published library with + :attr:`PublishInfo.persist_json_enabled`, the subscription URL can + be a URL pointing to the library JSON file on a datastore or remote + file system. The supported formats are: + + vSphere 6.5 + + * ds:///vmfs/volumes/{uuid}/mylibrary/lib.json (for datastore) + * nfs://server/path/mylibrary/lib.json (for NFSv3 server on vCenter + Server Appliance) + * nfs://server/path/mylibrary/lib.json?version=4 (for NFSv4 server + on vCenter Server Appliance) + * smb://server/path/mylibrary/lib.json (for SMB server) + + + + vSphere 6.0 + + * file://server/mylibrary/lib.json (for UNC server on vCenter + Server for Windows) + * file:///path/mylibrary/lib.json (for local file system) + + + + When you specify a DS subscription URL, the datastore must be on + the same vCenter Server as the subscribed library. When you specify + an NFS or SMB subscription URL, the + :attr:`StorageBacking.storage_uri` of the subscribed library must + be on the same remote file server and should share a common parent + path with the subscription URL. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type user_name: :class:`str` + :param user_name: The username to use when authenticating. + + The username must be set when using a password-based authentication + method. Empty strings are allowed for usernames. + This attribute is optional for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is optional for the ``update`` method. + :type source_info: :class:`SourceInfo` + :param source_info: Information about the source published library. This attribute will + be set for a subscribed library which is associated with a + subscription of the published library. This attribute was added in + vSphere API 6.7.2. + This attribute is optional for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is optional for the ``update`` method. + """ + ... + + class AuthenticationMethod(Enum): + """ + Indicate how the subscribed library should authenticate with the published + library endpoint. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + BASIC = ... + NONE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`AuthenticationMethod` instance. + """ + ... + +class Item(VapiInterface): + """ + The ``Item`` class provides methods for managing library items. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class FindSpec(VapiStruct): + """ + The ``Item.FindSpec`` class specifies the properties that can be used as a + filter to find library items. When multiple attributes are specified, all + properties of the item must match the specification. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, name=..., library_id=..., source_id=..., type=..., cached=... + ) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: The name of the library item. The name is case-insensitive. See + :attr:`ItemModel.name`. + If not specified all library item names are searched. + :type library_id: :class:`str` or ``None`` + :param library_id: The identifier of the library containing the item. See + :attr:`ItemModel.library_id`. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + If not specified all libraries are searched. + :type source_id: :class:`str` or ``None`` + :param source_id: The identifier of the library item as reported by the publisher. + See :attr:`ItemModel.source_id`. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + If not specified all library items are searched. + :type type: :class:`str` or ``None`` + :param type: The type of the library item. The type is case-insensitive. See + :attr:`ItemModel.type`. + If not specified all types are searched. + :type cached: :class:`bool` or ``None`` + :param cached: Whether the item is cached. Possible values are 'true' or 'false'. + See :attr:`ItemModel.cached`. + If not specified all library items are searched. + """ + ... + + class DestinationSpec(VapiStruct): + """ + The ``Item.DestinationSpec`` class contains information required to publish + the library item to a specific subscription. This class was added in + vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, subscription=...) -> None: + """ + :type subscription: :class:`str` + :param subscription: Identifier of the subscription associated with the subscribed + library. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + """ + ... + + def copy(self, source_library_item_id, destination_create_spec, client_token=...): + """ + Copies a library item. + + Copying a library item allows a duplicate to be made within the same or + different library. The copy occurs by first creating a new library + item, whose identifier is returned. The content of the library item is + then copied asynchronously. This copy can be tracked as a task. + + If the copy fails, Content Library Service will roll back the copy by + deleting any content that was already copied, and removing the new + library item. A failure during rollback may require manual cleanup by + an administrator. + + A library item cannot be copied into a subscribed library. + + :type client_token: :class:`str` or ``None`` + :param client_token: A unique token generated on the client for each copy request. The + token should be a universally unique identifier (UUID), for + example: ``b8a2a2e3-2314-43cd-a871-6ede0f429751``. This token can + be used to guarantee idempotent copy. + If not specified copy is not idempotent. + :type source_library_item_id: :class:`str` + :param source_library_item_id: Identifier of the existing library item from which the content will + be copied. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type destination_create_spec: :class:`ItemModel` + :param destination_create_spec: Specification for the new library item to be created. + :rtype: :class:`str` + :return: The identifier of the new library item into which the content is + being copied. + The return value will be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item with ``source_library_item_id`` does not exist, + or if the library referenced by the :attr:`ItemModel.library_id` + property of ``destination_create_spec`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if one of the following is true for the new library item: + + * name is empty + * name exceeds 80 characters + * description exceeds 2000 characters + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``client_token`` does not conform to the UUID format. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the :attr:`ItemModel.library_id` property of + ``destination_create_spec`` refers to a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the copy operation failed because the source or destination + library item is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the content of the source library item specified by + ``source_library_item_id``, or the content of the target library + specified by the library ID (see :attr:`ItemModel.library_id`) + property of ``destination_create_spec`` has been deleted from the + storage backings (see LibraryModel#storageBackings) associated with + it. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``source_library_item_id`` requires ``System.Read``. + * The resource ``com.vmware.content.Library`` referenced by the + attribute :attr:`ItemModel.library_id` requires + ``ContentLibrary.AddLibraryItem``. + """ + ... + + def create(self, create_spec, client_token=...): + """ + Creates a new library item. + + A new library item is created without any content. After creation, + content can be added through the + :class:`com.vmware.content.library.item_client.UpdateSession` and + :class:`com.vmware.content.library.item.updatesession_client.File` + classes. + + A library item cannot be created in a subscribed library. + + :type client_token: :class:`str` or ``None`` + :param client_token: A unique token generated on the client for each creation request. + The token should be a universally unique identifier (UUID), for + example: ``b8a2a2e3-2314-43cd-a871-6ede0f429751``. This token can + be used to guarantee idempotent creation. + If not specified creation is not idempotent. + :type create_spec: :class:`ItemModel` + :param create_spec: Specification that defines the properties of the new library item. + :rtype: :class:`str` + :return: Identifier of the new library item. + The return value will be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the :attr:`ItemModel.library_id` property of ``create_spec`` + refers to a library that does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if one of the following is true for the new library item: + + * name is empty + * name exceeds 80 characters + * description exceeds 2000 characters + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``client_token`` does not conform to the UUID format. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the :attr:`ItemModel.library_id` property of ``create_spec`` + refers to a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the content of the library specified by the library ID (see + :attr:`ItemModel.library_id`) property of ``create_spec`` has been + deleted from the storage backings (see + LibraryModel#storageBackings) associated with it. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if there is already a library item with same name in the library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + attribute :attr:`ItemModel.library_id` requires + ``ContentLibrary.AddLibraryItem``. + """ + ... + + def delete(self, library_item_id): + """ + Deletes a library item. + + This method will immediately remove the item from the library that owns + it. The content of the item will be asynchronously removed from the + storage backings. The content deletion can be tracked with a task. In + the event that the task fails, an administrator may need to manually + remove the files from the storage backing. + + This method cannot be used to delete a library item that is a member of + a subscribed library. Removing an item from a subscribed library + requires deleting the item from the original published local library + and syncing the subscribed library. + + :type library_item_id: :class:`str` + :param library_item_id: Identifier of the library item to delete. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library item with the given ``library_item_id`` is a member + of a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item with the specified ``library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the library item contains a virtual machine template and a + virtual machine is checked out of the library item. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires + ``ContentLibrary.DeleteLibraryItem``. + """ + ... + + def get(self, library_item_id): + """ + Returns the :class:`ItemModel` with the given identifier. + + :type library_item_id: :class:`str` + :param library_item_id: Identifier of the library item to return. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :rtype: :class:`ItemModel` + :return: The :class:`ItemModel` instance with the given ``library_item_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if no item with the given ``library_item_id`` exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires ``System.Read``. + """ + ... + + def list(self, library_id): + """ + Returns the identifiers of all items in the given library. + + :type library_id: :class:`str` + :param library_id: Identifier of the library whose items should be returned. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of identifiers of the items in the library + specified by ``library_id``. + The return value will contain identifiers for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library associated with ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``System.Read``. + """ + ... + + def find(self, spec): + """ + Returns identifiers of all the visible (as determined by authorization + policy) library items matching the requested :class:`Item.FindSpec`. + + :type spec: :class:`Item.FindSpec` + :param spec: Specification describing what properties to filter on. + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of identifiers of all the visible library items + matching the given ``spec``. + The return value will contain identifiers for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if no properties are specified in the ``spec``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + * The resource ``com.vmware.content.Library`` referenced by the + attribute :attr:`Item.FindSpec.library_id` requires + ``System.Read``. + """ + ... + + def update(self, library_item_id, update_spec): + """ + Updates the specified properties of a library item. + + This is an incremental update to the library item. Attributes that are + None in the update specification are left unchanged. + + This method cannot update a library item that is a member of a + subscribed library. Those items must be updated in the source published + library and synchronized to the subscribed library. + + :type library_item_id: :class:`str` + :param library_item_id: Identifier of the library item to update. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type update_spec: :class:`ItemModel` + :param update_spec: Specification of the properties to set. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item specified by ``library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library item corresponding to ``library_item_id`` is a + member of a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if one of the following is true for the ``update_spec``: + + * name is empty + * name exceeds 80 characters + * description exceeds 2000 characters + * version is not equal to the current version of the library item + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the library item belongs to a published library with JSON + persistence enabled (see :attr:`PublishInfo.persist_json_enabled`) + and the content of the library item specified by + ``library_item_id`` has been deleted from the storage backings (see + LibraryModel#storageBackings) associated with it. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if there is already a library item with same name in the library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires + ``ContentLibrary.UpdateLibraryItem``. + """ + ... + + def publish(self, library_item_id, force_sync_content, subscriptions=...): + """ + Publishes the library item to specified subscriptions of the library. + If no subscriptions are specified, then publishes the library item to + all subscriptions of the library. This method was added in vSphere API + 6.7.2. + + :type library_item_id: :class:`str` + :param library_item_id: Library item identifier. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type force_sync_content: :class:`bool` + :param force_sync_content: Whether to synchronize file content as well as metadata. This + parameter applies only if the subscription is on-demand. + :type subscriptions: :class:`list` of :class:`Item.DestinationSpec` or ``None`` + :param subscriptions: The list of subscriptions to publish this library item to. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library item specified by ``library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If one or more arguments in ``subscriptions`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library item specified by ``library_item_id`` is a member of + a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library item specified by ``library_item_id`` does not + belong to a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires + ``ContentLibrary.PublishLibraryItem``. + """ + ... + +class SubscribedItem(VapiInterface): + """ + The ``SubscribedItem`` class manages the unique features of library items + that are members of a subscribed library. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + def evict(self, library_item_id): + """ + Evicts the cached content of a library item in a subscribed library. + + This method allows the cached content of a library item to be removed + to free up storage capacity. This method will only work when a library + item is synchronized on-demand. When a library is not synchronized + on-demand, it always attempts to keep its cache up-to-date with the + published source. Evicting the library item will set + :attr:`ItemModel.cached` to false. + + :type library_item_id: :class:`str` + :param library_item_id: Identifier of the library item whose content should be evicted. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item specified by ``library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library item specified by ``library_item_id`` is not a + member of a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementConfiguration` + if the library item specified by ``library_item_id`` is a member of + a subscribed library that does not synchronize on-demand. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the content of the library item specified by ``library_item_id`` + has been deleted from the storage backings (see + LibraryModel#storageBackings) associated with it. + + For instance, this {\\\\@term error) is reported on evicting a + library item in an on-demand subscribed library that was restored + from backup, and the library item was deleted after backup, thus + resulting in its content being deleted from the associated storage + backings. In this scenario, the metadata of the library item is + present on a restore, while its content has been deleted. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires + ``ContentLibrary.EvictLibraryItem``. + """ + ... + + def sync(self, library_item_id, force_sync_content, sync_optional_files=...): + """ + Forces the synchronization of an individual library item in a + subscribed library. + + Synchronizing an individual item will update that item's metadata from + the remote source. If the source library item on the remote library has + been deleted, this method will delete the library item from the + subscribed library as well. + + The default behavior of the synchronization is determined by the + :class:`SubscriptionInfo` of the library which owns the library item. + + * If :attr:`SubscriptionInfo.on_demand` is true, then the file content + is not synchronized by default. In this case, only the library item + metadata is synchronized. The file content may still be forcefully + synchronized by passing true for the ``force_sync_content`` parameter. + * If :attr:`SubscriptionInfo.on_demand` is false, then this call will + always synchronize the file content. The ``force_sync_content`` + parameter is ignored when the subscription is not on-demand. + + When the file content has been synchronized, the + :attr:`ItemModel.cached` attribute will be true. + + This method will return immediately and create an asynchronous task to + perform the synchronization. + + :type library_item_id: :class:`str` + :param library_item_id: Identifier of the library item to synchronize. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type force_sync_content: :class:`bool` + :param force_sync_content: Whether to synchronize file content as well as metadata. This + parameter applies only if the subscription is on-demand. + :type sync_optional_files: :class:`bool` or ``None`` + :param sync_optional_files: Whether to synchronize optional files. This parameter applies to + both types of subscriptions on-demand as well as sync-immediately. + This parameter was added in vSphere API 7.0.3.0. + This parameter is optional because it was added in a newer version + than its parent node. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item specified by ``library_item_id`` could not be + found. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library item specified by ``library_item_id`` is not a + member of a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the content of the library item specified by ``library_item_id`` + has been deleted from the storage backings (see + LibraryModel#storageBackings) associated with it. + + For instance, this {\\\\@term error) is reported on synchronizing a + library item in a subscribed library that was restored from backup, + and the library item was deleted after backup, thus resulting in + its content being deleted from the associated storage backings. In + this scenario, the metadata of the library item is present on a + restore, while its content has been deleted. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``library_item_id`` requires + ``ContentLibrary.SyncLibraryItem``. + """ + ... + +class Subscriptions(VapiInterface): + """ + The ``Subscriptions`` class provides methods for managing the subscription + information of the subscribers of a published library. This class was added + in vSphere API 6.7.2. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Location(Enum): + """ + The ``Subscriptions.Location`` class defines the location of subscribed + library relative to the published library. This enumeration was added in + vSphere API 6.7.2. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + LOCAL = ... + REMOTE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Location` instance. + """ + ... + + class CreateSpecNewSubscribedLibrary(VapiStruct): + """ + The ``Subscriptions.CreateSpecNewSubscribedLibrary`` class defines the + information required to create a new subscribed library. This class was + added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + description=..., + storage_backings=..., + automatic_sync_enabled=..., + on_demand=..., + ) -> None: + """ + :type name: :class:`str` + :param name: Name of the subscribed library. This attribute was added in vSphere + API 6.7.2. + :type description: :class:`str` or ``None`` + :param description: Description of the subscribed library. This attribute was added in + vSphere API 6.7.2. + If None, the description will be an empty string. + :type storage_backings: :class:`list` of :class:`StorageBacking` + :param storage_backings: The list of default storage backings for this library. + + The list must contain exactly one storage backing. Multiple default + storage locations are not currently supported but may become + supported in future releases.. This attribute was added in vSphere + API 6.7.2. + :type automatic_sync_enabled: :class:`bool` + :param automatic_sync_enabled: Specifies whether the library should participate in automatic + library synchronization. This attribute was added in vSphere API + 6.7.2. + :type on_demand: :class:`bool` + :param on_demand: Specifies whether a library item's content will be synchronized + only on demand. This attribute was added in vSphere API 6.7.2. + """ + ... + + class CreateSpecVcenter(VapiStruct): + """ + The ``Subscriptions.CreateSpecVcenter`` class defines information about the + vCenter Server instance where the subscribed library associated with the + subscription exists or will be created. This class was added in vSphere API + 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, hostname=..., https_port=...) -> None: + """ + :type hostname: :class:`str` + :param hostname: The hostname of the subscribed library's vCenter Server. This + attribute was added in vSphere API 6.7.2. + :type https_port: :class:`long` or ``None`` + :param https_port: The HTTPS port of the vCenter Server instance where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + If None, port 443 will be used. + """ + ... + + class CreateSpecPlacement(VapiStruct): + """ + The ``Subscriptions.CreateSpecPlacement`` class defines the placement + information for the subscribed library's virtual machine template library + items. Storage location of the virtual machine template items is defined by + the subscribed library's storage backing. This placement information needs + to be compatible with the subscribed library's storage backing. The + ``Subscriptions.CreateSpecPlacement`` class is only applicable for the + virtual machine template library items of the subscribed library. This + class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., cluster=..., resource_pool=..., host=..., network=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine template + should be placed. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Folder:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Folder:VCenter``. + This attribute is currently required. In future, if this is None, + the system will attempt to choose a suitable folder for the virtual + machine template; if a folder cannot be chosen, publishing a + virtual machine template item will fail. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster onto which the virtual machine template should be placed. + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. If ``cluster`` and + ``host`` are both specified, ``host`` must be a member of + ``cluster``. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource:VCenter``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``ClusterComputeResource:VCenter``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine template should be + placed. If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. If ``cluster`` and + ``resourcePool`` are both specified, ``resourcePool`` must belong + to ``cluster``. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``ResourcePool:VCenter``. + This attribute is currently required. In future, if this is None, + the system will attempt to choose a suitable resource pool for the + virtual machine template; if a resource pool cannot be chosen, + publish of virtual machine template item will fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine template should be placed. If + ``host`` and ``resourcePool`` are both specified, ``resourcePool`` + must belong to ``host``. If ``host`` and ``cluster`` are both + specified, ``host`` must be a member of ``cluster``. This attribute + was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``HostSystem:VCenter``. + If this is None, the system will attempt to choose a suitable host + for the virtual machine template; if a host cannot be chosen, + publishing the virtual machine template item will fail. + :type network: :class:`str` or ``None`` + :param network: Network that backs the virtual Ethernet adapters in the virtual + machine template. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Network:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Network:VCenter``. + If None, the virtual Ethernet adapters will not be backed by a + network. + """ + ... + + class CreateSpecSubscribedLibrary(VapiStruct): + """ + The ``Subscriptions.CreateSpecSubscribedLibrary`` class defines the + subscribed library information used to create the subscription. This class + was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + target=..., + new_subscribed_library=..., + subscribed_library=..., + location=..., + vcenter=..., + placement=..., + ) -> None: + """ + :type target: :class:`Subscriptions.CreateSpecSubscribedLibrary.Target` + :param target: Specifies whether the target subscribed library should be newly + created or an existing subscribed library should be used. This + attribute was added in vSphere API 6.7.2. + :type new_subscribed_library: :class:`Subscriptions.CreateSpecNewSubscribedLibrary` + :param new_subscribed_library: Specification for creating a new subscribed library associated with + the subscription. This attribute was added in vSphere API 6.7.2. + This attribute is optional and it is only relevant when the value + of ``target`` is + :attr:`Subscriptions.CreateSpecSubscribedLibrary.Target.CREATE_NEW`. + :type subscribed_library: :class:`str` + :param subscribed_library: Identifier of the existing subscribed library to associate with the + subscription. Only the subscribed libraries for which + :attr:`SubscriptionInfo.subscription_url` property is set to the + :attr:`PublishInfo.publish_url` of the published library can be + associated with the subscription. This attribute was added in + vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute is optional and it is only relevant when the value + of ``target`` is + :attr:`Subscriptions.CreateSpecSubscribedLibrary.Target.USE_EXISTING`. + :type location: :class:`Subscriptions.Location` + :param location: Location of the subscribed library relative to the published + library. This attribute was added in vSphere API 6.7.2. + :type vcenter: :class:`Subscriptions.CreateSpecVcenter` + :param vcenter: Specification for the subscribed library's vCenter Server instance. + This attribute was added in vSphere API 6.7.2. + This attribute is optional and it is only relevant when the value + of ``location`` is :attr:`Subscriptions.Location.REMOTE`. + :type placement: :class:`Subscriptions.CreateSpecPlacement` or ``None`` + :param placement: Placement specification for the virtual machine template library + items on the subscribed library. This attribute was added in + vSphere API 6.7.2. + This attribute is currently required. In future, if this is None, + the system will attempt to choose a suitable placement + specification for the virtual machine template items; if a + placement specification cannot be chosen, publish of virtual + machine template items will fail. + """ + ... + + class Target(Enum): + """ + The ``Subscriptions.CreateSpecSubscribedLibrary.Target`` class defines the + options related to the target subscribed library which will be associated + with the subscription. This enumeration was added in vSphere API 6.7.2. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + CREATE_NEW = ... + USE_EXISTING = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Target` instance. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``Subscriptions.CreateSpec`` class defines the information required to + create a new subscription of the published library. This class was added in + vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, subscribed_library=...) -> None: + """ + :type subscribed_library: :class:`Subscriptions.CreateSpecSubscribedLibrary` + :param subscribed_library: Specification for the subscribed library to be associated with the + subscription. This attribute was added in vSphere API 6.7.2. + """ + ... + + class Summary(VapiStruct): + """ + The ``Subscriptions.Summary`` class contains commonly used information + about the subscription. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + subscription=..., + subscribed_library=..., + subscribed_library_name=..., + subscribed_library_vcenter_hostname=..., + ) -> None: + """ + :type subscription: :class:`str` + :param subscription: Identifier of the subscription. This attribute was added in vSphere + API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + :type subscribed_library: :class:`str` + :param subscribed_library: Identifier of the subscribed library. This attribute was added in + vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + :type subscribed_library_name: :class:`str` + :param subscribed_library_name: Name of the subscribed library. This attribute was added in vSphere + API 6.7.2. + :type subscribed_library_vcenter_hostname: :class:`str` or ``None`` + :param subscribed_library_vcenter_hostname: Hostname of the vCenter instance where the subscribed library + exists. This attribute was added in vSphere API 6.7.2. + This attribute is unset if the subscribed library is on the same + vCenter Server instance as the published library. + """ + ... + + class UpdateSpecVcenter(VapiStruct): + """ + The ``Subscriptions.UpdateSpecVcenter`` class defines information about the + vCenter Server instance where the subscribed library associated with the + subscription exists. The ``Subscriptions.UpdateSpecVcenter`` class is only + applicable to subscribed library which exists on remote vCenter Server + instance. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, hostname=..., https_port=...) -> None: + """ + :type hostname: :class:`str` or ``None`` + :param hostname: The hostname of the subscribed library's vCenter Server. This + attribute was added in vSphere API 6.7.2. + If None, the value is unchanged. + :type https_port: :class:`long` or ``None`` + :param https_port: The HTTPS port of the vCenter Server instance where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + If None, the value is unchanged. + """ + ... + + class UpdateSpecPlacement(VapiStruct): + """ + The ``Subscriptions.UpdateSpecPlacement`` class defines the placement + information for the subscribed library's virtual machine template library + items. Storage location of the virtual machine template items is defined by + the subscribed library's storage backing. This placement information needs + to be compatible with the subscribed library's storage backing. The + ``Subscriptions.UpdateSpecPlacement`` class is only applicable for the + newly published virtual machine template library items of the subscribed + library. Existing items will not be moved. This class was added in vSphere + API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., cluster=..., resource_pool=..., host=..., network=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine template + should be placed. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Folder:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Folder:VCenter``. + This attribute is currently required. In future, if this is None, + the system will attempt to choose a suitable folder for the virtual + machine template; if a folder cannot be chosen, publishing a + virtual machine template item will fail. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster onto which the virtual machine template should be placed. + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. If ``cluster`` and + ``host`` are both specified, ``host`` must be a member of + ``cluster``. If ``resourcePool`` or ``host`` is specified, it is + recommended that this attribute be None. This attribute was added + in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource:VCenter``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``ClusterComputeResource:VCenter``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine template should be + placed. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``ResourcePool:VCenter``. + This attribute is currently required. In future, if this is None, + the system will attempt to choose a suitable resource pool for the + virtual machine template; if a resource pool cannot be chosen, + publish of virtual machine template item will fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine template should be placed. If + ``host`` and ``resourcePool`` are both specified, ``resourcePool`` + must belong to ``host``. If ``host`` and ``cluster`` are both + specified, ``host`` must be a member of ``cluster``. This attribute + was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``HostSystem:VCenter``. + If this is None, the system will attempt to choose a suitable host + for the virtual machine template; if a host cannot be chosen, + publishing the virtual machine template item will fail. + :type network: :class:`str` or ``None`` + :param network: Network that backs the virtual Ethernet adapters in the virtual + machine template. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Network:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Network:VCenter``. + If None, newly published virtual machine template library items + will not be backed by a network. + """ + ... + + class UpdateSpec(VapiStruct): + """ + The ``Subscriptions.UpdateSpec`` class defines information required to + update the subscription. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, subscribed_library_vcenter=..., subscribed_library_placement=... + ) -> None: + """ + :type subscribed_library_vcenter: :class:`Subscriptions.UpdateSpecVcenter` or ``None`` + :param subscribed_library_vcenter: Specification for the subscribed library's vCenter Server instance. + This attribute was added in vSphere API 6.7.2. + If None, the value is unchanged. + :type subscribed_library_placement: :class:`Subscriptions.UpdateSpecPlacement` or ``None`` + :param subscribed_library_placement: Placement specification for the virtual machine template items of + the subscribed library. Updating this information will only affect + new or updated items, existing items will not be moved. The entire + placement configuration of the subscribed library will replaced by + the new specification. This attribute was added in vSphere API + 6.7.2. + If None, the placement configuration of the subscribed library will + be unchanged. + """ + ... + + class VcenterInfo(VapiStruct): + """ + The ``Subscriptions.VcenterInfo`` class contains information about the + vCenter Server instance where the subscribed library associated with the + subscription exists. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, hostname=..., https_port=..., server_guid=...) -> None: + """ + :type hostname: :class:`str` + :param hostname: Hostname of the vCenter Server instance where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + :type https_port: :class:`long` or ``None`` + :param https_port: The HTTPS port of the vCenter Server instance where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + If None, port 443 will be used. + :type server_guid: :class:`str` + :param server_guid: The unique identifier of the vCenter Server where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + """ + ... + + class PlacementInfo(VapiStruct): + """ + The ``Subscriptions.PlacementInfo`` class contains the placement + information for the subscribed library's virtual machine template library + items. The ``Subscriptions.PlacementInfo`` class is only applicable for the + virtual machine template library items of the subscribed library. This + class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., cluster=..., resource_pool=..., host=..., network=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine template + should be placed. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Folder:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Folder:VCenter``. + The attribute will be None if the subscribed library associated + with the subscription does not have a virtual machine folder. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster onto which the virtual machine template should be placed. + This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource:VCenter``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``ClusterComputeResource:VCenter``. + The attribute will be None if the subscribed library associated + with the subscription does not have a cluster. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine template should be + placed. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``ResourcePool:VCenter``. + The attribute will be None if the subscribed library associated + with the subscription does not have a resource pool. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine template should be placed. If + ``host`` and ``resourcePool`` are both specified, ``resourcePool`` + must belong to ``host``. If ``host`` and ``cluster`` are both + specified, ``host`` must be a member of ``cluster``. This attribute + was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem:VCenter``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``HostSystem:VCenter``. + The attribute will be None if the subscribed library associated + with the subscription does not have a host. + :type network: :class:`str` or ``None`` + :param network: Network that backs the virtual Ethernet adapters in the virtual + machine template. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Network:VCenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Network:VCenter``. + The attribute will be None if the subscribed library associated + with the subscription does not have a network. + """ + ... + + class Info(VapiStruct): + """ + The ``Subscriptions.Info`` class contains information about the + subscription. This class was added in vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + subscribed_library=..., + subscribed_library_name=..., + subscribed_library_location=..., + subscribed_library_vcenter=..., + subscribed_library_placement=..., + ) -> None: + """ + :type subscribed_library: :class:`str` + :param subscribed_library: Identifier of the subscribed library associated with the + subscription. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + :type subscribed_library_name: :class:`str` + :param subscribed_library_name: Name of the subscribed library associated with the subscription. + This attribute was added in vSphere API 6.7.2. + :type subscribed_library_location: :class:`Subscriptions.Location` + :param subscribed_library_location: Location of the subscribed library relative to the published + library. This attribute was added in vSphere API 6.7.2. + :type subscribed_library_vcenter: :class:`Subscriptions.VcenterInfo` + :param subscribed_library_vcenter: Information about the vCenter Server instance where the subscribed + library exists. This attribute was added in vSphere API 6.7.2. + This attribute is optional and it is only relevant when the value + of ``subscribedLibraryLocation`` is + :attr:`Subscriptions.Location.REMOTE`. + :type subscribed_library_placement: :class:`Subscriptions.PlacementInfo` + :param subscribed_library_placement: Placement information about the subscribed library's virtual + machine template items. This attribute was added in vSphere API + 6.7.2. + """ + ... + + def create(self, library, spec, client_token=...): + """ + Creates a subscription of the published library. This method was added + in vSphere API 6.7.2. + + :type client_token: :class:`str` or ``None`` + :param client_token: A unique token generated on the client for each creation request. + The token should be a universally unique identifier (UUID), for + example: ``b8a2a2e3-2314-43cd-a871-6ede0f429751``. This token can + be used to guarantee idempotent creation. + If not specified, creation is not idempotent. + :type library: :class:`str` + :param library: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type spec: :class:`Subscriptions.CreateSpec` + :param spec: Specification for the subscription. + :rtype: :class:`str` + :return: Subscription identifier. + The return value will be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + If a subscription of the published library to the specified + subscribed library already exists. This is only applicable when + ``subscribedLibrary#subscribedLibrary`` is specified. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the subscribed library specified by + ``subscribedLibrary#subscribedLibrary`` does not exist at the + vCenter instance specified by ``subscribedLibrary#vcenter``. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + If the vCenter instance specified by ``subscribedLibrary#vcenter`` + cannot be contacted or found. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If :class:`Subscriptions.CreateSpec` contains invalid arguments. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library`` is not a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library`` requires ``ContentLibrary.AddSubscription``. + """ + ... + + def delete(self, library, subscription): + """ + Deletes the specified subscription of the published library. The + subscribed library associated with the subscription will not be + deleted. This method was added in vSphere API 6.7.2. + + :type library: :class:`str` + :param library: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type subscription: :class:`str` + :param subscription: Subscription identifier. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library`` is not a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the subscription specified by ``subscription`` does not exist + for the library specified by ``library``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library`` requires + ``ContentLibrary.DeleteSubscription``. + """ + ... + + def list(self, library): + """ + Lists the subscriptions of the published library. This method was added + in vSphere API 6.7.2. + + :type library: :class:`str` + :param library: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :rtype: :class:`list` of :class:`Subscriptions.Summary` + :return: List of commonly used information about subscriptions of the + published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library`` is not a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library`` requires ``System.Read``. + """ + ... + + def update(self, library, subscription, spec): + """ + Updates the specified subscription of the published library. + + This is an incremental update to the subscription. Except for the + :class:`Subscriptions.UpdateSpecPlacement` class, attributes that are + None in the update specification will be left unchanged. If + ``spec#subscribedLibraryPlacement`` is specified, all attributes of the + current subscribed library placement will be replaced by this + placement.. This method was added in vSphere API 6.7.2. + + :type library: :class:`str` + :param library: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type subscription: :class:`str` + :param subscription: subscription identifier. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + :type spec: :class:`Subscriptions.UpdateSpec` + :param spec: Specification of the new property values to set on the + subscription. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the subscription specified by ``subscription`` does not exist + for the library specified by ``library``. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + If the subscribed library cannot be contacted or found. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If :class:`Subscriptions.UpdateSpec` contains invalid arguments. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library`` is not a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library`` requires + ``ContentLibrary.UpdateSubscription``. + """ + ... + + def get(self, library, subscription): + """ + Returns information about the specified subscription of the published + library. This method was added in vSphere API 6.7.2. + + :type library: :class:`str` + :param library: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type subscription: :class:`str` + :param subscription: Identifier of the subscription. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + :rtype: :class:`Subscriptions.Info` + :return: Information about the subscription. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If the ``subscription`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library`` is not a published library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library`` requires ``System.Read``. + """ + ... + +class _ItemStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _SubscribedItemStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _SubscriptionsStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/com/vmware/content_client.pyi b/typings/com/vmware/content_client.pyi new file mode 100644 index 00000000..ccda0ce8 --- /dev/null +++ b/typings/com/vmware/content_client.pyi @@ -0,0 +1,1474 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.enum import Enum +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The Content module provides classes and classes for configuring global settings +and permissions, and for managing libraries in the Content Library Service. + +""" +__author__ = ... +__docformat__ = ... + +class SecurityRuleType(Enum): + """ + The ``SecurityRuleType`` class defines the security rules which can be + applied to different item types. This enumeration was added in vSphere API + 7.0.3.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + OVF_STRICT_VERIFICATION = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`SecurityRuleType` instance. + """ + ... + +class ConfigurationModel(VapiStruct): + """ + The ``ConfigurationModel`` class defines the global settings of the Content + Library Service. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + automatic_sync_enabled=..., + automatic_sync_start_hour=..., + automatic_sync_stop_hour=..., + maximum_concurrent_item_syncs=..., + ) -> None: + """ + :type automatic_sync_enabled: :class:`bool` + :param automatic_sync_enabled: Whether automatic synchronization is enabled. + + When automatic synchronization is enabled, the Content Library + Service will automatically synchronize all subscribed libraries on + a daily basis. Subscribed libraries with the + :attr:`com.vmware.content.library_client.SubscriptionInfo.automatic_sync_enabled` + flag turned on will be synchronized every hour between + :attr:`ConfigurationModel.automatic_sync_start_hour` and + :attr:`ConfigurationModel.automatic_sync_stop_hour`. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type automatic_sync_start_hour: :class:`long` + :param automatic_sync_start_hour: The hour at which the automatic synchronization will start. This + value is between 0 (midnight) and 23 inclusive. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type automatic_sync_stop_hour: :class:`long` + :param automatic_sync_stop_hour: The hour at which the automatic synchronization will stop. Any + active synchronization operation will continue to run, however no + new synchronization operations will be triggered after the stop + hour. This value is between 0 (midnight) and 23 inclusive. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type maximum_concurrent_item_syncs: :class:`long` + :param maximum_concurrent_item_syncs: The maximum allowed number of library items to synchronize + concurrently from remote libraries. This must be a positive number. + The service may not be able to guarantee the requested concurrency + if there is no available capacity. + + This setting is global across all subscribed libraries. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + """ + ... + +class LibraryModel(VapiStruct): + """ + The :class:`LibraryModel` class represents a Content Library resource + model. + + A ``LibraryModel`` is a container for a set of items which represent a + usable set of files. The Content Library Service allows for multiple + libraries to be created with separate authorization and sharing policies. + + Each ``LibraryModel`` is a container for a set of + :class:`com.vmware.content.library_client.ItemModel` instances. Each item + is a logical object in a library, which may have multiple files. + + A ``LibraryModel`` may be local or subscribed. A local library has its + source of truth about items within this Content Library Service. Items may + be added to or removed from the library. A local library may also be + private or published. When published, the library is exposed by a network + endpoint and can be used by another Content Library Service for + synchronization. A private local library cannot be used for + synchronization. + + A subscribed library is a library which gets its source of truth from + another library that may be across a network in another Content Library + Service. A subscribed library may have a different name and metadata from + the library to which it subscribes, but the set of library items is always + the same as those in the source library. Library items cannot be manually + added to a subscribed library -- they can only be added by adding new items + to the source library. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + id=..., + creation_time=..., + description=..., + last_modified_time=..., + last_sync_time=..., + name=..., + storage_backings=..., + type=..., + optimization_info=..., + version=..., + publish_info=..., + subscription_info=..., + server_guid=..., + security_policy_id=..., + unset_security_policy_id=..., + ) -> None: + """ + :type id: :class:`str` + :param id: An identifier which uniquely identifies this ``LibraryModel``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute is not used for the ``create`` method. It will not + be present in the return value of the ``get`` or ``list`` methods. + It is not used for the ``update`` method. + :type creation_time: :class:`datetime.datetime` + :param creation_time: The date and time when this library was created. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type description: :class:`str` + :param description: A human-readable description for this library. + This attribute is optional for the ``create`` method. Leaving it + None during creation will result in an empty string value. It will + always be present in the result of a ``get`` or ``list`` method. It + is optional for the ``update`` method. Leaving it None during + update indicates that the description should be left unchanged. + :type last_modified_time: :class:`datetime.datetime` + :param last_modified_time: The date and time when this library was last updated. + + This attribute is updated automatically when the library properties + are changed. This attribute is not affected by adding, removing, or + modifying a library item or its content within the library. Tagging + the library or syncing the subscribed library does not alter this + attribute. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type last_sync_time: :class:`datetime.datetime` + :param last_sync_time: The date and time when this library was last synchronized. + + This attribute applies only to subscribed libraries. It is updated + every time a synchronization is triggered on the library. The value + is None for a local library. + This attribute is not used for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is not used for the ``update`` method. + :type name: :class:`str` + :param name: The name of the library. + + A Library is identified by a human-readable name. Library names + cannot be undefined or an empty string. Names do not have to be + unique. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is optional for the ``update`` method. + :type storage_backings: :class:`list` of :class:`com.vmware.content.library_client.StorageBacking` + :param storage_backings: The list of default storage backings which are available for this + library. + + A :class:`com.vmware.content.library_client.StorageBacking` defines + a default storage location which can be used to store files for + library items in this library. Some library items, for instance, + virtual machine template items, support files that may be + distributed across various storage backings. One or more item files + may or may not be located on the default storage backing. + + Multiple default storage locations are not currently supported but + may become supported in future releases. + This attribute must be provided for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type type: :class:`LibraryModel.LibraryType` + :param type: The type (LOCAL, SUBSCRIBED) of this library. + + This value can be used to determine what additional services and + information can be available for this library. This attribute is + not used for the ``create`` and ``update`` methods. It will always + be present in the result of a ``get`` method. + This attribute is not used for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type optimization_info: :class:`com.vmware.content.library_client.OptimizationInfo` + :param optimization_info: Defines various optimizations and optimization parameters applied + to this library. + This attribute is optional for the ``create`` method. It is + optional in the return value of the ``get`` or ``list`` methods. It + is optional for the ``update`` method. + :type version: :class:`str` + :param version: A version number which is updated on metadata changes. This value + allows clients to detect concurrent updates and prevent accidental + clobbering of data. + + This value represents a number which is incremented every time + library properties, such as name or description, are changed. It is + not incremented by changes to a library item within the library, + including adding or removing items. It is also not affected by + tagging the library. + This attribute is not used for the ``create`` method. It will + always be present in the result of a ``get`` or ``list`` method. It + is optional for the ``update`` method. Leaving it None during + update indicates that you do not need to detect concurrent updates. + :type publish_info: :class:`com.vmware.content.library_client.PublishInfo` + :param publish_info: Defines how this library is published so that it can be subscribed + to by a remote subscribed library. + + The :class:`com.vmware.content.library_client.PublishInfo` defines + where and how the metadata for this local library is accessible. A + local library is only published publically if + :attr:`com.vmware.content.library_client.PublishInfo.published` is + ``true``. + This attribute is optional for the ``create`` and ``update`` + methods. If not specified during creation, the default is for the + library to not be published. If not specified during update, the + attribute is left unchanged. + :type subscription_info: :class:`com.vmware.content.library_client.SubscriptionInfo` + :param subscription_info: Defines the subscription behavior for this Library. + + The :class:`com.vmware.content.library_client.SubscriptionInfo` + defines how this subscribed library synchronizes to a remote + source. Setting the value will determine the remote source to which + the library synchronizes, and how. Changing the subscription will + result in synchronizing to a new source. If the new source differs + from the old one, the old library items and data will be lost. + Setting + :attr:`com.vmware.content.library_client.SubscriptionInfo.automatic_sync_enabled` + to false will halt subscription but will not remove existing cached + data. + This attribute is optional for the ``create`` and ``update`` + methods. If not specified during creation, a default will be + created without an active subscription. If not specified during + update, the attribute is left unchanged. + :type server_guid: :class:`str` + :param server_guid: The unique identifier of the vCenter server where the library + exists. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vcenter.VCenter``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.vcenter.VCenter``. + This attribute is optional for the ``create`` method. It will + always be present in the return value of the ``get`` or ``list`` + methods. It is not used for the ``update`` method. + :type security_policy_id: :class:`str` or ``None`` + :param security_policy_id: Represents the security policy applied to this library. + + Setting the attribute will make the library secure. This field is + ignored in ``update`` method if + :attr:`LibraryModel.unset_security_policy_id` is set to ``true``.. + This attribute was added in vSphere API 7.0.3.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute is optional for the ``create`` and ``update`` + methods. If not set in ``create`` method, the library will be + insecure. If not specified in ``update`` method, the attribute is + left unchanged. + :type unset_security_policy_id: :class:`bool` + :param unset_security_policy_id: This represents the intent of the change to + :attr:`LibraryModel.security_policy_id` in ``update`` method. + + If this field is set to ``true``, any security policy applied to + the library will be removed. If this field is set to ``false``, any + security policy applied to library will be changed to the value + specified in :attr:`LibraryModel.security_policy_id`, if any.. This + attribute was added in vSphere API 7.0.3.0. + This attribute is optional for the ``update`` method. If None, any + existing security policy will be changed to the value specified in + :attr:`LibraryModel.security_policy_id`, if any. + """ + ... + + class LibraryType(Enum): + """ + The ``LibraryModel.LibraryType`` class defines the type of a + :class:`LibraryModel`. + + The type of a library can be used to determine which additional services + can be performed with a library. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + LOCAL = ... + SUBSCRIBED = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`LibraryType` instance. + """ + ... + +class Configuration(VapiInterface): + """ + The ``Configuration`` class provides methods to configure the global + settings of the Content Library Service. + + The configuration settings are used by the Content Library Service to + control the behavior of various operations. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + def update(self, model): + """ + Updates the configuration. The update is incremental. Any attribute in + the :class:`ConfigurationModel` class that is None will not be + modified. Note that this update method doesn't guarantee an atomic + change of all the properties. In the case of a system crash or failure, + some of the properties could be left unchanged while others may be + updated. + + :type model: :class:`ConfigurationModel` + :param model: The :class:`ConfigurationModel` specifying the settings to update. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if one of the configuration properties is not within the proper + range. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.UpdateConfiguration``. + """ + ... + + def get(self): + """ + Retrieves the current configuration values. + + + :rtype: :class:`ConfigurationModel` + :return: The :class:`ConfigurationModel` instance representing the + configuration of the Content Library Service. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.GetConfiguration``. + """ + ... + +class Library(VapiInterface): + """ + The ``Library`` class provides methods to manage and find + :class:`LibraryModel` entities. + + The ``Library`` class provides support for generic functionality which can + be applied equally to all types of libraries. The functionality provided by + this class will not affect the properties specific to the type of library. + See also :class:`LocalLibrary` and :class:`SubscribedLibrary`. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class FindSpec(VapiStruct): + """ + Specifies the properties that can be used as a filter to find libraries. + When multiple attributes are specified, all properties of the library must + match the specification. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., type=...) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Name of the library to search. The name is case-insensitive. See + :attr:`LibraryModel.name`. + If not specified any name will be searched. + :type type: :class:`LibraryModel.LibraryType` or ``None`` + :param type: Library type to search. See :attr:`LibraryModel.type`. + If not specified any library type will be searched. + """ + ... + + def get(self, library_id): + """ + Returns a given :class:`LibraryModel`. + + :type library_id: :class:`str` + :param library_id: Identifier of the library to return. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :rtype: :class:`LibraryModel` + :return: The :class:`LibraryModel` instance with the specified + ``library_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the specified library does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``System.Read``. + """ + ... + + def list(self): + """ + Returns the identifiers of all libraries of any type in the Content + Library. + + + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of all identifiers of all libraries in the + Content Library. + The return value will contain identifiers for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + + def find(self, spec): + """ + Returns a list of all the visible (as determined by authorization + policy) libraries matching the requested :class:`Library.FindSpec`. + + :type spec: :class:`Library.FindSpec` + :param spec: Specification describing what properties to filter on. + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of identifiers of all the visible libraries + matching the given ``spec``. + The return value will contain identifiers for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if no properties are specified in the ``spec``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + + def update(self, library_id, update_spec): + """ + Updates the properties of a library. + + This is an incremental update to the library. Any attribute in the + :class:`LibraryModel` class that is None will not be modified. + + This method will only update the common properties for all library + types. This will not, for example, update the + :attr:`LibraryModel.publish_info` of a local library, nor the + :attr:`LibraryModel.subscription_info` of a subscribed library. + Specific properties are updated in :func:`LocalLibrary.update` and + :func:`SubscribedLibrary.update`. + + :type library_id: :class:`str` + :param library_id: Identifier of the library to update. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type update_spec: :class:`LibraryModel` + :param update_spec: Specification of the new property values to set on the library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library associated with ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``update_spec`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`LibraryModel.version` of ``update_spec`` is not equal + to the current version of the library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``ContentLibrary.UpdateLibrary``. + """ + ... + +class LocalLibrary(VapiInterface): + """ + The ``LocalLibrary`` class manages local libraries. + + The ``LocalLibrary`` class provides support for creating and maintaining + local library instances. A local library may also use the :class:`Library` + class to manage general library functionality. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class DestinationSpec(VapiStruct): + """ + The ``LocalLibrary.DestinationSpec`` class contains information required to + publish the library to a specific subscription. This class was added in + vSphere API 6.7.2. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, subscription=...) -> None: + """ + :type subscription: :class:`str` + :param subscription: Identifier of the subscription associated with the subscribed + library. This attribute was added in vSphere API 6.7.2. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.library.Subscriptions``. + """ + ... + + def create(self, create_spec, client_token=...): + """ + Creates a new local library. + + :type client_token: :class:`str` or ``None`` + :param client_token: A unique token generated on the client for each creation request. + The token should be a universally unique identifier (UUID), for + example: ``b8a2a2e3-2314-43cd-a871-6ede0f429751``. This token can + be used to guarantee idempotent creation. + If not specified creation is not idempotent. + :type create_spec: :class:`LibraryModel` + :param create_spec: Specification for the new local library. + :rtype: :class:`str` + :return: Identifier of the newly created :class:`LibraryModel`. + The return value will be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``create_spec`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``client_token`` does not conform to the UUID format. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if using multiple storage backings. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.CreateLocalLibrary``. + * The resource ``Datastore`` referenced by the attribute + :attr:`com.vmware.content.library_client.StorageBacking.datastore_id` + requires ``Datastore.AllocateSpace``. + """ + ... + + def delete(self, library_id): + """ + Deletes the specified local library. + + Deleting a local library will remove the entry immediately and begin an + asynchronous task to remove all cached content for the library. If the + asynchronous task fails, file content may remain on the storage + backing. This content will require manual removal. + + :type library_id: :class:`str` + :param library_id: Identifier of the local library to delete. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a local library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the library contains a library item that cannot be deleted in + its current state. For example, the library item contains a virtual + machine template and a virtual machine is checked out of the + library item. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.DeleteLocalLibrary``. + """ + ... + + def get(self, library_id): + """ + Returns a given local library. + + :type library_id: :class:`str` + :param library_id: Identifier of the local library to return. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :rtype: :class:`LibraryModel` + :return: The :class:`LibraryModel` instance associated with ``library_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a local library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``System.Read``. + """ + ... + + def list(self): + """ + Returns the identifiers of all local libraries in the Content Library. + + + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of identifiers of all local libraries in the + Content Library. + The return value will contain identifiers for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + + def update(self, library_id, update_spec): + """ + Updates the properties of a local library. + + This is an incremental update to the local library. Attributes that are + None in the update specification will be left unchanged. + + :type library_id: :class:`str` + :param library_id: Identifier of the local library to update. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type update_spec: :class:`LibraryModel` + :param update_spec: Specification of the new property values to set on the local + library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the library specified by ``library_id`` is a published library + with JSON persistence enabled (see + :attr:`com.vmware.content.library_client.PublishInfo.persist_json_enabled`) + and the content of the library has been deleted from the storage + backings (see :attr:`LibraryModel.storage_backings`) associated + with it. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a local library. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``update_spec`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the + :attr:`com.vmware.content.library_client.PublishInfo.current_password` + in the ``update_spec`` does not match the existing password of the + published library. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the :attr:`LibraryModel.version` of ``update_spec`` is None and + the library is being concurrently updated by another user. + :raise: :class:`com.vmware.vapi.std.errors_client.ConcurrentChange` + if the :attr:`LibraryModel.version` of ``update_spec`` is not equal + to the current version of the library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.UpdateLocalLibrary``. + """ + ... + + def publish(self, library_id, subscriptions=...): + """ + Publishes the library to specified subscriptions. If no subscriptions + are specified, then publishes the library to all its subscriptions. + This method was added in vSphere API 6.7.2. + + :type library_id: :class:`str` + :param library_id: Identifier of the published library. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type subscriptions: :class:`list` of :class:`LocalLibrary.DestinationSpec` or ``None`` + :param subscriptions: The list of subscriptions to publish this library to. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If one or more ``subscriptions`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + If the library specified by ``library_id`` is a subscribed library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + If the library specified by ``library_id`` is not a published + library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user that requested the method is not authorized to perform + the method. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.PublishLibrary``. + """ + ... + +class SecurityPolicies(VapiInterface): + """ + The ``SecurityPolicies`` class provides methods to manage security + policies. A policy can be applied to a content library. This class was + added in vSphere API 7.0.3.0. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + Representation of a security policy. This class was added in vSphere API + 7.0.3.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, policy=..., name=..., item_type_rules=...) -> None: + """ + :type policy: :class:`str` + :param policy: Identifier of the security policy. This attribute was added in + vSphere API 7.0.3.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.SecurityPolicy``. When methods return a value + of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.SecurityPolicy``. + :type name: :class:`str` + :param name: Name of the security policy. This attribute was added in vSphere + API 7.0.3.0. + :type item_type_rules: :class:`dict` of :class:`str` and :class:`SecurityRuleType` + :param item_type_rules: Map of content library item type and rule types The rules can be + associated with a security policy. When the security policy is + applied to a content library, these rules will be used to validate + specific item type. This attribute was added in vSphere API + 7.0.3.0. + """ + ... + + def list(self): + """ + Returns the list of security policies. This method was added in vSphere + API 7.0.3.0. + + + :rtype: :class:`list` of :class:`SecurityPolicies.Info` + :return: List of security policies. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + +class SubscribedLibrary(VapiInterface): + """ """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class ProbeResult(VapiStruct): + """ + The ``SubscribedLibrary.ProbeResult`` class defines the subscription + information probe result. This describes whether using a given subscription + URL is successful or if there are access problems, such as SSL errors. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, status=..., ssl_thumbprint=..., error_messages=...) -> None: + """ + :type status: :class:`SubscribedLibrary.ProbeResult.Status` + :param status: The status of probe result. This will be one of SUCCESS, + INVALID_URL, TIMED_OUT, HOST_NOT_FOUND, RESOURCE_NOT_FOUND, + INVALID_CREDENTIALS, CERTIFICATE_ERROR, UNKNOWN_ERROR. + :type ssl_thumbprint: :class:`str` or ``None`` + :param ssl_thumbprint: The SSL thumbprint for the remote endpoint. + An SSL thumbprint is only returned if the host is secured with + SSL/TLS. + :type error_messages: :class:`list` of :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param error_messages: If the probe result is in an error status, this attribute will + contain the detailed error messages. + """ + ... + + class Status(Enum): + """ + The ``SubscribedLibrary.ProbeResult.Status`` class defines the error status + constants for the probe result. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + SUCCESS = ... + INVALID_URL = ... + TIMED_OUT = ... + HOST_NOT_FOUND = ... + RESOURCE_NOT_FOUND = ... + INVALID_CREDENTIALS = ... + CERTIFICATE_ERROR = ... + UNKNOWN_ERROR = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Status` instance. + """ + ... + + def create(self, create_spec, client_token=...): + """ + Creates a new subscribed library. + + Once created, the subscribed library will be empty. If the + :attr:`LibraryModel.subscription_info` property is set, the Content + Library Service will attempt to synchronize to the remote source. This + is an asynchronous operation so the content of the published library + may not immediately appear. + + :type client_token: :class:`str` or ``None`` + :param client_token: Unique token generated on the client for each creation request. The + token should be a universally unique identifier (UUID), for + example: ``b8a2a2e3-2314-43cd-a871-6ede0f429751``. This token can + be used to guarantee idempotent creation. + If not specified creation is not idempotent. + :type create_spec: :class:`LibraryModel` + :param create_spec: Specification for the new subscribed library. + :rtype: :class:`str` + :return: Identifier of the newly created subscribed library. + The return value will be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``create_spec`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``client_token`` does not conform to the UUID format. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if using multiple storage backings. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if subscribing to a published library which cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires + ``ContentLibrary.CreateSubscribedLibrary``. + * The resource ``Datastore`` referenced by the attribute + :attr:`com.vmware.content.library_client.StorageBacking.datastore_id` + requires ``Datastore.AllocateSpace``. + """ + ... + + def delete(self, library_id): + """ + Deletes the specified subscribed library. + + Deleting a subscribed library will remove the entry immediately and + begin an asynchronous task to remove all cached content for the + library. If the asynchronous task fails, file content may remain on the + storage backing. This content will require manual removal. + + :type library_id: :class:`str` + :param library_id: Identifier of the subscribed library to delete. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library referenced by ``library_id`` is not a subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library referenced by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.DeleteSubscribedLibrary``. + """ + ... + + def evict(self, library_id): + """ + Evicts the cached content of an on-demand subscribed library. + + This method allows the cached content of a subscribed library to be + removed to free up storage capacity. This method will only work when a + subscribed library is synchronized on-demand. + + :type library_id: :class:`str` + :param library_id: Identifier of the subscribed library whose content should be + evicted. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the library specified by ``library_id`` does not synchronize + on-demand, or if the content of the library specified by + ``library_id`` has been deleted from the storage backings (see + :attr:`LibraryModel.storage_backings`) associated with it. + + For instance, this {\\\\@term error) is reported on evicting an + on-demand subscribed library that was restored from backup, and the + library was deleted after the backup was taken, thus resulting in + its content being deleted from the associated storage backings. In + this scenario, the metadata of the library is present on a restore, + while its content has been deleted. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.EvictSubscribedLibrary``. + """ + ... + + def get(self, library_id): + """ + Returns a given subscribed library. + + :type library_id: :class:`str` + :param library_id: Identifier of the subscribed library to return. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :rtype: :class:`LibraryModel` + :return: The :class:`LibraryModel` instance that corresponds to + ``library_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library associated with ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library associated with ``library_id`` is not a subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``System.Read``. + """ + ... + + def list(self): + """ + Returns the identifiers of all subscribed libraries in the Content + Library. + + + :rtype: :class:`list` of :class:`str` + :return: The :class:`list` of identifiers of all subscribed libraries in the + Content Library. + The return value will contain identifiers for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + + def sync(self, library_id): + """ + Forces the synchronization of the subscribed library. + + Synchronizing a subscribed library forcefully with this method will + perform the same synchronization behavior as would run periodically for + the library. The + :attr:`com.vmware.content.library_client.SubscriptionInfo.on_demand` + setting is respected. Calling this method on a library that is already + in the process of synchronizing will have no effect. + + :type library_id: :class:`str` + :param library_id: Identifier of the subscribed library to synchronize. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the content of the library specified by ``library_id`` has been + deleted from the storage backings (see + :attr:`LibraryModel.storage_backings`) associated with it. + + For instance, this {\\\\@term error) is reported on synchronizing a + subscribed library that was restored from backup, and the library + was deleted after the backup was taken, thus resulting in its + content being deleted from the associated storage backings. In this + scenario, the metadata of the library is present on a restore, + while its content has been deleted. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if some parameter in the subscribed library subscription info is + invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the published library cannot be contacted or found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires ``ContentLibrary.SyncLibrary``. + """ + ... + + def update(self, library_id, update_spec): + """ + Updates the properties of a subscribed library. + + This is an incremental update to the subscribed library. Attributes + that are None in the update specification will be left unchanged. + + :type library_id: :class:`str` + :param library_id: Identifier of the subscribed library to update. + The parameter must be an identifier for the resource type: + ``com.vmware.content.Library``. + :type update_spec: :class:`LibraryModel` + :param update_spec: Specification of the new property values to set on the subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library specified by ``library_id`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the ``update_spec`` updates the subscription URL (see + :attr:`com.vmware.content.library_client.SubscriptionInfo.subscription_url`) + and the content of the library specified by ``library_id`` has been + deleted from the storage backings (see + :attr:`LibraryModel.storage_backings`) associated with it. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the library specified by ``library_id`` is not a subscribed + library. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the ``update_spec`` is not valid. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the subscription info is being updated but the published library + cannot be contacted or found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the :attr:`LibraryModel.version` of ``update_spec`` is None and + the library is being concurrently updated by another user. + :raise: :class:`com.vmware.vapi.std.errors_client.ConcurrentChange` + if the :attr:`LibraryModel.version` of ``update_spec`` is not equal + to the current version of the library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.Library`` referenced by the + parameter ``library_id`` requires + ``ContentLibrary.UpdateSubscribedLibrary``. + """ + ... + + def probe(self, subscription_info): + """ + Probes remote library subscription information, including URL, SSL + certificate and password. The resulting + :class:`SubscribedLibrary.ProbeResult` class describes whether or not + the subscription configuration is successful. + + :type subscription_info: :class:`com.vmware.content.library_client.SubscriptionInfo` + :param subscription_info: The subscription info to be probed. + :rtype: :class:`SubscribedLibrary.ProbeResult` + :return: The subscription info probe result. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.ProbeSubscription``. + """ + ... + +class TrustedCertificates(VapiInterface): + """ + The ``TrustedCertificates`` class provides methods to create, modify, + delete and read trusted certificates. This class was added in vSphere API + 7.0.3.0. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``TrustedCertificates.Info`` class contains a trusted certificate. This + class was added in vSphere API 7.0.3.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, cert_text=...) -> None: + """ + :type cert_text: :class:`str` + :param cert_text: A certificate in Base64 encoding. This attribute was added in + vSphere API 7.0.3.0. + """ + ... + + class Summary(VapiStruct): + """ + The ``TrustedCertificates.Summary`` class contains a trusted certificate + summary. This class was added in vSphere API 7.0.3.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, certificate=..., cert_text=...) -> None: + """ + :type certificate: :class:`str` + :param certificate: Unique identifier for the certificate. It is the TrustStore alias + of the certificate. The alias is the SHA256 hash of the raw + certificate data. This attribute was added in vSphere API 7.0.3.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.TrustedCertificate``. When methods return a + value of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.content.TrustedCertificate``. + :type cert_text: :class:`str` + :param cert_text: Certificate in Base64 encoded PEM format.. This attribute was added + in vSphere API 7.0.3.0. + """ + ... + + class ListResult(VapiStruct): + """ + The ``TrustedCertificates.ListResult`` class contains list of Summary of + the trusted certificates, see :func:`TrustedCertificates.list`. This class + was added in vSphere API 7.0.3.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, certificates=...) -> None: + """ + :type certificates: :class:`list` of :class:`TrustedCertificates.Summary` + :param certificates: List of certificates. This attribute was added in vSphere API + 7.0.3.0. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``TrustedCertificates.CreateSpec`` class is the specification used to + create a trusted certificate, see :func:`TrustedCertificates.create`. This + class was added in vSphere API 7.0.3.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, cert_text=...) -> None: + """ + :type cert_text: :class:`str` + :param cert_text: A certText is the certificate in Base64 encoded PEM format. The + input must be a single line string with escape sequence for + new-lines. This attribute was added in vSphere API 7.0.3.0. + """ + ... + + def create(self, spec): + """ + Adds a certificate to content library trust store. + + This API has to be invoked separately for each certificate block - + (BEGIN_CERTIFICATE ... END_CERTIFICATE). This method was added in + vSphere API 7.0.3.0. + + :type spec: :class:`TrustedCertificates.CreateSpec` + :param spec: Specification for the certificate to be added to content library + trust store. + :rtype: :class:`str` + :return: ID of the certificates added. The certificate ID will be unique for + each certificate. If the certificate already exists, existing ID is + returned. + The return value will be an identifier for the resource type: + ``com.vmware.content.TrustedCertificate``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.AddCertToTrustStore``. + """ + ... + + def get(self, certificate): + """ + Retrieves a trusted certificate for a given certificate id. This method + was added in vSphere API 7.0.3.0. + + :type certificate: :class:`str` + :param certificate: id of the trusted certificate. + The parameter must be an identifier for the resource type: + ``com.vmware.content.TrustedCertificate``. + :rtype: :class:`TrustedCertificates.Info` + :return: :class:`TrustedCertificates.Info` instance that corresponds to the + ``certificate``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if a trusted certificate does not exist for given id. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.TrustedCertificate`` referenced + by the parameter ``certificate`` requires ``System.Read``. + """ + ... + + def list(self): + """ + Returns ``TrustedCertificates.ListResult`` class. All content library's + trusted certificates. This method was added in vSphere API 7.0.3.0. + + + :rtype: :class:`TrustedCertificates.ListResult` + :return: ``TrustedCertificates.ListResult`` containing trusted certificates. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + + def delete(self, certificate): + """ + Deletes the trusted certificate from content library's trust store for + a given identifier. This method was added in vSphere API 7.0.3.0. + + :type certificate: :class:`str` + :param certificate: id of the trusted certificate. + The parameter must be an identifier for the resource type: + ``com.vmware.content.TrustedCertificate``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the trusted certificate specified by ``certificate`` could not + be found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``com.vmware.content.TrustedCertificate`` referenced + by the parameter ``certificate`` requires + ``ContentLibrary.DeleteCertFromTrustStore``. + """ + ... + +class Type(VapiInterface): + """ + The ``Type`` class exposes the + :class:`com.vmware.content.library_client.ItemModel` types that this + Content Library Service supports. + + A library item has an optional type which can be specified with the + :attr:`com.vmware.content.library_client.ItemModel.type` attribute. For + items with a type that is supported by a plugin, the Content Library + Service may understand the files which are part of the library item and can + produce metadata for the item. + + In other cases, uploads may require a process in which one upload implies + subsequent uploads. For example, an Open Virtualization Format (OVF) + package is composed of an OVF descriptor file and the associated virtual + disk files. Uploading an OVF descriptor can enable the Content Library + Service to understand that the complete OVF package requires additional + disk files, and it can set up the transfers for the disks automatically by + adding the file entries for the disks when the OVF descriptor is uploaded. + + When a type is not supported by a plugin, or the type is not specified, the + Content Library Service can handle a library item in a default way, without + adding metadata to the item or guiding the upload process. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``Type.Info`` class describes support for a specific type of data in an + :class:`com.vmware.content.library_client.ItemModel`. The ``Type.Info`` can + be queried through the :class:`Type` class. Type support describes plugins + in the Content Library which can provide metadata on library items and help + manage the transfer process by adding dependent files when a current file + is added. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + description=..., + name=..., + type=..., + vendor=..., + version=..., + supported_rules=..., + ) -> None: + """ + :type description: :class:`str` + :param description: A description of the type support offered by the plugin. + :type name: :class:`str` + :param name: The name of the plugin which provides the type support. + :type type: :class:`str` + :param type: The type which the plugin supports. + + To upload a library item of the type supported by the plugin, the + :attr:`com.vmware.content.library_client.ItemModel.type` attribute + of the item should be set to this value. + :type vendor: :class:`str` + :param vendor: The name of the vendor who created the type support plugin. + :type version: :class:`str` + :param version: The version number of the type support plugin. + :type supported_rules: :class:`list` of :class:`SecurityRuleType` or ``None`` + :param supported_rules: List of security rules which can be applied to this item type. This + attribute was added in vSphere API 7.0.3.0. + If None no security rule can be associated with this item type. + """ + ... + + def list(self): + """ + Returns a :class:`list` of :class:`Type.Info` instances which describe + the type support plugins in a Content Library. + + + :rtype: :class:`list` of :class:`Type.Info` + :return: The :class:`list` of :class:`Type.Info` instances which describe + the type support plugins in a Content Library. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``ContentLibrary.TypeIntrospection``. + """ + ... + +class _ConfigurationStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _LibraryStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _LocalLibraryStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _SecurityPoliciesStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _SubscribedLibraryStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _TrustedCertificatesStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _TypeStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/com/vmware/vcenter/ovf_client.pyi b/typings/com/vmware/vcenter/ovf_client.pyi new file mode 100644 index 00000000..7873db63 --- /dev/null +++ b/typings/com/vmware/vcenter/ovf_client.pyi @@ -0,0 +1,2076 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.enum import Enum +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The ``com.vmware.vcenter.ovf_client`` module provides services to capture and +deploy Open Virtualization Format (OVF) packages to and from the content +library. + +It provides the ability to deploy OVF packages from the content library with +support for advanced network topologies, network services, creating virtual +appliances and virtual machines in hosts, resource pools or clusters. It also +provides the ability to export virtual appliances and virtual machines from +hosts, resource pools or clusters as OVF packages to the content library. + +""" +__author__ = ... +__docformat__ = ... + +class WarningType(Enum): + """ + The ``WarningType`` class defines the warnings which can be raised during + the OVF package deployment. This enumeration was added in vSphere API + 7.0.2.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + SELF_SIGNED_CERTIFICATE = ... + EXPIRED_CERTIFICATE = ... + NOT_YET_VALID_CERTIFICATE = ... + UNTRUSTED_CERTIFICATE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`WarningType` instance. + """ + ... + +class DiskProvisioningType(Enum): + """ + The ``DiskProvisioningType`` class defines the virtual disk provisioning + types that can be set for a disk on the target platform. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + thin = ... + thick = ... + eagerZeroedThick = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`DiskProvisioningType` instance. + """ + ... + +class CertificateParams(VapiStruct): + """ + The ``CertificateParams`` class contains information about the public key + certificate used to sign the OVF package. This class will only be returned + if the OVF package is signed. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + issuer=..., + subject=..., + is_valid=..., + is_self_signed=..., + x509=..., + warnings=..., + type=..., + ) -> None: + """ + :type issuer: :class:`str` + :param issuer: Certificate issuer. For example: /C=US/ST=California/L=Palo + Alto/O=VMware, Inc. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type subject: :class:`str` + :param subject: Certificate subject. For example: + /C=US/ST=Massachusetts/L=Hopkinton/O=EMC Corporation/OU=EMC + Avamar/CN=EMC Corporation. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type is_valid: :class:`bool` + :param is_valid: Is the certificate chain validated. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type is_self_signed: :class:`bool` + :param is_self_signed: Is the certificate self-signed. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type x509: :class:`str` + :param x509: The X509 representation of the certificate. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type warnings: :class:`list` of :class:`WarningInfo` + :param warnings: The list of warnings raised for the OVF certificate used in this + OVF package deployment. Any warning that is not ignored by the + client will cause the OVF package deployment to fail. This + attribute was added in vSphere API 7.0.2.0. + This attribute is set only if the certificate has warnings when + retrieving information about an OVF package by + :func:`LibraryItem.filter`. When the attribute is set, the + :attr:`WarningInfo.ignored` attribute can be updated before the OVF + parameter is passed to :func:`LibraryItem.deploy` to deploy the OVF + package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class WarningInfo(VapiStruct): + """ + The ``WarningInfo`` class provides information about the warnings which are + raised during the OVF package deployment. This class was added in vSphere + API 7.0.2.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, type=..., message=..., ignored=...) -> None: + """ + :type type: :class:`WarningType` + :param type: The warning type raised during the OVF package deployment. This + attribute was added in vSphere API 7.0.2.0. + :type message: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param message: The message specifying more details about the warning. This + attribute was added in vSphere API 7.0.2.0. + :type ignored: :class:`bool` + :param ignored: Indicates if this warning will be ignored when deploying the OVF + package. + + The value is set to be ``false`` when it is returned from + :func:`LibraryItem.filter`, it should be updated to be ``true`` + when calling :func:`LibraryItem.deploy` if the warning can be + ignored, otherwise the OVF package deployment will fail.. This + attribute was added in vSphere API 7.0.2.0. + """ + ... + +class DeploymentOption(VapiStruct): + """ + The ``DeploymentOption`` class contains the information about a deployment + option as defined in the OVF specification. + + This corresponds to the ovf:Configuration element of the + ovf:DeploymentOptionSection in the specification. The + ovf:DeploymentOptionSection specifies a discrete set of intended resource + allocation configurations. This class represents one item from that set. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, key=..., label=..., description=..., default_choice=...) -> None: + """ + :type key: :class:`str` + :param key: The key of the deployment option, corresponding to the ovf:id + attribute in the OVF descriptor. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type label: :class:`str` + :param label: A localizable label for the deployment option. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type description: :class:`str` + :param description: A localizable description for the deployment option. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type default_choice: :class:`bool` + :param default_choice: A :class:`bool` flag indicates whether this deployment option is + the default choice. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. If None or false, it + is not the default. + """ + ... + +class DeploymentOptionParams(VapiStruct): + """ + The ``DeploymentOptionParams`` class describes the possible deployment + options as well as the choice provided by the user. + + This information based on the ovf:DeploymentOptionSection. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, deployment_options=..., selected_key=..., type=...) -> None: + """ + :type deployment_options: :class:`list` of :class:`DeploymentOption` + :param deployment_options: :class:`list` of deployment options. This attribute corresponds to + the ovf:Configuration elements of the ovf:DeploymentOptionSection + in the specification. It is a discrete set of intended resource + allocation configurations from which one can be selected. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type selected_key: :class:`str` + :param selected_key: The selected deployment option. Identifies the + :class:`DeploymentOption` in the list in the ``deploymentOptions`` + attribute with a matching value in the :attr:`DeploymentOption.key` + attribute. + This attribute is optional in the input parameters when deploying + an OVF package. If None the server will use the default deployment + configuration, usually it's the first one in + :attr:`DeploymentOptionParams.deployment_options` :class:`list`. + This attribute is optional in the result when retrieving + information about an OVF package. The value will be set only if it + is specified with the optional ovf:default attribute. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class ExtraConfig(VapiStruct): + """ + The ``ExtraConfig`` class contains the information about a vmw:ExtraConfig + element which can be used to specify configuration settings that are + transferred directly to the ``.vmx`` file. The behavior of the + vmw:ExtraConfig element is similar to the ``extraConfig`` property of the + ``VirtualMachineConfigSpec`` object in the VMware vSphere API. Thus, the + same restrictions apply, such as you cannot set values that could otherwise + be set with other properties in the ``VirtualMachineConfigSpec`` object. + See the VMware vSphere API reference for details on this. + + vmw:ExtraConfig elements may occur as direct child elements of a + VirtualHardwareSection, or as child elements of individual virtual hardware + items. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, key=..., value=..., virtual_system_id=...) -> None: + """ + :type key: :class:`str` + :param key: The key of the ExtraConfig element. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type value: :class:`str` + :param value: The value of the ExtraConfig element. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type virtual_system_id: :class:`str` + :param virtual_system_id: The identifier of the virtual system containing the vmw:ExtraConfig + element. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + """ + ... + +class ExtraConfigParams(VapiStruct): + """ + The ``ExtraConfigParams`` class contains the parameters with information + about the vmw:ExtraConfig elements in an OVF package. + + vmw:ExtraConfig elements can be used to specify configuration settings that + are transferred directly to the ``.vmx`` file. + + The behavior of the vmw:ExtraConfig element is similar to the + ``extraConfig`` property of the ``VirtualMachineConfigSpec`` object in the + VMware vSphere API. Thus, the same restrictions apply, such as you cannot + set values that could otherwise be set with other properties in the + ``VirtualMachineConfigSpec`` object. See the VMware vSphere API reference + for details on this. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, extra_configs=..., exclude_keys=..., include_keys=..., type=... + ) -> None: + """ + :type extra_configs: :class:`list` of :class:`ExtraConfig` + :param extra_configs: :class:`list` of vmw:ExtraConfig elements in the OVF package. + This attribute is optional in the input parameters when deploying + an OVF package. If None there are no extra configuration elements + to use for this OVF package deployment. This attribute will always + be present in the result when retrieving information about an OVF + package. It will be an empty :class:`list` if there are no extra + configuration elements in the OVF package. + :type exclude_keys: :class:`list` of :class:`str` + :param exclude_keys: Specifies which extra configuration items in the :class:`list` in + the ``extraConfigs`` ``field`` should be ignored during deployment. + + If set, the given keys for extra configurations will be ignored + during deployment. The key is defined in the + :attr:`ExtraConfig.key` attribute. + This attribute is optional in the input parameters when deploying + an OVF package. It is an error to set both this and + :attr:`ExtraConfigParams.include_keys`. This attribute is optional + in the result when retrieving information about an OVF package. It + is an error to set both this and + :attr:`ExtraConfigParams.include_keys`. + :type include_keys: :class:`list` of :class:`str` + :param include_keys: Specifies which extra configuration items in the :class:`list` in + the ``extraConfigs`` ``field`` should be included during + deployment. + + If set, all but the given keys for extra configurations will be + ignored during deployment. The key is defined in the + :attr:`ExtraConfig.key` attribute. + This attribute is optional in the input parameters when deploying + an OVF package. It is an error to set both this and + :attr:`ExtraConfigParams.exclude_keys`. This attribute is optional + in the result when retrieving information about an OVF package. It + is an error to set both this and + :attr:`ExtraConfigParams.exclude_keys`. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class IpAllocationParams(VapiStruct): + """ + The ``IpAllocationParams`` class specifies how IP addresses are allocated + to OVF properties. In particular, it informs the deployment platform + whether the guest supports IPv4, IPv6, or both. It also specifies whether + the IP addresses can be obtained through DHCP or through the properties + provided in the OVF environment. + + Ovf Property elements are exposed to the guest software through the OVF + environment. Each Property element exposed in the OVF environment shall be + constructed from the value of the ovf:key attribute. A Property element + contains a key/value pair, it may optionally specify type qualifiers using + the ovf:qualifiers attribute with multiple qualifiers separated by commas. + + The settings in ``IpAllocationParams`` class are global to a deployment. + Thus, if a virtual machine is part of a virtual appliance, then its + settings are ignored and the settings for the virtual appliance is used. + + This information is based on the vmw:IpAssignmentSection in OVF package. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + supported_allocation_scheme=..., + supported_ip_allocation_policy=..., + ip_allocation_policy=..., + supported_ip_protocol=..., + ip_protocol=..., + type=..., + ) -> None: + """ + :type supported_allocation_scheme: :class:`list` of :class:`IpAllocationParams.IpAllocationScheme` + :param supported_allocation_scheme: Specifies the IP allocation schemes supported by the guest + software. This attribute defines the valid values for the IP + allocation policy. This setting is often configured by the virtual + appliance template author or OVF package author to reflect what the + guest software supports, and the IP allocation policy is configured + at deployment time. See + :attr:`IpAllocationParams.ip_allocation_policy`. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type supported_ip_allocation_policy: :class:`list` of :class:`IpAllocationParams.IpAllocationPolicy` + :param supported_ip_allocation_policy: Specifies the IP allocation policies supported. The set of valid + options for the policy is based on the capabilities of the virtual + appliance software, as specified by the + :attr:`IpAllocationParams.supported_allocation_scheme` attribute. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type ip_allocation_policy: :class:`IpAllocationParams.IpAllocationPolicy` + :param ip_allocation_policy: Specifies how IP allocation is done through an IP Pool. This is + typically specified by the deployer. + This attribute is optional in the input parameters when deploying + an OVF package. If None there is no IP allocation policy. This + attribute will always be present in the result when retrieving + information about an OVF package. + :type supported_ip_protocol: :class:`list` of :class:`IpAllocationParams.IpProtocol` + :param supported_ip_protocol: Specifies the IP protocols supported by the guest. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type ip_protocol: :class:`IpAllocationParams.IpProtocol` + :param ip_protocol: Specifies the chosen IP protocol for this deployment. This must be + one of the IP protocols supported by the guest software. See + :attr:`IpAllocationParams.supported_ip_protocol`. + This attribute is optional in the input parameters when deploying + an OVF package. If None there is no IP protocol chosen. This + attribute will always be present in the result when retrieving + information about an OVF package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + + class IpAllocationPolicy(Enum): + """ + The ``IpAllocationParams.IpAllocationPolicy`` class defines the possible IP + allocation policy for a deployment. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DHCP = ... + TRANSIENT_IPPOOL = ... + STATIC_MANUAL = ... + STATIC_IPPOOL = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`IpAllocationPolicy` instance. + """ + ... + + class IpAllocationScheme(Enum): + """ + The ``IpAllocationParams.IpAllocationScheme`` class defines the possible IP + allocation schemes that can be supported by the guest software. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DHCP = ... + OVF_ENVIRONMENT = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`IpAllocationScheme` instance. + """ + ... + + class IpProtocol(Enum): + """ + The ``IpAllocationParams.IpProtocol`` class defines the IP protocols + supported by the guest software. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + IPV4 = ... + IPV6 = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`IpProtocol` instance. + """ + ... + +class OvfMessage(VapiStruct): + """ + The ``OvfMessage`` class describes a base OVF handling error message + related to accessing, validating, deploying, or exporting an OVF package. + + These messages fall into different categories defined in + :class:`OvfMessage.Category`: + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, category=..., issues=..., name=..., value=..., message=..., error=... + ) -> None: + """ + :type category: :class:`OvfMessage.Category` + :param category: The message category. + :type issues: :class:`list` of :class:`ParseIssue` + :param issues: :class:`list` of parse issues (see :class:`ParseIssue`). + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.VALIDATION`. + :type name: :class:`str` + :param name: The name of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type value: :class:`str` + :param value: The value of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type message: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param message: A localizable message. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type error: :class:`vmware.vapi.struct.VapiStruct` + :param error: Represents a server + :class:`com.vmware.vapi.std.errors_client.Error`. + When clients pass a value of this class as a parameter, the + attribute must contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. When methods + return a value of this class as a return value, the attribute will + contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.SERVER`. + """ + ... + + class Category(Enum): + """ + The ``OvfMessage.Category`` class defines the categories of messages (see + :class:`OvfMessage`). + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + VALIDATION = ... + INPUT = ... + SERVER = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Category` instance. + """ + ... + +class ParseIssue(VapiStruct): + """ + The ``ParseIssue`` class contains the information about the issue found + when parsing an OVF package during deployment or exporting an OVF package + including: + + * Parsing and validation error on OVF descriptor (which is an XML + document), manifest and certificate files. + * OVF descriptor generating and device error. + * Unexpected server error. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, category=..., file=..., line_number=..., column_number=..., message=... + ) -> None: + """ + :type category: :class:`ParseIssue.Category` + :param category: The category of the parse issue. + :type file: :class:`str` + :param file: The name of the file in which the parse issue was found. + :type line_number: :class:`long` + :param line_number: The line number of the line in the file (see + :attr:`ParseIssue.file`) where the parse issue was found (or -1 if + not applicable). + :type column_number: :class:`long` + :param column_number: The position in the line (see :attr:`ParseIssue.line_number`) (or + -1 if not applicable). + :type message: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param message: A localizable message describing the parse issue. + """ + ... + + class Category(Enum): + """ + The ``ParseIssue.Category`` class defines the categories of issues that can + be found when parsing files inside an OVF package (see :class:`ParseIssue`) + including OVF descriptor (which is an XML document), manifest and + certificate files, or exporting an OVF package. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + VALUE_ILLEGAL = ... + ATTRIBUTE_REQUIRED = ... + ATTRIBUTE_ILLEGAL = ... + ELEMENT_REQUIRED = ... + ELEMENT_ILLEGAL = ... + ELEMENT_UNKNOWN = ... + SECTION_UNKNOWN = ... + SECTION_RESTRICTION = ... + PARSE_ERROR = ... + GENERATE_ERROR = ... + VALIDATION_ERROR = ... + EXPORT_ERROR = ... + INTERNAL_ERROR = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Category` instance. + """ + ... + +class OvfError(VapiStruct): + """ + The ``OvfError`` class describes an error related to accessing, validating, + deploying, or exporting an OVF package. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, category=..., issues=..., name=..., value=..., message=..., error=... + ) -> None: + """ + :type category: :class:`OvfMessage.Category` + :param category: The message category. + :type issues: :class:`list` of :class:`ParseIssue` + :param issues: :class:`list` of parse issues (see :class:`ParseIssue`). + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.VALIDATION`. + :type name: :class:`str` + :param name: The name of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type value: :class:`str` + :param value: The value of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type message: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param message: A localizable message. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type error: :class:`vmware.vapi.struct.VapiStruct` + :param error: Represents a server + :class:`com.vmware.vapi.std.errors_client.Error`. + When clients pass a value of this class as a parameter, the + attribute must contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. When methods + return a value of this class as a return value, the attribute will + contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.SERVER`. + """ + ... + +class OvfWarning(VapiStruct): + """ + The ``OvfWarning`` class describes a warning related to accessing, + validating, deploying, or exporting an OVF package. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, category=..., issues=..., name=..., value=..., message=..., error=... + ) -> None: + """ + :type category: :class:`OvfMessage.Category` + :param category: The message category. + :type issues: :class:`list` of :class:`ParseIssue` + :param issues: :class:`list` of parse issues (see :class:`ParseIssue`). + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.VALIDATION`. + :type name: :class:`str` + :param name: The name of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type value: :class:`str` + :param value: The value of input parameter. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type message: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param message: A localizable message. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.INPUT`. + :type error: :class:`vmware.vapi.struct.VapiStruct` + :param error: Represents a server + :class:`com.vmware.vapi.std.errors_client.Error`. + When clients pass a value of this class as a parameter, the + attribute must contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. When methods + return a value of this class as a return value, the attribute will + contain all the attributes defined in + :class:`com.vmware.vapi.std.errors_client.Error`. + This attribute is optional and it is only relevant when the value + of ``category`` is :attr:`OvfMessage.Category.SERVER`. + """ + ... + +class OvfInfo(VapiStruct): + """ + The ``OvfInfo`` class contains informational messages related to accessing, + validating, deploying, or exporting an OVF package. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, messages=...) -> None: + """ + :type messages: :class:`list` of :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param messages: A :class:`list` of localizable messages (see + :class:`com.vmware.vapi.std_client.LocalizableMessage`). + """ + ... + +class OvfParams(VapiStruct): + """ + The ``OvfParams`` class defines the common attributes for all OVF + deployment parameters. OVF parameters serve several purposes: + + * Describe information about a given OVF package. + * Describe default deployment configuration. + * Describe possible deployment values based on the deployment environment. + * Provide deployment-specific configuration. + + Each OVF parameters class specifies a particular configurable aspect of OVF + deployment. An aspect has both a query-model and a deploy-model. The + query-model is used when the OVF package is queried, and the deploy-model + is used when deploying an OVF package. + + Most OVF parameter classes provide both informational and deployment + parameters. However, some are purely informational (for example, download + size) and some are purely deployment parameters (for example, the flag to + indicate whether registration as a vCenter extension is accepted). + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, type=...) -> None: + """ + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class Property(VapiStruct): + """ + The ``Property`` class contains the information about a property in an OVF + package. + + A property is uniquely identified by its [classid.]id[.instanceid] + fully-qualified name (see :attr:`Property.class_id`, :attr:`Property.id`, + and :attr:`Property.instance_id`). If multiple properties in an OVF package + have the same fully-qualified name, then the property is excluded and + cannot be set. We do warn about this during import. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + class_id=..., + id=..., + instance_id=..., + category=..., + ui_optional=..., + label=..., + description=..., + type=..., + value=..., + ) -> None: + """ + :type class_id: :class:`str` + :param class_id: The classId of this OVF property. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type id: :class:`str` + :param id: The identifier of this OVF property. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type instance_id: :class:`str` + :param instance_id: The instanceId of this OVF property. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type category: :class:`str` + :param category: If this is set to a non-empty string, this property starts a new + category. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. If None, the property + is in the same category as the previous item, otherwise, it starts + a new category. + :type ui_optional: :class:`bool` + :param ui_optional: Whether a category is UI optional. This is only used if this + property starts a new category (see :attr:`Property.category`). + + The value is stored in an optional attribute vmw:uioptional to the + ovf:Category element. The default value is false. If this value is + true, the properties within this category are optional. The UI + renders this as a group with a check box, and the group is grayed + out until the check box is selected. When the check box is + selected, the input values are read and used in deployment. If + properties within the same category specify conflicting values the + default is used. Only implemented in vSphere Web Client 5.1 and + later as of Nov 2012. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. + :type label: :class:`str` + :param label: The display name of this OVF property. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type description: :class:`str` + :param description: A description of this OVF property. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. + :type type: :class:`str` + :param type: The type of this OVF property. Refer to the configuration of a + virtual appliance/virtual machine for the valid values. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type value: :class:`str` + :param value: The OVF property value. This contains the default value from + ovf:defaultValue if ovf:value is not present when read. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class PropertyParams(VapiStruct): + """ + The ``PropertyParams`` class contains a :class:`list` of OVF properties + that can be configured when the OVF package is deployed. + + This is based on the ovf:ProductSection. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, properties=..., type=...) -> None: + """ + :type properties: :class:`list` of :class:`Property` + :param properties: :class:`list` of OVF properties. + This attribute is optional in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class ScaleOutGroup(VapiStruct): + """ + The ``ScaleOutGroup`` class contains information about a scale-out group. + + It allows a virtual system collection to contain a set of children that are + homogeneous with respect to a prototypical virtual system or virtual system + collection. It shall cause the deployment function to replicate the + prototype a number of times, thus allowing the number of instantiated + virtual systems to be configured dynamically at deployment time. + + This is based on the ovf2:ScaleOutSection. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + id=..., + description=..., + instance_count=..., + minimum_instance_count=..., + maximum_instance_count=..., + ) -> None: + """ + :type id: :class:`str` + :param id: The identifier of the scale-out group. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type description: :class:`str` + :param description: The description of the scale-out group. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type instance_count: :class:`long` + :param instance_count: The scaling factor to use. It defines the number of replicas of the + prototypical virtual system or virtual system collection. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type minimum_instance_count: :class:`long` + :param minimum_instance_count: The minimum scaling factor. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. This will be 1 if + there is no explicit limit. + :type maximum_instance_count: :class:`long` + :param maximum_instance_count: The maximum scaling factor. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. This will be None if + there is no explicit limit. + """ + ... + +class ScaleOutParams(VapiStruct): + """ + The ``ScaleOutParams`` class contains information about the scale-out + groups described in the OVF package. + + When deploying an OVF package, a deployment specific instance count can be + specified (see :attr:`ScaleOutGroup.instance_count`. + + This is based on the ovf2:ScaleOutSection. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, groups=..., type=...) -> None: + """ + :type groups: :class:`list` of :class:`ScaleOutGroup` + :param groups: The :class:`list` of scale-out groups. + This attribute is optional in the input parameters when deploying + an OVF package. If None there are no scale-out groups. This + attribute will always be present in the result when retrieving + information about an OVF package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class SizeParams(VapiStruct): + """ + The ``SizeParams`` class contains estimates of the download and deployment + sizes. + + This information is based on the file references and the ovf:DiskSection in + the OVF descriptor. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + approximate_download_size=..., + approximate_flat_deployment_size=..., + approximate_sparse_deployment_size=..., + variable_disk_size=..., + type=..., + ) -> None: + """ + :type approximate_download_size: :class:`long` + :param approximate_download_size: A best guess as to the total amount of data that must be + transferred to download the OVF package. + + This may be inaccurate due to disk compression etc. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. It will be None if + there is insufficient information to provide a proper estimate. + :type approximate_flat_deployment_size: :class:`long` + :param approximate_flat_deployment_size: A best guess as to the total amount of space required to deploy the + OVF package if using flat disks. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. It will be None if + there is insufficient information to provide a proper estimate. + :type approximate_sparse_deployment_size: :class:`long` + :param approximate_sparse_deployment_size: A best guess as to the total amount of space required to deploy the + OVF package using sparse disks. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. It will be None if + there is insufficient information to provide a proper estimate. + :type variable_disk_size: :class:`bool` + :param variable_disk_size: Whether the OVF uses variable disk sizes. + + For empty disks, rather than specifying a fixed virtual disk + capacity, the capacity may be given using a reference to a + ovf:Property element in a ovf:ProductSection element in OVF + package. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute is optional in the result when + retrieving information about an OVF package. If None or false, the + OVF does not use variable disk sizes. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class UnknownSection(VapiStruct): + """ + The ``UnknownSection`` class contains information about an unknown section + in an OVF package. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, tag=..., info=...) -> None: + """ + :type tag: :class:`str` + :param tag: A namespace-qualified tag in the form ``{ns}tag``. + :type info: :class:`str` + :param info: The description of the Info element. + """ + ... + +class UnknownSectionParams(VapiStruct): + """ + The ``UnknownSectionParams`` class contains a :class:`list` of unknown, + non-required sections. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, unknown_sections=..., type=...) -> None: + """ + :type unknown_sections: :class:`list` of :class:`UnknownSection` + :param unknown_sections: :class:`list` of unknown, non-required sections. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class VcenterExtensionParams(VapiStruct): + """ + The ``VcenterExtensionParams`` class specifies that the OVF package should + be registered as a vCenter extension. The virtual machine or virtual + appliance will gain unrestricted access to the vCenter Server APIs. It must + be connected to a network with connectivity to the vCenter server. + + See :func:`LibraryItem.deploy` and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, required=..., registration_accepted=..., type=...) -> None: + """ + :type required: :class:`bool` + :param required: Whether registration as a vCenter extension is required. + This attribute is not used in the input parameters when deploying + an OVF package. This attribute will always be present in the result + when retrieving information about an OVF package. + :type registration_accepted: :class:`bool` + :param registration_accepted: Whether registration as a vCenter extension is accepted. + + If registration as a vCenter extension is required (see + :attr:`VcenterExtensionParams.required`), this must be set to true + during deployment. Defaults to false when returned from server. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + :type type: :class:`str` + :param type: Unique identifier describing the type of the OVF parameters. The + value is the name of the OVF parameters class. + This attribute must be provided in the input parameters when + deploying an OVF package. This attribute will always be present in + the result when retrieving information about an OVF package. + """ + ... + +class ExportFlag(VapiInterface): + """ + The ``ExportFlag`` class provides methods for retrieving information about + the export flags supported by the server. Export flags can be specified in + a :class:`LibraryItem.CreateSpec` to customize an OVF export. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``ExportFlag.Info`` class describes an export flag supported by the + server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, option=..., description=...) -> None: + """ + :type option: :class:`str` + :param option: The name of the export flag that is supported by the server. + :type description: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param description: Localizable description of the export flag. + """ + ... + + def list(self): + """ + Returns information about the supported export flags by the server. + + The supported flags are: + + PRESERVE_MAC + Include MAC addresses for network adapters. + EXTRA_CONFIG + Include extra configuration in OVF export. + + + Future server versions might support additional flags. + + + :rtype: :class:`list` of :class:`ExportFlag.Info` + :return: A :class:`list` of supported export flags. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + """ + ... + +class ImportFlag(VapiInterface): + """ + The ``ImportFlag`` class provides methods for retrieving information about + the import flags supported by the deployment platform. Import flags can be + specified in a :class:`LibraryItem.ResourcePoolDeploymentSpec` to customize + an OVF deployment. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``ImportFlag.Info`` class describes an import flag supported by the + deployment platform. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, option=..., description=...) -> None: + """ + :type option: :class:`str` + :param option: The name of the import flag that is supported by the deployment + platform. + :type description: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param description: Localizable description of the import flag. + """ + ... + + def list(self, rp): + """ + Returns information about the import flags supported by the deployment + platform. + + The supported flags are: + + LAX + Lax mode parsing of the OVF descriptor. + + + Future server versions might support additional flags. + + :type rp: :class:`str` + :param rp: The identifier of resource pool target for retrieving the import + flag(s). + The parameter must be an identifier for the resource type: + ``ResourcePool``. + :rtype: :class:`list` of :class:`ImportFlag.Info` + :return: A :class:`list` of supported import flags. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the resource pool associated with ``rp`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + * The resource ``ResourcePool`` referenced by the parameter ``rp`` + requires ``System.Read``. + """ + ... + +class LibraryItem(VapiInterface): + """ + The ``LibraryItem`` class provides methods to deploy virtual machines and + virtual appliances from library items containing Open Virtualization Format + (OVF) packages in content library, as well as methods to create library + items in content library from virtual machines and virtual appliances. + + To deploy a virtual machine or a virtual appliance from a library item: + + #. Create a :class:`LibraryItem.DeploymentTarget` to specify the target + deployment type and target deployment designation. + #. Create a :class:`LibraryItem.ResourcePoolDeploymentSpec` to specify the + parameters for the target deployment. + #. Use the ``deploy`` method with the created target and parameter + specifications, along with the identifier of the specified source content + library item. See :func:`LibraryItem.deploy`. + + + + + + To create a library item in content library from a virtual machine or + virtual appliance: + + #. Create a :class:`LibraryItem.DeployableIdentity` to specify the source + virtual machine or virtual appliance to be used as the OVF template source. + #. Create a :class:`LibraryItem.CreateTarget` to specify the target library + and library item. + #. Create a :class:`LibraryItem.CreateSpec` to specify the settings for the + OVF package to be created. + #. Use the ``create`` method with the created target and parameter + specifications, along with the specified source entity. See + :func:`LibraryItem.create`. + + + """ + + DEPLOYABLE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class DeployableIdentity(VapiStruct): + """ + The ``LibraryItem.DeployableIdentity`` class describes the resource created + by a deployment, or the source resource from which library item can be + created, by specifying its resource type and resource identifier. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, type=..., id=...) -> None: + """ + :type type: :class:`str` + :param type: Type of the deployable resource. + When clients pass a value of this class as a parameter, the + attribute must be one of ``VirtualMachine`` or ``VirtualApp``. When + methods return a value of this class as a return value, the + attribute will be one of ``VirtualMachine`` or ``VirtualApp``. + :type id: :class:`str` + :param id: Identifier of the deployable resource. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for one of these resource types: + ``null`` or ``null``. When methods return a value of this class as + a return value, the attribute will be an identifier for one of + these resource types: ``null`` or ``null``. + """ + ... + + class ResourcePoolDeploymentSpec(VapiStruct): + """ + The ``LibraryItem.ResourcePoolDeploymentSpec`` class defines the deployment + parameters that can be specified for the ``deploy`` method where the + deployment target is a resource pool. See :func:`LibraryItem.deploy`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _canonical_to_pep_names = ... + def __init__( + self, + name=..., + annotation=..., + accept_all_eula=..., + network_mappings=..., + storage_mappings=..., + storage_provisioning=..., + storage_profile_id=..., + locale=..., + flags=..., + additional_parameters=..., + default_datastore_id=..., + ) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Name assigned to the deployed target virtual machine or virtual + appliance. + If None, the server will use the name from the OVF package. + :type annotation: :class:`str` or ``None`` + :param annotation: Annotation assigned to the deployed target virtual machine or + virtual appliance. + If None, the server will use the annotation from the OVF package. + :type accept_all_eula: :class:`bool` + :param accept_all_eula: Whether to accept all End User License Agreements. See + :attr:`LibraryItem.OvfSummary.eulas`. + :type network_mappings: (:class:`dict` of :class:`str` and :class:`str`) or ``None`` + :param network_mappings: Specification of the target network to use for sections of type + ovf:NetworkSection in the OVF descriptor. The key in the + :class:`dict` is the section identifier of the ovf:NetworkSection + section in the OVF descriptor and the value is the target network + to be used for deployment. + When clients pass a value of this class as a parameter, the value + in the attribute :class:`dict` must be an identifier for the + resource type: ``Network``. When methods return a value of this + class as a return value, the value in the attribute :class:`dict` + will be an identifier for the resource type: ``Network``. + If None, the server will choose a network mapping. + :type storage_mappings: (:class:`dict` of :class:`str` and :class:`LibraryItem.StorageGroupMapping`) or ``None`` + :param storage_mappings: Specification of the target storage to use for sections of type + vmw:StorageGroupSection in the OVF descriptor. The key in the + :class:`dict` is the section identifier of the + ovf:StorageGroupSection section in the OVF descriptor and the value + is the target storage specification to be used for deployment. See + :class:`LibraryItem.StorageGroupMapping`. + If None, the server will choose a storage mapping. + :type storage_provisioning: :class:`DiskProvisioningType` or ``None`` + :param storage_provisioning: Default storage provisioning type to use for all sections of type + vmw:StorageSection in the OVF descriptor. + If None, the server will choose the provisioning type. + :type storage_profile_id: :class:`str` or ``None`` + :param storage_profile_id: Default storage profile to use for all sections of type + vmw:StorageSection in the OVF descriptor. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``StorageProfile``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``StorageProfile``. + If None, the server will choose the default profile. + :type locale: :class:`str` or ``None`` + :param locale: The locale to use for parsing the OVF descriptor. + If None, the server locale will be used. + :type flags: :class:`list` of :class:`str` or ``None`` + :param flags: Flags to be use for deployment. The supported flag values can be + obtained using :func:`ImportFlag.list`. + If None, no flags will be used. + :type additional_parameters: :class:`list` of :class:`vmware.vapi.struct.VapiStruct` or ``None`` + :param additional_parameters: Additional OVF parameters that may be needed for the deployment. + Additional OVF parameters may be required by the OVF descriptor of + the OVF package in the library item. Examples of OVF parameters + that can be specified through this attribute include, but are not + limited to: + + * :class:`DeploymentOptionParams` + * :class:`ExtraConfigParams` + * :class:`IpAllocationParams` + * :class:`PropertyParams` + * :class:`ScaleOutParams` + * :class:`VcenterExtensionParams` + When clients pass a value of this class as a parameter, the + attribute must contain all the attributes defined in + :class:`OvfParams`. When methods return a value of this class as a + return value, the attribute will contain all the attributes defined + in :class:`OvfParams`. + If None, the server will choose default settings for all parameters + necessary for the ``deploy`` method. See + :func:`LibraryItem.deploy`. + :type default_datastore_id: :class:`str` or ``None`` + :param default_datastore_id: Default datastore to use for all sections of type + vmw:StorageSection in the OVF descriptor. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + If None, the server will choose the default datastore. + """ + ... + + class StorageGroupMapping(VapiStruct): + """ + The ``LibraryItem.StorageGroupMapping`` class defines the storage + deployment target and storage provisioning type for a section of type + vmw:StorageGroupSection in the OVF descriptor. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, type=..., datastore_id=..., storage_profile_id=..., provisioning=... + ) -> None: + """ + :type type: :class:`LibraryItem.StorageGroupMapping.Type` + :param type: Type of storage deployment target to use for the + vmw:StorageGroupSection section. The specified value must be + :attr:`LibraryItem.StorageGroupMapping.Type.DATASTORE` or + :attr:`LibraryItem.StorageGroupMapping.Type.STORAGE_PROFILE`. + :type datastore_id: :class:`str` + :param datastore_id: Target datastore to be used for the storage group. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is optional and it is only relevant when the value + of ``type`` is + :attr:`LibraryItem.StorageGroupMapping.Type.DATASTORE`. + :type storage_profile_id: :class:`str` + :param storage_profile_id: Target storage profile to be used for the storage group. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``StorageProfile``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``StorageProfile``. + This attribute is optional and it is only relevant when the value + of ``type`` is + :attr:`LibraryItem.StorageGroupMapping.Type.STORAGE_PROFILE`. + :type provisioning: :class:`DiskProvisioningType` or ``None`` + :param provisioning: Target provisioning type to use for the storage group. + If None, + :attr:`LibraryItem.ResourcePoolDeploymentSpec.storage_provisioning` + will be used. + """ + ... + + class Type(Enum): + """ + The ``LibraryItem.StorageGroupMapping.Type`` class defines the supported + types of storage targets for sections of type vmw:StorageGroupSection in + the OVF descriptor. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DATASTORE = ... + STORAGE_PROFILE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Type` instance. + """ + ... + + class ResultInfo(VapiStruct): + """ + The ``LibraryItem.ResultInfo`` class defines the information returned along + with the result of a ``create`` or ``deploy`` method to describe errors, + warnings, and informational messages produced by the server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, errors=..., warnings=..., information=...) -> None: + """ + :type errors: :class:`list` of :class:`OvfError` + :param errors: Errors reported by the ``create`` or ``deploy`` method. These + errors would have prevented the ``create`` or ``deploy`` method + from completing successfully. + :type warnings: :class:`list` of :class:`OvfWarning` + :param warnings: Warnings reported by the ``create`` or ``deploy`` method. These + warnings would not have prevented the ``create`` or ``deploy`` + method from completing successfully, but there might be issues that + warrant attention. + :type information: :class:`list` of :class:`OvfInfo` + :param information: Information messages reported by the ``create`` or ``deploy`` + method. For example, a non-required parameter was ignored. + """ + ... + + class DeploymentResult(VapiStruct): + """ + The ``LibraryItem.DeploymentResult`` class defines the result of the + ``deploy`` method. See :func:`LibraryItem.deploy`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, succeeded=..., resource_id=..., error=...) -> None: + """ + :type succeeded: :class:`bool` + :param succeeded: Whether the ``deploy`` method completed successfully. + :type resource_id: :class:`LibraryItem.DeployableIdentity` or ``None`` + :param resource_id: Identifier of the deployed resource entity. + If None, the ``deploy`` method failed and + :attr:`LibraryItem.DeploymentResult.error` will describe the + error(s) that caused the failure. + :type error: :class:`LibraryItem.ResultInfo` or ``None`` + :param error: Errors, warnings, and informational messages produced by the + ``deploy`` method. + If None, no errors, warnings, or informational messages were + reported by the ``deploy`` method. + """ + ... + + class DeploymentTarget(VapiStruct): + """ + The ``LibraryItem.DeploymentTarget`` class describes the location (target) + where a virtual machine or virtual appliance should be deployed. It is used + in the ``deploy`` and ``filter`` methods. See :func:`LibraryItem.deploy` + and :func:`LibraryItem.filter`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, resource_pool_id=..., host_id=..., folder_id=...) -> None: + """ + :type resource_pool_id: :class:`str` + :param resource_pool_id: Identifier of the resource pool to which the virtual machine or + virtual appliance should be attached. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + :type host_id: :class:`str` or ``None`` + :param host_id: Identifier of the target host on which the virtual machine or + virtual appliance will run. The target host must be a member of the + cluster that contains the resource pool identified by + :attr:`LibraryItem.DeploymentTarget.resource_pool_id`. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + If None, the server will automatically select a target host from + the resource pool if + :attr:`LibraryItem.DeploymentTarget.resource_pool_id` is a + stand-alone host or a cluster with Distributed Resource Scheduling + (DRS) enabled. + :type folder_id: :class:`str` or ``None`` + :param folder_id: Identifier of the vCenter folder that should contain the virtual + machine or virtual appliance. The folder must be virtual machine + folder. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + If None, the server will choose the deployment folder. + """ + ... + + class OvfSummary(VapiStruct): + """ + The ``LibraryItem.OvfSummary`` class defines the result of the ``filter`` + method. See :func:`LibraryItem.filter`. The attributes in the class + describe parameterizable information in the OVF descriptor, with respect to + a deployment target, for the ``deploy`` method. See + :func:`LibraryItem.deploy`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _canonical_to_pep_names = ... + def __init__( + self, + name=..., + annotation=..., + eulas=..., + networks=..., + storage_groups=..., + additional_params=..., + ) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Default name for the virtual machine or virtual appliance. + If None, the OVF descriptor did not specify a name. + :type annotation: :class:`str` or ``None`` + :param annotation: Default annotation for the virtual machine or virtual appliance. + If None, the OVF descriptor did not specify an annotation. + :type eulas: :class:`list` of :class:`str` + :param eulas: End User License Agreements specified in the OVF descriptor. All + end user license agreements must be accepted in order for the + ``deploy`` method to succeed. See + :attr:`LibraryItem.ResourcePoolDeploymentSpec.accept_all_eula`. + :type networks: :class:`list` of :class:`str` or ``None`` + :param networks: Section identifiers for sections of type ovf:NetworkSection in the + OVF descriptor. These identifiers can be used as keys in + :attr:`LibraryItem.ResourcePoolDeploymentSpec.network_mappings`. + If None, the OVF descriptor did not specify any networks. + :type storage_groups: :class:`list` of :class:`str` or ``None`` + :param storage_groups: Section identifiers for sections of type vmw:StorageGroupSection in + the OVF descriptor. These identifiers can be used as keys in + :attr:`LibraryItem.ResourcePoolDeploymentSpec.storage_mappings`. + If None, the OVF descriptor did not specify any storage groups. + :type additional_params: :class:`list` of :class:`vmware.vapi.struct.VapiStruct` or ``None`` + :param additional_params: Additional OVF parameters which can be specified for the deployment + target. These OVF parameters can be inspected, optionally modified, + and used as values in + :attr:`LibraryItem.ResourcePoolDeploymentSpec.additional_parameters` + for the ``deploy`` method. + When clients pass a value of this class as a parameter, the + attribute must contain all the attributes defined in + :class:`OvfParams`. When methods return a value of this class as a + return value, the attribute will contain all the attributes defined + in :class:`OvfParams`. + If None, the OVF descriptor does not require addtional parameters + or does not have additional parameters suitable for the deployment + target. + """ + ... + + class CreateTarget(VapiStruct): + """ + The ``LibraryItem.CreateTarget`` class specifies the target library item + when capturing a virtual machine or virtual appliance as an OVF package in + a library item in a content library. The target can be an existing library + item, which will be updated, creating a new version, or it can be a newly + created library item in a specified library. See + :func:`LibraryItem.create`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, library_id=..., library_item_id=...) -> None: + """ + :type library_id: :class:`str` or ``None`` + :param library_id: Identifier of the library in which a new library item should be + created. This attribute is not used if the ``libraryItemId`` + attribute is specified. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.Library``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.content.Library``. + This attribute is currently required. + + In the future, if None, the ``libraryItemId`` attribute must be + specified. + :type library_item_id: :class:`str` or ``None`` + :param library_item_id: Identifier of the library item that should be should be updated. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + If None, a new library item will be created. The ``libraryId`` + attribute must be specified if this attribute is :class:`set`. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``LibraryItem.CreateSpec`` class defines the information used to create + or update a library item containing an OVF package. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., description=..., flags=...) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Name to use in the OVF descriptor stored in the library item. + If None, the server will use source's current name. + :type description: :class:`str` or ``None`` + :param description: Description to use in the OVF descriptor stored in the library + item. + If None, the server will use source's current annotation. + :type flags: :class:`list` of :class:`str` or ``None`` + :param flags: Flags to use for OVF package creation. The supported flags can be + obtained using :func:`ExportFlag.list`. + If None, no flags will be used. + """ + ... + + class CreateResult(VapiStruct): + """ + The ``LibraryItem.CreateResult`` class defines the result of the ``create`` + method. See :func:`LibraryItem.create`. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, succeeded=..., ovf_library_item_id=..., error=...) -> None: + """ + :type succeeded: :class:`bool` + :param succeeded: Whether the ``create`` method completed successfully. + :type ovf_library_item_id: :class:`str` or ``None`` + :param ovf_library_item_id: Identifier of the created or updated library item. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + If None, the ``create`` method failed and + :attr:`LibraryItem.CreateResult.error` will describe the error(s) + that caused the failure. + :type error: :class:`LibraryItem.ResultInfo` or ``None`` + :param error: Errors, warnings, and informational messages produced by the + ``create`` method. + If None, no errors, warnings, or informational messages were + reported by the ``create`` method. + """ + ... + + def deploy(self, ovf_library_item_id, target, deployment_spec, client_token=...): + """ + Deploys an OVF package stored in content library to a newly created + virtual machine or virtual appliance. + + This method deploys an OVF package which is stored in the library item + specified by ``ovf_library_item_id``. It uses the deployment + specification in ``deployment_spec`` to deploy the OVF package to the + location specified by ``target``. + + :type client_token: :class:`str` or ``None`` + :param client_token: Client-generated token used to retry a request if the client fails + to get a response from the server. If the original request + succeeded, the result of that request will be returned, otherwise + the operation will be retried. + If None, the server will create a token. + :type ovf_library_item_id: :class:`str` + :param ovf_library_item_id: Identifier of the content library item containing the OVF package + to be deployed. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type target: :class:`LibraryItem.DeploymentTarget` + :param target: Specification of the deployment target. + :type deployment_spec: :class:`LibraryItem.ResourcePoolDeploymentSpec` + :param deployment_spec: Specification of how the OVF package should be deployed to the + target. + :rtype: :class:`LibraryItem.DeploymentResult` + :return: Information about the success or failure of the method, along with + the details of the result or failure. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``target`` contains invalid arguments. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``deployment_spec`` contains invalid arguments or has attributes + that are inconsistent with ``target``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item specified by ``ovf_library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any resource specified by a attribute of the + :class:`LibraryItem.DeploymentTarget` class, specified by + ``target``, does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if there was an error accessing the OVF package stored in the + library item specified by ``ovf_library_item_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows : + + * Method execution requires VirtualMachine.Config.AddNewDisk if the + OVF descriptor has a disk drive (type 17) section. + * Method execution requires VirtualMachine.Config.AdvancedConfig if + the OVF descriptor has an ExtraConfig section. + * Method execution requires Extension.Register for specified + resource group if the OVF descriptor has a vServiceDependency + section. + * Method execution requires Network.Assign for target network if + specified. + * Method execution requires Datastore.AllocateSpace for target + datastore if specified. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``ovf_library_item_id`` requires ``System.Read``. + * The resource ``HostSystem`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.host_id` requires + ``System.Read``. + * The resource ``Network`` referenced by the :class:`dict` value of + attribute + :attr:`LibraryItem.ResourcePoolDeploymentSpec.network_mappings` + requires ``System.Read``. + * The resource ``StorageProfile`` referenced by the attribute + :attr:`LibraryItem.ResourcePoolDeploymentSpec.storage_profile_id` + requires ``System.Read``. + * The resource ``Datastore`` referenced by the attribute + :attr:`LibraryItem.ResourcePoolDeploymentSpec.default_datastore_id` + requires ``System.Read``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.resource_pool_id` requires + ``VApp.Import``. + * The resource ``Folder`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.folder_id` requires + ``VApp.Import``. + """ + ... + + def filter(self, ovf_library_item_id, target): + """ + Queries an OVF package stored in content library to retrieve + information to use when deploying the package. See + :func:`LibraryItem.deploy`. + + This method retrieves information from the descriptor of the OVF + package stored in the library item specified by + ``ovf_library_item_id``. The information returned by the method can be + used to populate the deployment specification (see + :class:`LibraryItem.ResourcePoolDeploymentSpec` when deploying the OVF + package to the deployment target specified by ``target``. + + :type ovf_library_item_id: :class:`str` + :param ovf_library_item_id: Identifier of the content library item containing the OVF package + to query. + The parameter must be an identifier for the resource type: + ``com.vmware.content.library.Item``. + :type target: :class:`LibraryItem.DeploymentTarget` + :param target: Specification of the deployment target. + :rtype: :class:`LibraryItem.OvfSummary` + :return: Information that can be used to populate the deployment + specification (see :class:`LibraryItem.ResourcePoolDeploymentSpec`) + when deploying the OVF package to the deployment target specified + by ``target``. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``target`` contains invalid arguments. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library item specified by ``ovf_library_item_id`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any resource specified by a attribute of the + :class:`LibraryItem.DeploymentTarget` class, specified by + ``target``, does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if there was an error accessing the OVF package at the specified + ``ovf_library_item_id``. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + * The resource ``com.vmware.content.library.Item`` referenced by + the parameter ``ovf_library_item_id`` requires ``System.Read``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.resource_pool_id` requires + ``System.Read``. + * The resource ``HostSystem`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.host_id` requires + ``System.Read``. + * The resource ``Folder`` referenced by the attribute + :attr:`LibraryItem.DeploymentTarget.folder_id` requires + ``System.Read``. + """ + ... + + def create(self, source, target, create_spec, client_token=...): + """ + Creates a library item in content library from a virtual machine or + virtual appliance. + + This method creates a library item in content library whose content is + an OVF package derived from a source virtual machine or virtual + appliance, using the supplied create specification. The OVF package may + be stored as in a newly created library item or in an in an existing + library item. For an existing library item whose content is updated by + this method, the original content is overwritten. Meta data such as + name and description is not updated for the exisitng library item. + + :type client_token: :class:`str` or ``None`` + :param client_token: Client-generated token used to retry a request if the client fails + to get a response from the server. If the original request + succeeded, the result of that request will be returned, otherwise + the operation will be retried. + If None, the server will create a token. + :type source: :class:`LibraryItem.DeployableIdentity` + :param source: Identifier of the virtual machine or virtual appliance to use as + the source. + :type target: :class:`LibraryItem.CreateTarget` + :param target: Specification of the target content library and library item. + :type create_spec: :class:`LibraryItem.CreateSpec` + :param create_spec: Information used to create the OVF package from the source virtual + machine or virtual appliance. + :rtype: :class:`LibraryItem.CreateResult` + :return: Information about the success or failure of the method, along with + the details of the result or failure. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``create_spec`` contains invalid arguments. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``source`` describes an unexpected resource type. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine or virtual appliance specified by ``source`` + does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the library or library item specified by ``target`` does not + exist. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the operation cannot be performed because of the specified + virtual machine or virtual appliance's current state. For example, + if the virtual machine configuration information is not available, + or if the virtual appliance is running. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if there was an error accessing a file from the source virtual + machine or virtual appliance. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the specified virtual machine or virtual appliance is busy. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * Method execution requires ``System.Read``. + * The resource ``null`` or ``null`` referenced by the attribute + :attr:`LibraryItem.DeployableIdentity.id` requires ``VApp.Export``. + * The resource ``com.vmware.content.Library`` referenced by the + attribute :attr:`LibraryItem.CreateTarget.library_id` requires + ``ContentLibrary.AddLibraryItem``. + * The resource ``com.vmware.content.library.Item`` referenced by + the attribute :attr:`LibraryItem.CreateTarget.library_item_id` + requires ``System.Read``. + """ + ... + +class _ExportFlagStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _ImportFlagStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _LibraryItemStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/com/vmware/vcenter/vm_client.pyi b/typings/com/vmware/vcenter/vm_client.pyi new file mode 100644 index 00000000..726be07d --- /dev/null +++ b/typings/com/vmware/vcenter/vm_client.pyi @@ -0,0 +1,1658 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.enum import Enum +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The ``com.vmware.vcenter.vm_client`` module provides classes for managing +virtual machines. + +""" +__author__ = ... +__docformat__ = ... + +class GuestOS(Enum): + """ + The ``GuestOS`` class defines the valid guest operating system types used + for configuring a virtual machine. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DOS = ... + WIN_31 = ... + WIN_95 = ... + WIN_98 = ... + WIN_ME = ... + WIN_NT = ... + WIN_2000_PRO = ... + WIN_2000_SERV = ... + WIN_2000_ADV_SERV = ... + WIN_XP_HOME = ... + WIN_XP_PRO = ... + WIN_XP_PRO_64 = ... + WIN_NET_WEB = ... + WIN_NET_STANDARD = ... + WIN_NET_ENTERPRISE = ... + WIN_NET_DATACENTER = ... + WIN_NET_BUSINESS = ... + WIN_NET_STANDARD_64 = ... + WIN_NET_ENTERPRISE_64 = ... + WIN_LONGHORN = ... + WIN_LONGHORN_64 = ... + WIN_NET_DATACENTER_64 = ... + WIN_VISTA = ... + WIN_VISTA_64 = ... + WINDOWS_7 = ... + WINDOWS_7_64 = ... + WINDOWS_7_SERVER_64 = ... + WINDOWS_8 = ... + WINDOWS_8_64 = ... + WINDOWS_8_SERVER_64 = ... + WINDOWS_9 = ... + WINDOWS_9_64 = ... + WINDOWS_9_SERVER_64 = ... + WINDOWS_11_64 = ... + WINDOWS_12_64 = ... + WINDOWS_HYPERV = ... + WINDOWS_SERVER_2019 = ... + WINDOWS_SERVER_2021 = ... + WINDOWS_SERVER_2025 = ... + FREEBSD = ... + FREEBSD_64 = ... + FREEBSD_11 = ... + FREEBSD_12 = ... + FREEBSD_13 = ... + FREEBSD_14 = ... + FREEBSD_11_64 = ... + FREEBSD_12_64 = ... + FREEBSD_13_64 = ... + FREEBSD_14_64 = ... + REDHAT = ... + RHEL_2 = ... + RHEL_3 = ... + RHEL_3_64 = ... + RHEL_4 = ... + RHEL_4_64 = ... + RHEL_5 = ... + RHEL_5_64 = ... + RHEL_6 = ... + RHEL_6_64 = ... + RHEL_7 = ... + RHEL_7_64 = ... + RHEL_8_64 = ... + RHEL_9_64 = ... + CENTOS = ... + CENTOS_64 = ... + CENTOS_6 = ... + CENTOS_6_64 = ... + CENTOS_7 = ... + CENTOS_7_64 = ... + CENTOS_8_64 = ... + CENTOS_9_64 = ... + ORACLE_LINUX = ... + ORACLE_LINUX_64 = ... + ORACLE_LINUX_6 = ... + ORACLE_LINUX_6_64 = ... + ORACLE_LINUX_7 = ... + ORACLE_LINUX_7_64 = ... + ORACLE_LINUX_8_64 = ... + ORACLE_LINUX_9_64 = ... + SUSE = ... + SUSE_64 = ... + SLES = ... + SLES_64 = ... + SLES_10 = ... + SLES_10_64 = ... + SLES_11 = ... + SLES_11_64 = ... + SLES_12 = ... + SLES_12_64 = ... + SLES_15_64 = ... + SLES_16_64 = ... + NLD_9 = ... + OES = ... + SJDS = ... + MANDRAKE = ... + MANDRIVA = ... + MANDRIVA_64 = ... + TURBO_LINUX = ... + TURBO_LINUX_64 = ... + UBUNTU = ... + UBUNTU_64 = ... + DEBIAN_4 = ... + DEBIAN_4_64 = ... + DEBIAN_5 = ... + DEBIAN_5_64 = ... + DEBIAN_6 = ... + DEBIAN_6_64 = ... + DEBIAN_7 = ... + DEBIAN_7_64 = ... + DEBIAN_8 = ... + DEBIAN_8_64 = ... + DEBIAN_9 = ... + DEBIAN_9_64 = ... + DEBIAN_10 = ... + DEBIAN_10_64 = ... + DEBIAN_11 = ... + DEBIAN_11_64 = ... + DEBIAN_12 = ... + DEBIAN_12_64 = ... + ASIANUX_3 = ... + ASIANUX_3_64 = ... + ASIANUX_4 = ... + ASIANUX_4_64 = ... + ASIANUX_5_64 = ... + ASIANUX_7_64 = ... + ASIANUX_8_64 = ... + ASIANUX_9_64 = ... + OPENSUSE = ... + OPENSUSE_64 = ... + FEDORA = ... + FEDORA_64 = ... + COREOS_64 = ... + VMWARE_PHOTON_64 = ... + OTHER_24X_LINUX = ... + OTHER_24X_LINUX_64 = ... + OTHER_26X_LINUX = ... + OTHER_26X_LINUX_64 = ... + OTHER_3X_LINUX = ... + OTHER_3X_LINUX_64 = ... + OTHER_4X_LINUX = ... + OTHER_4X_LINUX_64 = ... + OTHER_5X_LINUX = ... + OTHER_5X_LINUX_64 = ... + OTHER_6X_LINUX = ... + OTHER_6X_LINUX_64 = ... + OTHER_LINUX = ... + GENERIC_LINUX = ... + OTHER_LINUX_64 = ... + SOLARIS_6 = ... + SOLARIS_7 = ... + SOLARIS_8 = ... + SOLARIS_9 = ... + SOLARIS_10 = ... + SOLARIS_10_64 = ... + SOLARIS_11_64 = ... + OS2 = ... + ECOMSTATION = ... + ECOMSTATION_2 = ... + NETWARE_4 = ... + NETWARE_5 = ... + NETWARE_6 = ... + OPENSERVER_5 = ... + OPENSERVER_6 = ... + UNIXWARE_7 = ... + DARWIN = ... + DARWIN_64 = ... + DARWIN_10 = ... + DARWIN_10_64 = ... + DARWIN_11 = ... + DARWIN_11_64 = ... + DARWIN_12_64 = ... + DARWIN_13_64 = ... + DARWIN_14_64 = ... + DARWIN_15_64 = ... + DARWIN_16_64 = ... + DARWIN_17_64 = ... + DARWIN_18_64 = ... + DARWIN_19_64 = ... + DARWIN_20_64 = ... + DARWIN_21_64 = ... + DARWIN_22_64 = ... + DARWIN_23_64 = ... + VMKERNEL = ... + VMKERNEL_5 = ... + VMKERNEL_6 = ... + VMKERNEL_65 = ... + VMKERNEL_7 = ... + VMKERNEL_8 = ... + AMAZONLINUX2_64 = ... + AMAZONLINUX3_64 = ... + CRXPOD_1 = ... + ROCKYLINUX_64 = ... + ALMALINUX_64 = ... + OTHER = ... + OTHER_64 = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`GuestOS` instance. + """ + ... + +class GuestOSFamily(Enum): + """ + The ``GuestOSFamily`` class defines the valid guest operating system family + types reported by a virtual machine. This enumeration was added in vSphere + API 6.7. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + WINDOWS = ... + LINUX = ... + NETWARE = ... + SOLARIS = ... + DARWIN = ... + OTHER = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`GuestOSFamily` instance. + """ + ... + +class DataSets(VapiInterface): + """ + The ``DataSets`` class provides methods for sharing information between a + virtual machine and its guest operating system. + + See the VMware Guest SDK Programming Guide for details on using DataSets + from within a virtual machine. + + Information is grouped into data sets, each of which contains key-value + entries comprising the data. It's expected that each application using the + service will have at least one unique data set in which to store its data + to avoid conflict with other applications. Each data set has attributes + defining its access control and interoperability configuration. + + It's not recommended that sensitive data (for example, passwords or private + keys) be stored in plain-text. The data will be visible to other + applications, running both on the management network and within the guest. + The data can also be exposed by backups or templates. + + Data set support requires the virtual machine be at virtual hardware + version :attr:`Hardware.Version.VMX_20` or later. + + Data sets should only be modified by the application that creates them. + Otherwise the application may stop working.. This class was added in + vSphere API 8.0.0.0. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Access(Enum): + """ + Possible Entry access modes. This enumeration was added in vSphere API + 8.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NONE = ... + READ_ONLY = ... + READ_WRITE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Access` instance. + """ + ... + + class Info(VapiStruct): + """ + The ``DataSets.Info`` class describes a data set. This class was added in + vSphere API 8.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + description=..., + host=..., + guest=..., + used=..., + omit_from_snapshot_and_clone=..., + ) -> None: + """ + :type name: :class:`str` + :param name: The name of the data set. This attribute was added in vSphere API + 8.0.0.0. + :type description: :class:`str` + :param description: A description of how the data set is used by its creator. This + attribute was added in vSphere API 8.0.0.0. + :type host: :class:`DataSets.Access` + :param host: Host access control. + + Controls access to the data set by the + :class:`com.vmware.vcenter.vm.data_sets_client.Entries` methods.. + This attribute was added in vSphere API 8.0.0.0. + :type guest: :class:`DataSets.Access` + :param guest: Guest access control. + + Controls access to the data set from in-guest APIs.. This attribute + was added in vSphere API 8.0.0.0. + :type used: :class:`long` + :param used: The total size in bytes of the Entry data in use by this data set. + This attribute was added in vSphere API 8.0.0.0. + :type omit_from_snapshot_and_clone: :class:`bool` + :param omit_from_snapshot_and_clone: If :class:`set`, the data set is considered a property of the + virtual machine, and is not included in a snapshot operation or + when the virtual machine is cloned. When a virtual machine is + reverted to a snapshot, any data set with {\\\\@link + #omitFromSnapshotAndClone) :class:`set` will be destroyed. Any data + set with :attr:`DataSets.Info.omit_from_snapshot_and_clone` None + will be restored to the state when the snapshot was created. This + attribute was added in vSphere API 8.0.0.0. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``DataSets.CreateSpec`` class describes a data set to be created. This + class was added in vSphere API 8.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + description=..., + host=..., + guest=..., + omit_from_snapshot_and_clone=..., + ) -> None: + """ + :type name: :class:`str` + :param name: The name of the data set. **It is recommended that this value take + the form "com.company.project" to avoid conflict with other + uses.**. This attribute was added in vSphere API 8.0.0.0. + :type description: :class:`str` + :param description: A description of how the data set is used by its creator. This + field can contain up to 1024 bytes. This attribute was added in + vSphere API 8.0.0.0. + :type host: :class:`DataSets.Access` + :param host: Host access control. + + Controls access to the data set by the + :class:`com.vmware.vcenter.vm.data_sets_client.Entries` methods.. + This attribute was added in vSphere API 8.0.0.0. + :type guest: :class:`DataSets.Access` + :param guest: Guest access control. + + Controls access to the data set from the in-guest APIs.. This + attribute was added in vSphere API 8.0.0.0. + :type omit_from_snapshot_and_clone: :class:`bool` or ``None`` + :param omit_from_snapshot_and_clone: If :class:`set`, the data set is considered a property of the + virtual machine, and is not included in a snapshot operation or + when the virtual machine is cloned. When a virtual machine is + reverted to a snapshot, any data set with {\\\\@link + #omitFromSnapshotAndClone) :class:`set` will be destroyed. Any data + set with :attr:`DataSets.CreateSpec.omit_from_snapshot_and_clone` + None will be restored to the state when the snapshot was created. + This attribute was added in vSphere API 8.0.0.0. + If None, the data set is not copied when a virtual machine is + cloned or a snapshot is taken. + """ + ... + + class UpdateSpec(VapiStruct): + """ + The ``DataSets.UpdateSpec`` class describes attibutes of a data set that + can be modified. This class was added in vSphere API 8.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, description=..., host=..., guest=..., omit_from_snapshot_and_clone=... + ) -> None: + """ + :type description: :class:`str` or ``None`` + :param description: A description of how the data set is used by its creator. This + field can contain up to 1024 bytes. This attribute was added in + vSphere API 8.0.0.0. + If set, the value is changed. + :type host: :class:`DataSets.Access` or ``None`` + :param host: The access control from the host. This attribute was added in + vSphere API 8.0.0.0. + If set, the value is changed. + :type guest: :class:`DataSets.Access` or ``None`` + :param guest: The access control from the guest. This attribute was added in + vSphere API 8.0.0.0. + If set, the value is changed. + :type omit_from_snapshot_and_clone: :class:`bool` or ``None`` + :param omit_from_snapshot_and_clone: If :class:`set`, the data set is considered a property of the + virtual machine, and is not included in a snapshot operation or + when the virtual machine is cloned. When a virtual machine is + reverted to a snapshot, any data set with {\\\\@link + #omitFromSnapshotAndClone) :class:`set` will be destroyed. Any data + set with :attr:`DataSets.UpdateSpec.omit_from_snapshot_and_clone` + None will be restored to the state when the snapshot was created. + This attribute was added in vSphere API 8.0.0.0. + If set, the value is changed. + """ + ... + + class Summary(VapiStruct): + """ + Basic data set information. This class was added in vSphere API 8.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, data_set=..., name=..., description=...) -> None: + """ + :type data_set: :class:`str` + :param data_set: The identifier of the data set. This attribute was added in vSphere + API 8.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vcenter.vm.DataSet``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.vcenter.vm.DataSet``. + :type name: :class:`str` + :param name: The name of the data set. This attribute was added in vSphere API + 8.0.0.0. + :type description: :class:`str` + :param description: The description of the data set. This attribute was added in + vSphere API 8.0.0.0. + """ + ... + + def create(self, vm, spec): + """ + Creates a new data set. This method was added in vSphere API 8.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type spec: :class:`DataSets.CreateSpec` + :param spec: Specification of the data set to be created. + :rtype: :class:`str` + :return: The identifier of the new data set. + The return value will be an identifier for the resource type: + ``com.vmware.vcenter.vm.DataSet``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if the data set with the same name already exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the specification is incorrect. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is in a state that doesn't allow + modifications, for example suspended. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if the new data set requires more resources than are available. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual hardware version of the virtual machine does not + support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the ESXi host version does not support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.DataSets.DataSetCreate``. + """ + ... + + def delete(self, vm, data_set, force=...): + """ + Delete a data set. This method was added in vSphere API 8.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type data_set: :class:`str` + :param data_set: Identifier of the data set to be deleted. + The parameter must be an identifier for the resource type: + ``com.vmware.vcenter.vm.DataSet``. + :type force: :class:`bool` or ``None`` + :param force: If true, delete the data set even if it is not empty. + If None a :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + exception will be reported if the data set is not empty. This is + the equivalent of passing the value false. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is in a state that doesn't allow + modifications, for example suspended. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the data set is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if the data set is not empty and ``force`` is not :class:`set`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual hardware version of the virtual machine does not + support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the ESXi host version does not support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.DataSets.DataSetDelete``. + """ + ... + + def get(self, vm, data_set): + """ + Returns information describing a data set. This method was added in + vSphere API 8.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type data_set: :class:`str` + :param data_set: Identifier of the data set to be queried. + The parameter must be an identifier for the resource type: + ``com.vmware.vcenter.vm.DataSet``. + :rtype: :class:`DataSets.Info` + :return: Details about the data set. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the data set is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual hardware version of the virtual machine does not + support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the ESXi host version does not support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.DataSets.DataSetGet``. + """ + ... + + def update(self, vm, data_set, spec): + """ + Modifies the attributes of a data set. This method was added in vSphere + API 8.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type data_set: :class:`str` + :param data_set: Identifier of the data set to be queried. + The parameter must be an identifier for the resource type: + ``com.vmware.vcenter.vm.DataSet``. + :type spec: :class:`DataSets.UpdateSpec` + :param spec: new attributes of the data set. Data sets should only be modified + by the application that creates them. Otherwise the application may + stop working. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the new attributes are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is in a state that doesn't allow + modification, for example suspendeds. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the data set is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if the new data set attributes requires more resources than are + available. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual hardware version of the virtual machine does not + support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the ESXi host version does not support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.DataSets.DataSetUpdate``. + """ + ... + + def list(self, vm): + """ + Lists the data sets of a virtual machine. This method was added in + vSphere API 8.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`list` of :class:`DataSets.Summary` + :return: The list of data sets. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual hardware version of the virtual machine does not + support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the ESXi host version does not support DataSets + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.DataSets.DataSetList``. + """ + ... + +class Hardware(VapiInterface): + """ + The ``Hardware`` class provides methods for configuring the virtual + hardware of a virtual machine. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Version(Enum): + """ + The ``Hardware.Version`` class defines the valid virtual hardware versions + for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual + machine hardware versions (1003746)). + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + VMX_03 = ... + VMX_04 = ... + VMX_06 = ... + VMX_07 = ... + VMX_08 = ... + VMX_09 = ... + VMX_10 = ... + VMX_11 = ... + VMX_12 = ... + VMX_13 = ... + VMX_14 = ... + VMX_15 = ... + VMX_16 = ... + VMX_17 = ... + VMX_18 = ... + VMX_19 = ... + VMX_20 = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Version` instance. + """ + ... + + class UpgradePolicy(Enum): + """ + The ``Hardware.UpgradePolicy`` class defines the valid virtual hardware + upgrade policies for a virtual machine. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NEVER = ... + AFTER_CLEAN_SHUTDOWN = ... + ALWAYS = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`UpgradePolicy` instance. + """ + ... + + class UpgradeStatus(Enum): + """ + The ``Hardware.UpgradeStatus`` class defines the valid virtual hardware + upgrade statuses for a virtual machine. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NONE = ... + PENDING = ... + SUCCESS = ... + FAILED = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`UpgradeStatus` instance. + """ + ... + + class Info(VapiStruct): + """ + The ``Hardware.Info`` class contains information related to the virtual + hardware of a virtual machine. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + version=..., + upgrade_policy=..., + upgrade_version=..., + upgrade_status=..., + upgrade_error=..., + ) -> None: + """ + :type version: :class:`Hardware.Version` + :param version: Virtual hardware version. + :type upgrade_policy: :class:`Hardware.UpgradePolicy` + :param upgrade_policy: Scheduled upgrade policy. + :type upgrade_version: :class:`Hardware.Version` + :param upgrade_version: Target hardware version to be used on the next scheduled virtual + hardware upgrade. + This attribute is optional and it is only relevant when the value + of ``upgradePolicy`` is one of + :attr:`Hardware.UpgradePolicy.AFTER_CLEAN_SHUTDOWN` or + :attr:`Hardware.UpgradePolicy.ALWAYS`. + :type upgrade_status: :class:`Hardware.UpgradeStatus` + :param upgrade_status: Scheduled upgrade status. + :type upgrade_error: :class:`Exception` + :param upgrade_error: Reason for the scheduled upgrade failure. + This attribute is optional and it is only relevant when the value + of ``upgradeStatus`` is :attr:`Hardware.UpgradeStatus.FAILED`. + """ + ... + + class UpdateSpec(VapiStruct): + """ + The ``Hardware.UpdateSpec`` class describes the updates to virtual hardware + settings of a virtual machine. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__(self, upgrade_policy=..., upgrade_version=...) -> None: + """ + :type upgrade_policy: :class:`Hardware.UpgradePolicy` or ``None`` + :param upgrade_policy: Scheduled upgrade policy. + + If set to :attr:`Hardware.UpgradePolicy.NEVER`, the + :attr:`Hardware.Info.upgrade_version` attribute will be reset to + None. + If None, the value is unchanged. + :type upgrade_version: :class:`Hardware.Version` or ``None`` + :param upgrade_version: Target hardware version to be used on the next scheduled virtual + hardware upgrade. + + If specified, this attribute must represent a newer virtual + hardware version than the current virtual hardware version reported + in :attr:`Hardware.Info.version`. + If :attr:`Hardware.UpdateSpec.upgrade_policy` is set to + :attr:`Hardware.UpgradePolicy.NEVER`, this attribute must be None. + Otherwise, if this attribute is None, default to the most recent + virtual hardware version supported by the server. + """ + ... + + def get(self, vm): + """ + Returns the virtual hardware settings of a virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`Hardware.Info` + :return: Virtual hardware settings of the virtual machine. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def update(self, vm, spec): + """ + Updates the virtual hardware settings of a virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type spec: :class:`Hardware.UpdateSpec` + :param spec: Specification for updating the virtual hardware settings of the + virtual machine. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the virtual machine is already configured for the desired + hardware version. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the requested virtual hardware version is not newer than the + current version. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the requested virtual hardware version is not supported by the + server. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is busy performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def upgrade(self, vm, version=...): + """ + Upgrades the virtual machine to a newer virtual hardware version. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type version: :class:`Hardware.Version` or ``None`` + :param version: New virtual machine version. + If None, defaults to the most recent virtual hardware version + supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is not powered off. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the virtual machine is already configured for the desired + hardware version. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if ``version`` is older than the current virtual hardware version. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if ``version`` is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is busy performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class Identity(VapiInterface): + """ + The ``Identity`` class provides methods for managing the identity of a + virtual machine. This class was added in vSphere API 6.7.1. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``Identity.Info`` class contains information about the identity of a + virtual machine. This class was added in vSphere API 6.7.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., bios_uuid=..., instance_uuid=...) -> None: + """ + :type name: :class:`str` + :param name: Virtual machine name. This attribute was added in vSphere API + 6.7.1. + :type bios_uuid: :class:`str` + :param bios_uuid: 128-bit SMBIOS UUID of a virtual machine represented as a + hexadecimal string in "12345678-abcd-1234-cdef-123456789abc" + format. This attribute was added in vSphere API 6.7.1. + :type instance_uuid: :class:`str` + :param instance_uuid: VirtualCenter-specific 128-bit UUID of a virtual machine, + represented as a hexademical string. This identifier is used by + VirtualCenter to uniquely identify all virtual machine instances, + including those that may share the same SMBIOS UUID. This attribute + was added in vSphere API 6.7.1. + """ + ... + +class LibraryItem(VapiInterface): + """ + The ``LibraryItem`` class provides methods to identify virtual machines + managed by Content Library. This class was added in vSphere API 6.9.1. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Info(VapiStruct): + """ + The ``LibraryItem.Info`` class contains information about the library item + associated with a virtual machine. This class was added in vSphere API + 6.9.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, check_out=...) -> None: + """ + :type check_out: :class:`LibraryItem.CheckOutInfo` or ``None`` + :param check_out: Information about the checked out virtual machine. This attribute + was added in vSphere API 6.9.1. + If None, the virtual machine is not checked out from a library + item. + """ + ... + + class CheckOutInfo(VapiStruct): + """ + The ``LibraryItem.CheckOutInfo`` class contains information about a virtual + machine checked out of a content library item. This class was added in + vSphere API 6.9.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, library_item=...) -> None: + """ + :type library_item: :class:`str` + :param library_item: Identifier of the library item that the virtual machine is checked + out from. This attribute was added in vSphere API 6.9.1. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.content.library.Item``. When methods return a value of + this class as a return value, the attribute will be an identifier + for the resource type: ``com.vmware.content.library.Item``. + """ + ... + + def get(self, vm): + """ + Returns the information about the library item associated with the + virtual machine. This method was added in vSphere API 6.9.1. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`LibraryItem.Info` + :return: Information about the library item associated with the virtual + machine. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user that requested the method cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user that requested the method is not authorized to perform + the method. + """ + ... + +class Power(VapiInterface): + """ + The ``Power`` class provides methods for managing the power state of a + virtual machine. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class State(Enum): + """ + The ``Power.State`` class defines the valid power states for a virtual + machine. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + POWERED_OFF = ... + POWERED_ON = ... + SUSPENDED = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`State` instance. + """ + ... + + class Info(VapiStruct): + """ + The ``Power.Info`` class contains information about the power state of a + virtual machine. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__(self, state=..., clean_power_off=...) -> None: + """ + :type state: :class:`Power.State` + :param state: Power state of the virtual machine. + :type clean_power_off: :class:`bool` + :param clean_power_off: Flag indicating whether the virtual machine was powered off + cleanly. This attribute may be used to detect that the virtual + machine crashed unexpectedly and should be restarted. + This attribute is optional and it is only relevant when the value + of ``state`` is :attr:`Power.State.POWERED_OFF`. + """ + ... + + def get(self, vm): + """ + Returns the power state information of a virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`Power.Info` + :return: Power state information for the specified virtual machine. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration or execution state cannot be + accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``System.Read``. + """ + ... + + def start(self, vm): + """ + Powers on a powered-off or suspended virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the virtual machine is already powered on. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the virtual machine does not support being powered on (e.g. + marked as a template, serving as a fault-tolerance secondary + virtual machine). + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if resources cannot be allocated for the virtual machine (e.g. + physical resource allocation policy cannot be satisfied, + insufficient licenses are available to run the virtual machine). + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if resources required by the virtual machine are not accessible + (e.g. virtual machine configuration files or virtual disks are on + inaccessible storage, no hosts are available to run the virtual + machine). + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if resources required by the virtual machine are in use (e.g. + virtual machine configuration files or virtual disks are locked, + host containing the virtual machine is an HA failover host). + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Interact.PowerOn``. + """ + ... + + def stop(self, vm): + """ + Powers off a powered-on or suspended virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the virtual machine is already powered off. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Interact.PowerOff``. + """ + ... + + def suspend(self, vm): + """ + Suspends a powered-on virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the virtual machine is already suspended. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is powered off. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Interact.Suspend``. + """ + ... + + def reset(self, vm): + """ + Resets a powered-on virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is powered off or suspended. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is performing another operation + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Interact.Reset``. + """ + ... + +class Tools(VapiInterface): + """ + The ``Tools`` class provides methods for managing VMware Tools in the guest + operating system. This class was added in vSphere API 7.0.0.0. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class RunState(Enum): + """ + Current run state of VMware Tools in the guest operating system. This + enumeration was added in vSphere API 7.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NOT_RUNNING = ... + RUNNING = ... + EXECUTING_SCRIPTS = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`RunState` instance. + """ + ... + + class UpgradePolicy(Enum): + """ + The ``Tools.UpgradePolicy`` class defines when Tools are auto-upgraded for + a virtual machine. This enumeration was added in vSphere API 7.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + MANUAL = ... + UPGRADE_AT_POWER_CYCLE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`UpgradePolicy` instance. + """ + ... + + class VersionStatus(Enum): + """ + The ``Tools.VersionStatus`` class defines the version status types of + VMware Tools installed in the guest operating system. This enumeration was + added in vSphere API 7.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NOT_INSTALLED = ... + CURRENT = ... + UNMANAGED = ... + TOO_OLD_UNSUPPORTED = ... + SUPPORTED_OLD = ... + SUPPORTED_NEW = ... + TOO_NEW = ... + BLACKLISTED = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`VersionStatus` instance. + """ + ... + + class ToolsInstallType(Enum): + """ + The ``Tools.ToolsInstallType`` class defines the installation type of the + Tools in the guest operating system. This enumeration was added in vSphere + API 7.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + UNKNOWN = ... + MSI = ... + TAR = ... + OSP = ... + OPEN_VM_TOOLS = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`ToolsInstallType` instance. + """ + ... + + class Info(VapiStruct): + """ + The ``Tools.Info`` class describes the VMWare Tools properties of a virtual + machine. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + auto_update_supported=..., + install_attempt_count=..., + error=..., + version_number=..., + version=..., + upgrade_policy=..., + version_status=..., + install_type=..., + run_state=..., + ) -> None: + """ + :type auto_update_supported: :class:`bool` + :param auto_update_supported: Set if the virtual machine supports auto-upgrading Tools via + :class:`Tools.UpgradePolicy`. This attribute was added in vSphere + API 7.0.0.0. + :type install_attempt_count: :class:`long` or ``None`` + :param install_attempt_count: Number of attempts that have been made to install or upgrade the + version of Tools installed on this virtual machine. This attribute + was added in vSphere API 7.0.0.0. + This attribute will be None if there have been no Tools install or + upgrade attempt. + :type error: :class:`Exception` or ``None`` + :param error: Error that happened, if any, during last attempt to upgrade or + install Tools. This attribute was added in vSphere API 7.0.0.0. + This attribute will be None if a the last Tools install or upgrade + attempt succeeded. + :type version_number: :class:`long` or ``None`` + :param version_number: Version of VMware Tools installed on the guest operating system. + This attribute was added in vSphere API 7.0.0.0. + This attribute wil be None if VMWare Tools is not installed. This + is an integer constructed as follows: (((MJR) << 10) + ((MNR) << 5) + + (REV)) Where MJR is tha major verson, MNR is the minor version + and REV is the revision. Tools version = T Tools Version Major = + MJR = (T / 1024) Tools Version Minor = MNR = ((T % 1024) / 32) + Tools Version Revision = BASE = ((T % 1024) % 32) Tools actual + version = MJR.MNR.REV + :type version: :class:`str` or ``None`` + :param version: Version of VMware Tools installed on the guest operating system. + This is a human-readable value that should not be parsed. This + attribute was added in vSphere API 7.0.0.0. + This attribute wil be None if VMWare Tools is not installed. + :type upgrade_policy: :class:`Tools.UpgradePolicy` + :param upgrade_policy: Tools upgrade policy setting for the virtual machine. + :class:`Tools.UpgradePolicy`. This attribute was added in vSphere + API 7.0.0.0. + :type version_status: :class:`Tools.VersionStatus` or ``None`` + :param version_status: Current version status of VMware Tools in the guest operating + system, if known. This attribute was added in vSphere API 7.0.0.0. + This attribute will be None if the version status is not known, for + example if VMware Tools is too old to report the information. + :type install_type: :class:`Tools.ToolsInstallType` or ``None`` + :param install_type: Current installation type of VMware Tools in the guest operating + system. This attribute was added in vSphere API 7.0.0.0. + This attribute will be None if the installation type is not known, + for example if VMware Tools is too old to report the information. + :type run_state: :class:`Tools.RunState` + :param run_state: Current run state of VMware Tools in the guest operating system. + This attribute was added in vSphere API 7.0.0.0. + """ + ... + + class UpdateSpec(VapiStruct): + """ + The (\\\\@name UpdateSpec} class describes the VMware Tools properties of a + virtual machine that can be updated. This class was added in vSphere API + 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, upgrade_policy=...) -> None: + """ + :type upgrade_policy: :class:`Tools.UpgradePolicy` or ``None`` + :param upgrade_policy: Tools upgrade policy setting for the virtual machine. + :class:`Tools.UpgradePolicy`. This attribute was added in vSphere + API 7.0.0.0. + If None the upgrade policy will not be modified. + """ + ... + + def get(self, vm): + """ + Get the properties of VMware Tools. This method was added in vSphere + API 7.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`Tools.Info` + :return: VMware Tools properties. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user cannot be authenticated. + """ + ... + + def update(self, vm, spec): + """ + Update the properties of VMware Tools. This method was added in vSphere + API 7.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type spec: :class:`Tools.UpdateSpec` + :param spec: The new values. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Tools.UpdateSpec.upgrade_policy` attribute contains a + value that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user cannot be authenticated. + """ + ... + + def upgrade(self, vm, command_line_options=...): + """ + Begins the Tools upgrade process. To monitor the status of the Tools + upgrade, clients should check the Tools status by calling + :func:`Tools.get` and examining ``versionStatus`` and ``runState``. + This method was added in vSphere API 7.0.0.0. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type command_line_options: :class:`str` or ``None`` + :param command_line_options: Command line options passed to the installer to modify the + installation procedure for Tools. + Set if any additional options are desired. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the VMware Tools are not running. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is not powered on. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + is an upgrade is already in progress. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the upgrade process fails inside the guest operating system. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user cannot be authenticated. + """ + ... + +class _DataSetsStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _HardwareStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _IdentityStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _LibraryItemStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _PowerStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _ToolsStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/com/vmware/vcenter_client.pyi b/typings/com/vmware/vcenter_client.pyi new file mode 100644 index 00000000..a66a3cde --- /dev/null +++ b/typings/com/vmware/vcenter_client.pyi @@ -0,0 +1,4008 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.enum import Enum +from vmware.vapi.bindings.struct import VapiStruct +from vmware.vapi.bindings.stub import ApiInterfaceStub, StubFactoryBase, VapiInterface + +""" +The ``com.vmware.vcenter_client`` module provides classes for managing VMware +vSphere environments. The module is available starting in vSphere 6.5. + +""" +__author__ = ... +__docformat__ = ... + +class Cluster(VapiInterface): + """ + The ``Cluster`` class provides methods to manage clusters in the vCenter + Server. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Cluster.FilterSpec`` class contains attributes used to filter the + results when listing clusters (see :func:`Cluster.list`). If multiple + attributes are specified, only clusters matching all of the attributes + match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, clusters=..., names=..., folders=..., datacenters=... + ) -> None: + """ + :type clusters: :class:`set` of :class:`str` or ``None`` + :param clusters: Identifiers of clusters that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``ClusterComputeResource``. + If None or empty, clusters with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that clusters must have to match the filter (see + :attr:`Cluster.Info.name`). + If None or empty, clusters with any name match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the cluster for the cluster to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, clusters in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the cluster for the cluster to match + the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, clusters in any datacenter match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Cluster.Summary`` class contains commonly used information about a + cluster in vCenter Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, cluster=..., name=..., ha_enabled=..., drs_enabled=... + ) -> None: + """ + :type cluster: :class:`str` + :param cluster: Identifier of the cluster. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + :type name: :class:`str` + :param name: Name of the cluster. + :type ha_enabled: :class:`bool` + :param ha_enabled: Flag indicating whether the vSphere HA feature is enabled for the + cluster. + :type drs_enabled: :class:`bool` + :param drs_enabled: Flag indicating whether the vSphere DRS service is enabled for the + cluster. + """ + ... + + class Info(VapiStruct): + """ + The ``Cluster.Info`` class contains information about a cluster in vCenter + Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., resource_pool=...) -> None: + """ + :type name: :class:`str` + :param name: The name of the cluster + :type resource_pool: :class:`str` + :param resource_pool: Identifier of the root resource pool of the cluster + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) clusters in vCenter matching the :class:`Cluster.FilterSpec`. + + :type filter: :class:`Cluster.FilterSpec` or ``None`` + :param filter: Specification of matching clusters for which information should be + returned. + If None, the behavior is equivalent to a + :class:`Cluster.FilterSpec` with all attributes None which means + all clusters match the filter. + :rtype: :class:`list` of :class:`Cluster.Summary` + :return: Commonly used information about the clusters matching the + :class:`Cluster.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 1000 clusters match the :class:`Cluster.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def get(self, cluster): + """ + Retrieves information about the cluster corresponding to ``cluster``. + + :type cluster: :class:`str` + :param cluster: Identifier of the cluster. + The parameter must be an identifier for the resource type: + ``ClusterComputeResource``. + :rtype: :class:`Cluster.Info` + :return: Information about the cluster associated with ``cluster``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no cluster associated with ``cluster`` in the system. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the session id is missing from the request or the corresponding + session object cannot be found. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't not have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``ClusterComputeResource`` referenced by the + parameter ``cluster`` requires ``System.Read``. + """ + ... + +class Datacenter(VapiInterface): + """ + The ``Datacenter`` class provides methods to manage datacenters in the + vCenter Server. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``Datacenter.CreateSpec`` class defines the information used to create + a datacenter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., folder=...) -> None: + """ + :type name: :class:`str` + :param name: The name of the datacenter to be created. + :type folder: :class:`str` or ``None`` + :param folder: Datacenter folder in which the new datacenter should be created. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose a suitable + folder for the datacenter; if a folder cannot be chosen, the + datacenter creation operation will fail. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Datacenter.FilterSpec`` class contains attributes used to filter the + results when listing datacenters (see :func:`Datacenter.list`). If multiple + attributes are specified, only datacenters matching all of the attributes + match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, datacenters=..., names=..., folders=...) -> None: + """ + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Identifiers of datacenters that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, datacenters with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that datacenters must have to match the filter (see + :attr:`Datacenter.Info.name`). + If None or empty, datacenters with any name match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the datacenters for the datacenter to + match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, datacenters in any folder match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Datacenter.Summary`` class contains commonly used information about a + datacenter in vCenter Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, datacenter=..., name=...) -> None: + """ + :type datacenter: :class:`str` + :param datacenter: Identifier of the datacenter. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datacenter``. + :type name: :class:`str` + :param name: Name of the datacenter. + """ + ... + + class Info(VapiStruct): + """ + The ``Datacenter.Info`` class contains information about a datacenter in + vCenter Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + datastore_folder=..., + host_folder=..., + network_folder=..., + vm_folder=..., + ) -> None: + """ + :type name: :class:`str` + :param name: The name of the datacenter. + :type datastore_folder: :class:`str` + :param datastore_folder: The root datastore folder associated with the datacenter. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + :type host_folder: :class:`str` + :param host_folder: The root host and cluster folder associated with the datacenter. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + :type network_folder: :class:`str` + :param network_folder: The root network folder associated with the datacenter. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + :type vm_folder: :class:`str` + :param vm_folder: The root virtual machine folder associated with the datacenter. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + """ + ... + + def create(self, spec): + """ + Create a new datacenter in the vCenter inventory + + :type spec: :class:`Datacenter.CreateSpec` + :param spec: Specification for the new datacenter to be created. + :rtype: :class:`str` + :return: The identifier of the newly created datacenter + The return value will be an identifier for the resource type: + ``Datacenter``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a datacenter with the same name is already present. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the datacenter name is empty or invalid as per the underlying + implementation. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the folder is not specified and the system cannot choose a + suitable one. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the datacenter folder cannot be found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def delete(self, datacenter, force=...): + """ + Delete an empty datacenter from the vCenter Server + + :type datacenter: :class:`str` + :param datacenter: Identifier of the datacenter to be deleted. + The parameter must be an identifier for the resource type: + ``Datacenter``. + :type force: :class:`bool` or ``None`` + :param force: If true, delete the datacenter even if it is not empty. + If None a :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + exception will be reported if the datacenter is not empty. This is + the equivalent of passing the value false. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no datacenter associated with ``datacenter`` in the + system. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if the datacenter associated with ``datacenter`` is not empty. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) datacenters in vCenter matching the + :class:`Datacenter.FilterSpec`. + + :type filter: :class:`Datacenter.FilterSpec` or ``None`` + :param filter: Specification of matching datacenters for which information should + be returned. + If None, the behavior is equivalent to a + :class:`Datacenter.FilterSpec` with all attributes None which means + all datacenters match the filter. + :rtype: :class:`list` of :class:`Datacenter.Summary` + :return: Commonly used information about the datacenters matching the + :class:`Datacenter.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 1000 datacenters match the + :class:`Datacenter.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def get(self, datacenter): + """ + Retrieves information about the datacenter corresponding to + ``datacenter``. + + :type datacenter: :class:`str` + :param datacenter: Identifier of the datacenter. + The parameter must be an identifier for the resource type: + ``Datacenter``. + :rtype: :class:`Datacenter.Info` + :return: Information about the datacenter associated with ``datacenter``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no datacenter associated with ``datacenter`` in the + system. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class Datastore(VapiInterface): + """ + The Datastore class provides methods for manipulating a datastore. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Type(Enum): + """ + The ``Datastore.Type`` class defines the supported types of vCenter + datastores. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + VMFS = ... + NFS = ... + NFS41 = ... + CIFS = ... + VSAN = ... + VFFS = ... + VVOL = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Type` instance. + """ + ... + + class Info(VapiStruct): + """ + The ``Datastore.Info`` class contains information about a datastore. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + type=..., + accessible=..., + free_space=..., + multiple_host_access=..., + thin_provisioning_supported=..., + ) -> None: + """ + :type name: :class:`str` + :param name: Name of the datastore. + :type type: :class:`Datastore.Type` + :param type: Type (VMFS, NFS, NFS41, CIFS, VSAN, VFFS, VVOL) of the datastore. + :type accessible: :class:`bool` + :param accessible: Whether or not this datastore is accessible. + :type free_space: :class:`long` or ``None`` + :param free_space: Available space of this datastore, in bytes. + + The server periodically updates this value. + This attribute will be None if the available space of this + datastore is not known. + :type multiple_host_access: :class:`bool` + :param multiple_host_access: Whether or not more than one host in the datacenter has been + configured with access to the datastore. + :type thin_provisioning_supported: :class:`bool` + :param thin_provisioning_supported: Whether or not the datastore supports thin provisioning on a per + file basis. When thin provisioning is used, backing storage is + lazily allocated. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Datastore.FilterSpec`` class contains attributes used to filter the + results when listing datastores (see :func:`Datastore.list`). If multiple + attributes are specified, only datastores matching all of the attributes + match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, datastores=..., names=..., types=..., folders=..., datacenters=... + ) -> None: + """ + :type datastores: :class:`set` of :class:`str` or ``None`` + :param datastores: Identifiers of datastores that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datastore``. + If None or empty, datastores with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that datastores must have to match the filter (see + :attr:`Datastore.Info.name`). + If None or empty, datastores with any name match the filter. + :type types: :class:`set` of :class:`Datastore.Type` or ``None`` + :param types: Types that datastores must have to match the filter (see + :attr:`Datastore.Summary.type`). + If None or empty, datastores with any type match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the datastore for the datastore to match + the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, datastores in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the datastore for the datastore to + match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, datastores in any datacenter match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Datastore.Summary`` class contains commonly used information about a + datastore. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, datastore=..., name=..., type=..., free_space=..., capacity=... + ) -> None: + """ + :type datastore: :class:`str` + :param datastore: Identifier of the datastore. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + :type name: :class:`str` + :param name: Name of the datastore. + :type type: :class:`Datastore.Type` + :param type: Type (VMFS, NFS, NFS41, CIFS, VSAN, VFFS, VVOL) of the datatore. + :type free_space: :class:`long` or ``None`` + :param free_space: Available space of this datastore, in bytes. + + The server periodically updates this value. + This attribute will be None if the available space of this + datastore is not known. + :type capacity: :class:`long` or ``None`` + :param capacity: Capacity of this datastore, in bytes. + + The server periodically updates this value. + This attribute will be None if the capacity of this datastore is + not known. + """ + ... + + def get(self, datastore): + """ + Retrieves information about the datastore indicated by ``datastore``. + + :type datastore: :class:`str` + :param datastore: Identifier of the datastore for which information should be + retrieved. + The parameter must be an identifier for the resource type: + ``Datastore``. + :rtype: :class:`Datastore.Info` + :return: Information about the datastore associated with ``datastore``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the datastore indicated by ``datastore`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 2500 visible (subject to permission + checks) datastores in vCenter matching the + :class:`Datastore.FilterSpec`. + + :type filter: :class:`Datastore.FilterSpec` or ``None`` + :param filter: Specification of matching datastores for which information should + be returned. + If None, the behavior is equivalent to a + :class:`Datastore.FilterSpec` with all attributes None which means + all datastores match the filter. + :rtype: :class:`list` of :class:`Datastore.Summary` + :return: Commonly used information about the datastores matching the + :class:`Datastore.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Datastore.FilterSpec.types` attribute contains a + value that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Datastore.FilterSpec.types` attribute contains a + value that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 2500 datastores match the + :class:`Datastore.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class Folder(VapiInterface): + """ + The Folder class provides methods for manipulating a vCenter Server folder. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Type(Enum): + """ + The ``Folder.Type`` class defines the type of a vCenter Server folder. The + type of a folder determines what what kinds of children can be contained in + the folder. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + DATACENTER = ... + DATASTORE = ... + HOST = ... + NETWORK = ... + VIRTUAL_MACHINE = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Type` instance. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Folder.FilterSpec`` class contains attributes used to filter the + results when listing folders (see :func:`Folder.list`). If multiple + attributes are specified, only folders matching all of the attributes match + the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folders=..., names=..., type=..., parent_folders=..., datacenters=... + ) -> None: + """ + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Identifiers of folders that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, folders with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that folders must have to match the filter (see + :attr:`Folder.Summary.name`). + If None or empty, folders with any name match the filter. + :type type: :class:`Folder.Type` or ``None`` + :param type: Type that folders must have to match the filter (see + :attr:`Folder.Summary.type`). + If None, folders with any type match the filter. + :type parent_folders: :class:`set` of :class:`str` or ``None`` + :param parent_folders: Folders that must contain the folder for the folder to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, folder in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the folder for the folder to match + the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, folder in any datacenter match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Folder.Summary`` class contains commonly used information about a + folder. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, folder=..., name=..., type=...) -> None: + """ + :type folder: :class:`str` + :param folder: Identifier of the folder. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + :type name: :class:`str` + :param name: Name of the vCenter Server folder. + :type type: :class:`Folder.Type` + :param type: Type (DATACENTER, DATASTORE, HOST, NETWORK, VIRTUAL_MACHINE) of the + vCenter Server folder. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) folders in vCenter matching the :class:`Folder.FilterSpec`. + + :type filter: :class:`Folder.FilterSpec` or ``None`` + :param filter: Specification of matching folders for which information should be + returned. + If None, the behavior is equivalent to a :class:`Folder.FilterSpec` + with all attributes None which means all folders match the filter. + :rtype: :class:`list` of :class:`Folder.Summary` + :return: Commonly used information about the folders matching the + :class:`Folder.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Folder.FilterSpec.type` attribute contains a value + that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 1000 folders match the :class:`Folder.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class Host(VapiInterface): + """ + The ``Host`` class provides methods to manage hosts in the vCenter Server. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class ConnectionState(Enum): + """ + The ``Host.ConnectionState`` class defines the connection status of a host. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + CONNECTED = ... + DISCONNECTED = ... + NOT_RESPONDING = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`ConnectionState` instance. + """ + ... + + class PowerState(Enum): + """ + The ``Host.PowerState`` class defines the power states of a host. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + POWERED_ON = ... + POWERED_OFF = ... + STANDBY = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`PowerState` instance. + """ + ... + + class CreateSpec(VapiStruct): + """ + The ``Host.CreateSpec`` class defines the information used to create a + host. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + hostname=..., + port=..., + user_name=..., + password=..., + folder=..., + thumbprint_verification=..., + thumbprint=..., + force_add=..., + ) -> None: + """ + :type hostname: :class:`str` + :param hostname: The IP address or DNS resolvable name of the host. + :type port: :class:`long` or ``None`` + :param port: The port of the host. + If None, port 443 will be used. + :type user_name: :class:`str` + :param user_name: The administrator account on the host. + :type password: :class:`str` + :param password: The password for the administrator account on the host. + :type folder: :class:`str` or ``None`` + :param folder: Host and cluster folder in which the new standalone host should be + created. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose a suitable + folder for the host; if a folder cannot be chosen, the host + creation operation will fail. + :type thumbprint_verification: :class:`Host.CreateSpec.ThumbprintVerification` + :param thumbprint_verification: Type of host's SSL certificate verification to be done. + :type thumbprint: :class:`str` + :param thumbprint: The thumbprint of the SSL certificate, which the host is expected + to have. The thumbprint is always computed using the SHA1 hash and + is the string representation of that hash in the format: + xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx where, + 'x' represents a hexadecimal digit. + This attribute is optional and it is only relevant when the value + of ``thumbprintVerification`` is + :attr:`Host.CreateSpec.ThumbprintVerification.THUMBPRINT`. + :type force_add: :class:`bool` or ``None`` + :param force_add: Whether host should be added to the vCenter Server even if it is + being managed by another vCenter Server. The original vCenterServer + loses connection to the host. + If None, forceAdd is default to false. + """ + ... + + class ThumbprintVerification(Enum): + """ + The ``Host.CreateSpec.ThumbprintVerification`` class defines the thumbprint + verification schemes for a host's SSL certificate. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + NONE = ... + THUMBPRINT = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`ThumbprintVerification` instance. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Host.FilterSpec`` class contains attributes used to filter the + results when listing hosts (see :func:`Host.list`). If multiple attributes + are specified, only hosts matching all of the attributes match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + hosts=..., + names=..., + folders=..., + datacenters=..., + standalone=..., + clusters=..., + connection_states=..., + ) -> None: + """ + :type hosts: :class:`set` of :class:`str` or ``None`` + :param hosts: Identifiers of hosts that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``HostSystem``. + If None or empty, hosts with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that hosts must have to match the filter (see + :attr:`Host.Summary.name`). + If None or empty, hosts with any name match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the hosts for the hosts to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, hosts in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the hosts for the hosts to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, hosts in any datacenter match the filter. + :type standalone: :class:`bool` or ``None`` + :param standalone: If true, only hosts that are not part of a cluster can match the + filter, and if false, only hosts that are are part of a cluster can + match the filter. + If None Hosts can match filter independent of whether they are part + of a cluster or not. If this field is true and + :attr:`Host.FilterSpec.clusters` os not empty, no hosts will match + the filter. + :type clusters: :class:`set` of :class:`str` or ``None`` + :param clusters: Clusters that must contain the hosts for the hosts to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``ClusterComputeResource``. + If None or empty, hosts in any cluster and hosts that are not in a + cluster match the filter. If this attribute is not empty and + :attr:`Host.FilterSpec.standalone` is true, no hosts will match the + filter. + :type connection_states: :class:`set` of :class:`Host.ConnectionState` or ``None`` + :param connection_states: Connection states that a host must be in to match the filter (see + :attr:`Host.Summary.connection_state`. + If None or empty, hosts in any connection state match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Host.Summary`` class contains commonly used information about a host + in vCenter Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, host=..., name=..., connection_state=..., power_state=... + ) -> None: + """ + :type host: :class:`str` + :param host: Identifier of the host. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + :type name: :class:`str` + :param name: Name of the host. + :type connection_state: :class:`Host.ConnectionState` + :param connection_state: Connection status of the host + :type power_state: :class:`Host.PowerState` + :param power_state: Power state of the host + This attribute is optional and it is only relevant when the value + of ``connectionState`` is :attr:`Host.ConnectionState.CONNECTED`. + """ + ... + + def create(self, spec): + """ + Add a new standalone host in the vCenter inventory. The newly connected + host will be in connected state. The vCenter Server will verify the SSL + certificate before adding the host to its inventory. In the case where + the SSL certificate cannot be verified because the Certificate + Authority is not recognized or the certificate is self signed, the + vCenter Server will fall back to thumbprint verification mode as + defined by :class:`Host.CreateSpec.ThumbprintVerification`. + + :type spec: :class:`Host.CreateSpec` + :param spec: Specification for the new host to be created. + :rtype: :class:`str` + :return: The newly created identifier of the host in vCenter. + The return value will be an identifier for the resource type: + ``HostSystem``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if the host with the same name is already present. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if installation of VirtualCenter agent on a host fails. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the host name is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the host folder is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the SSL thumbprint specified is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the PEM SSL certificate in CreateSpec.sslCertificate is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if both CreateSpec.thumbprint and CreateSpec.sslCertificate are + :class:`set`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the CreateSpec.sslCertificate argument is not set, and the + CreateSpec.thumbprint argument is set, but the SHA-1 hashing + algorithm is currently disabled for computing certificate + thumbprints. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidElementType` + if the host folder id does not support vSphere compute resource as + its children type. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no folder associated with the ``folder`` attribute in + the system. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if the host is already being managed by another vCenter Server + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if there are not enough licenses to add the host. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user name or password for the administration account on the + host are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the software version on the host is not supported. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def delete(self, host): + """ + Remove a standalone host from the vCenter Server. + + :type host: :class:`str` + :param host: Identifier of the host to be deleted. + The parameter must be an identifier for the resource type: + ``HostSystem``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no host associated with ``host`` in the system. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if the host associated with ``host`` is in a vCenter cluster + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 2500 visible (subject to permission + checks) hosts in vCenter matching the :class:`Host.FilterSpec`. + + :type filter: :class:`Host.FilterSpec` or ``None`` + :param filter: Specification of matching hosts for which information should be + returned. + If None, the behavior is equivalent to a :class:`Host.FilterSpec` + with all attributes None which means all hosts match the filter. + :rtype: :class:`list` of :class:`Host.Summary` + :return: Commonly used information about the hosts matching the + :class:`Host.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Host.FilterSpec.connection_states` attribute contains + a value that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 2500 hosts match the :class:`Host.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def connect(self, host): + """ + Connect to the host corresponding to ``host`` previously added to the + vCenter server. + + :type host: :class:`str` + :param host: Identifier of the host to be reconnected. + The parameter must be an identifier for the resource type: + ``HostSystem``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the host associated with ``host`` is already connected. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no host associated with ``host`` in the system. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def disconnect(self, host): + """ + Disconnect the host corresponding to ``host`` from the vCenter server + + :type host: :class:`str` + :param host: Identifier of the host to be disconnected. + The parameter must be an identifier for the resource type: + ``HostSystem``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyInDesiredState` + if the host associated with ``host`` is already disconnected. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no host associated with ``host`` in the system. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class Network(VapiInterface): + """ + The Network class provides methods for manipulating a vCenter Server + network. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Type(Enum): + """ + The ``Network.Type`` class defines the type of a vCenter Server network. + The type of a network can be used to determine what features it supports + and which APIs can be used to find more information about the network or + change its configuration. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + STANDARD_PORTGROUP = ... + DISTRIBUTED_PORTGROUP = ... + OPAQUE_NETWORK = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Type` instance. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``Network.FilterSpec`` class contains attributes used to filter the + results when listing networks (see :func:`Network.list`). If multiple + attributes are specified, only networks matching all of the attributes + match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, networks=..., names=..., types=..., folders=..., datacenters=... + ) -> None: + """ + :type networks: :class:`set` of :class:`str` or ``None`` + :param networks: Identifiers of networks that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Network``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Network``. + If None or empty, networks with any identifier match the filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that networks must have to match the filter (see + :attr:`Network.Summary.name`). + If None or empty, networks with any name match the filter. + :type types: :class:`set` of :class:`Network.Type` or ``None`` + :param types: Types that networks must have to match the filter (see + :attr:`Network.Summary.type`). + If None, networks with any type match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the network for the network to match the + filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, networks in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the network for the network to match + the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, networks in any datacenter match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``Network.Summary`` class contains commonly used information about a + network. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, network=..., name=..., type=...) -> None: + """ + :type network: :class:`str` + :param network: Identifier of the network. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Network``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Network``. + :type name: :class:`str` + :param name: Name of the network. + :type type: :class:`Network.Type` + :param type: Type (STANDARD_PORTGROUP, DISTRIBUTED_PORTGROUP, OPAQUE_NETWORK) of + the vCenter Server network. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) networks in vCenter matching the :class:`Network.FilterSpec`. + + :type filter: :class:`Network.FilterSpec` or ``None`` + :param filter: Specification of matching networks for which information should be + returned. + If None, the behavior is equivalent to a + :class:`Network.FilterSpec` with all attributes None which means + all networks match the filter. + :rtype: :class:`list` of :class:`Network.Summary` + :return: Commonly used information about the networks matching the + :class:`Network.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`Network.FilterSpec.types` attribute contains a value + that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 1000 networks match the :class:`Network.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + +class ResourcePool(VapiInterface): + """ + The ResourcePool class provides methods for manipulating a vCenter Server + resource pool. + + This class does not include virtual appliances in the inventory of resource + pools even though part of the behavior of a virtual appliance is to act + like a resource pool. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class SharesInfo(VapiStruct): + """ + The ``ResourcePool.SharesInfo`` class provides specification of shares. + + Shares are used to determine relative allocation between resource + consumers. In general, a consumer with more shares gets proportionally more + of the resource, subject to certain other constraints.. This class was + added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__(self, level=..., shares=...) -> None: + """ + :type level: :class:`ResourcePool.SharesInfo.Level` + :param level: The allocation level. It maps to a pre-determined set of numeric + values for shares. If the shares value does not map to a predefined + size, then the level is set as CUSTOM. This attribute was added in + vSphere API 7.0.0.0. + :type shares: :class:`long` + :param shares: When :attr:`ResourcePool.SharesInfo.level` is set to CUSTOM, it is + the number of shares allocated. Otherwise, this value is ignored. + + There is no unit for this value. It is a relative measure based on + the settings for other resource pools.. This attribute was added in + vSphere API 7.0.0.0. + This attribute is optional and it is only relevant when the value + of ``level`` is :attr:`ResourcePool.SharesInfo.Level.CUSTOM`. + """ + ... + + class Level(Enum): + """ + The ``ResourcePool.SharesInfo.Level`` class defines the possible values for + the allocation level. This enumeration was added in vSphere API 7.0.0.0. + + .. note:: + This class represents an enumerated type in the interface language + definition. The class contains class attributes which represent the + values in the current version of the enumerated type. Newer versions of + the enumerated type may contain new values. To use new values of the + enumerated type in communication with a server that supports the newer + version of the API, you instantiate this class. See :ref:`enumerated + type description page `. + """ + + LOW = ... + NORMAL = ... + HIGH = ... + CUSTOM = ... + def __init__(self, string) -> None: + """ + :type string: :class:`str` + :param string: String value for the :class:`Level` instance. + """ + ... + + class ResourceAllocationInfo(VapiStruct): + """ + The ``ResourcePool.ResourceAllocationInfo`` class contains resource + allocation information of a resource pool. This class was added in vSphere + API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, reservation=..., expandable_reservation=..., limit=..., shares=... + ) -> None: + """ + :type reservation: :class:`long` + :param reservation: Amount of resource that is guaranteed available to a resource pool. + Reserved resources are not wasted if they are not used. If the + utilization is less than the reservation, the resources can be + utilized by other running virtual machines. Units are MB fo memory, + and MHz for CPU. This attribute was added in vSphere API 7.0.0.0. + :type expandable_reservation: :class:`bool` + :param expandable_reservation: In a resource pool with an expandable reservation, the reservation + can grow beyond the specified value, if the parent resource pool + has unreserved resources. A non-expandable reservation is called a + fixed reservation. This attribute was added in vSphere API 7.0.0.0. + :type limit: :class:`long` + :param limit: The utilization of a resource pool will not exceed this limit, even + if there are available resources. This is typically used to ensure + a consistent performance of resource pools independent of available + resources. If set to -1, then there is no fixed limit on resource + usage (only bounded by available resources and shares). Units are + MB for memory, and MHz for CPU. This attribute was added in vSphere + API 7.0.0.0. + :type shares: :class:`ResourcePool.SharesInfo` + :param shares: Shares are used in case of resource contention. This attribute was + added in vSphere API 7.0.0.0. + """ + ... + + class Info(VapiStruct): + """ + The ``ResourcePool.Info`` class contains information about a resource pool. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + name=..., + resource_pools=..., + cpu_allocation=..., + memory_allocation=..., + ) -> None: + """ + :type name: :class:`str` + :param name: Name of the vCenter Server resource pool. + :type resource_pools: :class:`set` of :class:`str` + :param resource_pools: Identifiers of the child resource pools contained in this resource + pool. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``ResourcePool``. + :type cpu_allocation: :class:`ResourcePool.ResourceAllocationInfo` + :param cpu_allocation: Resource allocation information for CPU. This attribute was added + in vSphere API 7.0.0.0. + This attribute is optional because it was added in a newer version + than its parent node. + :type memory_allocation: :class:`ResourcePool.ResourceAllocationInfo` + :param memory_allocation: Resource allocation information for memory. This attribute was + added in vSphere API 7.0.0.0. + This attribute is optional because it was added in a newer version + than its parent node. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``ResourcePool.FilterSpec`` class contains attributes used to filter + the results when listing resource pools (see :func:`ResourcePool.list`). If + multiple attributes are specified, only resource pools matching all of the + attributes match the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + resource_pools=..., + names=..., + parent_resource_pools=..., + datacenters=..., + hosts=..., + clusters=..., + ) -> None: + """ + :type resource_pools: :class:`set` of :class:`str` or ``None`` + :param resource_pools: Identifiers of resource pools that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``ResourcePool``. + If None or empty, resource pools with any identifier match the + filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that resource pools must have to match the filter (see + :attr:`ResourcePool.Info.name`). + If None or empty, resource pools with any name match the filter. + :type parent_resource_pools: :class:`set` of :class:`str` or ``None`` + :param parent_resource_pools: Resource pools that must contain the resource pool for the resource + pool to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``ResourcePool``. + If None or empty, resource pools in any resource pool match the + filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the resource pool for the resource + pool to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, resource pools in any datacenter match the + filter. + :type hosts: :class:`set` of :class:`str` or ``None`` + :param hosts: Hosts that must contain the resource pool for the resource pool to + match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``HostSystem``. + If None or empty, resource pools in any host match the filter. + :type clusters: :class:`set` of :class:`str` or ``None`` + :param clusters: Clusters that must contain the resource pool for the resource pool + to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``ClusterComputeResource``. + If None or empty, resource pools in any cluster match the filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``ResourcePool.Summary`` class contains commonly used information about + a resource pool in vCenter Server. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, resource_pool=..., name=...) -> None: + """ + :type resource_pool: :class:`str` + :param resource_pool: Identifier of the resource pool. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + :type name: :class:`str` + :param name: Name of the resource pool. + """ + ... + + class ResourceAllocationCreateSpec(VapiStruct): + """ + The ``ResourcePool.ResourceAllocationCreateSpec`` class contains resource + allocation information used to create a resource pool, see + :func:`ResourcePool.create`. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, reservation=..., expandable_reservation=..., limit=..., shares=... + ) -> None: + """ + :type reservation: :class:`long` or ``None`` + :param reservation: Amount of resource that is guaranteed available to a resource pool. + Reserved resources are not wasted if they are not used. If the + utilization is less than the reservation, the resources can be + utilized by other running virtual machines. Units are MB fo memory, + and MHz for CPU. This attribute was added in vSphere API 7.0.0.0. + If None or empty, + :attr:`ResourcePool.ResourceAllocationCreateSpec.reservation` will + be set to 0. + :type expandable_reservation: :class:`bool` or ``None`` + :param expandable_reservation: In a resource pool with an expandable reservation, the reservation + can grow beyond the specified value, if the parent resource pool + has unreserved resources. A non-expandable reservation is called a + fixed reservation. This attribute was added in vSphere API 7.0.0.0. + If None or empty, + :attr:`ResourcePool.ResourceAllocationCreateSpec.expandable_reservation` + will be set to true. + :type limit: :class:`long` or ``None`` + :param limit: The utilization of a resource pool will not exceed this limit, even + if there are available resources. This is typically used to ensure + a consistent performance of resource pools independent of available + resources. If set to -1, then there is no fixed limit on resource + usage (only bounded by available resources and shares). Units are + MB for memory, and MHz for CPU. This attribute was added in vSphere + API 7.0.0.0. + If None or empty, + :attr:`ResourcePool.ResourceAllocationCreateSpec.limit` will be set + to -1. + :type shares: :class:`ResourcePool.SharesInfo` or ``None`` + :param shares: Shares are used in case of resource contention. This attribute was + added in vSphere API 7.0.0.0. + If None or empty, + :attr:`ResourcePool.ResourceAllocationCreateSpec.shares` will be + set to ':attr:`ResourcePool.SharesInfo.Level.NORMAL`'. + """ + ... + + class CreateSpec(VapiStruct): + """ + The class contains information used to create a resource pool, see + :func:`ResourcePool.create`. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, name=..., parent=..., cpu_allocation=..., memory_allocation=... + ) -> None: + """ + :type name: :class:`str` + :param name: Name of the resource pool. This attribute was added in vSphere API + 7.0.0.0. + :type parent: :class:`str` + :param parent: Parent of the created resource pool. This attribute was added in + vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + :type cpu_allocation: :class:`ResourcePool.ResourceAllocationCreateSpec` or ``None`` + :param cpu_allocation: Resource allocation for CPU. This attribute was added in vSphere + API 7.0.0.0. + if None or empty, use the default CPU allocation specification. + :type memory_allocation: :class:`ResourcePool.ResourceAllocationCreateSpec` or ``None`` + :param memory_allocation: Resource allocation for memory. This attribute was added in vSphere + API 7.0.0.0. + if None or empty, use the default memory allocation specification. + """ + ... + + class ResourceAllocationUpdateSpec(VapiStruct): + """ + The ``ResourceAllocationUpdateSpec`` class descrives the updates to be made + to the resource allocation settings of a resource pool. This class was + added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, reservation=..., expandable_reservation=..., limit=..., shares=... + ) -> None: + """ + :type reservation: :class:`long` or ``None`` + :param reservation: Amount of resource that is guaranteed available to a resource pool. + Reserved resources are not wasted if they are not used. If the + utilization is less than the reservation, the resources can be + utilized by other running virtual machines. Units are MB fo memory, + and MHz for CPU. This attribute was added in vSphere API 7.0.0.0. + If None or empty, ``reservation`` will be set to 0. + :type expandable_reservation: :class:`bool` or ``None`` + :param expandable_reservation: In a resource pool with an expandable reservation, the reservation + can grow beyond the specified value, if the parent resource pool + has unreserved resources. A non-expandable reservation is called a + fixed reservation. This attribute was added in vSphere API 7.0.0.0. + If None or empty, ``expandableReservation`` will be set to true. + :type limit: :class:`long` or ``None`` + :param limit: The utilization of a resource pool will not exceed this limit, even + if there are available resources. This is typically used to ensure + a consistent performance of resource pools independent of available + resources. If set to -1, then there is no fixed limit on resource + usage (only bounded by available resources and shares). Units are + MB for memory, and MHz for CPU. This attribute was added in vSphere + API 7.0.0.0. + If None or empty, ``limit`` will be set to -1. + :type shares: :class:`ResourcePool.SharesInfo` or ``None`` + :param shares: Shares are used in case of resource contention. This attribute was + added in vSphere API 7.0.0.0. + If None or empty, ``shares`` will be set to + ':attr:`ResourcePool.SharesInfo.Level.NORMAL`'. + """ + ... + + class UpdateSpec(VapiStruct): + """ + The class contains specification for updating the configuration of a + resource pool. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=..., cpu_allocation=..., memory_allocation=...) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Name of the resource pool. This attribute was added in vSphere API + 7.0.0.0. + if None or empty, the name of the resource pool will not be + changed. + :type cpu_allocation: :class:`ResourcePool.ResourceAllocationUpdateSpec` or ``None`` + :param cpu_allocation: Resource allocation for CPU. This attribute was added in vSphere + API 7.0.0.0. + if None or empty, the CPU allocation of the resource pool will not + be changed. + :type memory_allocation: :class:`ResourcePool.ResourceAllocationUpdateSpec` or ``None`` + :param memory_allocation: Resource allocation for memory. This attribute was added in vSphere + API 7.0.0.0. + if None or empty, the memory allocation of the resource pool will + not be changed. + """ + ... + + def get(self, resource_pool): + """ + Retrieves information about the resource pool indicated by + ``resource_pool``. + + :type resource_pool: :class:`str` + :param resource_pool: Identifier of the resource pool for which information should be + retrieved. + The parameter must be an identifier for the resource type: + ``ResourcePool``. + :rtype: :class:`ResourcePool.Info` + :return: Information about the resource pool. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the resource pool indicated by ``resource_pool`` does not exist. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + If the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``ResourcePool`` referenced by the parameter + ``resource_pool`` requires ``System.Read``. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 1000 visible (subject to permission + checks) resource pools in vCenter matching the + :class:`ResourcePool.FilterSpec`. + + :type filter: :class:`ResourcePool.FilterSpec` or ``None`` + :param filter: Specification of matching resource pools for which information + should be returned. + If None, the behavior is equivalent to a + :class:`ResourcePool.FilterSpec` with all attributes None which + means all resource pools match the filter. + :rtype: :class:`list` of :class:`ResourcePool.Summary` + :return: Commonly used information about the resource pools matching the + :class:`ResourcePool.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + If more than 1000 resource pools match the + :class:`ResourcePool.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + If the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user doesn't have the required privileges. + """ + ... + + def create(self, spec): + """ + Creates a resource pool. This method was added in vSphere API 7.0.0.0. + + :type spec: :class:`ResourcePool.CreateSpec` + :param spec: Specification of the new resource pool to be created, see + :class:`ResourcePool.CreateSpec`. + :rtype: :class:`str` + :return: The identifier of the newly created resource pool. + The return value will be an identifier for the resource type: + ``ResourcePool``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If a parameter passed in the spec is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the resource specified in parent could not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + If the specified resource in parent is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + If the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to create the resource pool could + not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``ResourcePool`` referenced by the attribute + :attr:`ResourcePool.CreateSpec.parent` requires + ``Resource.CreatePool``. + """ + ... + + def delete(self, resource_pool): + """ + Deletes a resource pool. This method was added in vSphere API 7.0.0.0. + + :type resource_pool: :class:`str` + :param resource_pool: Identifier of the resource pool to be deleted. + The parameter must be an identifier for the resource type: + ``ResourcePool``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the resource pool is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + If the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + If the resource pool is a root resource pool. + """ + ... + + def update(self, resource_pool, spec): + """ + Updates the configuration of a resource pool. This method was added in + vSphere API 7.0.0.0. + + :type resource_pool: :class:`str` + :param resource_pool: Identifier of the resource pool. + The parameter must be an identifier for the resource type: + ``ResourcePool``. + :type spec: :class:`ResourcePool.UpdateSpec` + :param spec: Specification for updating the configuration of the resource pool. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + If the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + If any of the specified parameters is invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + If the resource pool is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + If the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + If any of the resources needed to reconfigure the resource pool + could not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + If the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + If the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``ResourcePool`` referenced by the parameter + ``resource_pool`` requires ``Resource.EditPool``. + """ + ... + +class VM(VapiInterface): + """ + The ``VM`` class provides methods for managing the lifecycle of a virtual + machine. + """ + + RESOURCE_TYPE = ... + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class InventoryPlacementSpec(VapiStruct): + """ + The ``VM.InventoryPlacementSpec`` class contains information used to place + a virtual machine in the vCenter inventory. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, folder=...) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine should be + placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose a suitable + folder for the virtual machine; if a folder cannot be chosen, the + virtual machine creation operation will fail. + """ + ... + + class ComputePlacementSpec(VapiStruct): + """ + The ``VM.ComputePlacementSpec`` class contains information used to place a + virtual machine on compute resources. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, resource_pool=..., host=..., cluster=...) -> None: + """ + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine should be placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + This attribute is currently required if both ``host`` and + ``cluster`` are None. In the future, if this attribute is None, the + system will attempt to choose a suitable resource pool for the + virtual machine; if a resource pool cannot be chosen, the virtual + machine creation operation will fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine should be placed. + + If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. + + If ``host`` and ``cluster`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + This attribute may be None if ``resourcePool`` or ``cluster`` is + specified. If None, the system will attempt to choose a suitable + host for the virtual machine; if a host cannot be chosen, the + virtual machine creation operation will fail. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster into which the virtual machine should be placed. + + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. + + If ``cluster`` and ``host`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + """ + ... + + class StoragePlacementSpec(VapiStruct): + """ + The ``VM.StoragePlacementSpec`` class contains information used to store a + virtual machine's files. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, datastore=...) -> None: + """ + :type datastore: :class:`str` or ``None`` + :param datastore: Datastore on which the virtual machine's configuration state should + be stored. This datastore will also be used for any virtual disks + that are created as part of the virtual machine creation operation. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose suitable + storage for the virtual machine; if storage cannot be chosen, the + virtual machine creation operation will fail. + """ + ... + + class PlacementSpec(VapiStruct): + """ + The ``VM.PlacementSpec`` class contains information used to place a virtual + machine onto resources within the vCenter inventory. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., resource_pool=..., host=..., cluster=..., datastore=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine should be + placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose a suitable + folder for the virtual machine; if a folder cannot be chosen, the + virtual machine creation operation will fail. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine should be placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + This attribute is currently required if both ``host`` and + ``cluster`` are None. In the future, if this attribute is None, the + system will attempt to choose a suitable resource pool for the + virtual machine; if a resource pool cannot be chosen, the virtual + machine creation operation will fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine should be placed. + + If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. + + If ``host`` and ``cluster`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + This attribute may be None if ``resourcePool`` or ``cluster`` is + specified. If None, the system will attempt to choose a suitable + host for the virtual machine; if a host cannot be chosen, the + virtual machine creation operation will fail. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster into which the virtual machine should be placed. + + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. + + If ``cluster`` and ``host`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + :type datastore: :class:`str` or ``None`` + :param datastore: Datastore on which the virtual machine's configuration state should + be stored. This datastore will also be used for any virtual disks + that are created as part of the virtual machine creation operation. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose suitable + storage for the virtual machine; if storage cannot be chosen, the + virtual machine creation operation will fail. + """ + ... + + class StoragePolicySpec(VapiStruct): + """ + The ``VM.StoragePolicySpec`` class contains information about the storage + policy to be associated with a virtual machine object. This class was added + in vSphere API 6.7. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, policy=...) -> None: + """ + :type policy: :class:`str` + :param policy: Identifier of the storage policy which should be associated with + the virtual machine. This attribute was added in vSphere API 6.7. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vcenter.StoragePolicy``. When methods return a value + of this class as a return value, the attribute will be an + identifier for the resource type: + ``com.vmware.vcenter.StoragePolicy``. + """ + ... + + class CreateSpec(VapiStruct): + """ + Document-based creation spec. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _canonical_to_pep_names = ... + def __init__( + self, + guest_os=..., + name=..., + placement=..., + hardware_version=..., + boot=..., + boot_devices=..., + cpu=..., + memory=..., + disks=..., + nics=..., + cdroms=..., + floppies=..., + parallel_ports=..., + serial_ports=..., + sata_adapters=..., + scsi_adapters=..., + nvme_adapters=..., + storage_policy=..., + ) -> None: + """ + :type guest_os: :class:`com.vmware.vcenter.vm_client.GuestOS` + :param guest_os: Guest OS. + :type name: :class:`str` or ``None`` + :param name: Virtual machine name. + If None, a default name will be generated by the server. + :type placement: :class:`VM.PlacementSpec` or ``None`` + :param placement: Virtual machine placement information. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose suitable + resources on which to place the virtual machine. + :type hardware_version: :class:`com.vmware.vcenter.vm_client.Hardware.Version` or ``None`` + :param hardware_version: Virtual hardware version. + If None, defaults to the most recent version supported by the + server. + :type boot: :class:`com.vmware.vcenter.vm.hardware_client.Boot.CreateSpec` or ``None`` + :param boot: Boot configuration. + If None, guest-specific default values will be used. + :type boot_devices: :class:`list` of :class:`com.vmware.vcenter.vm.hardware.boot_client.Device.EntryCreateSpec` or ``None`` + :param boot_devices: Boot device configuration. + If None, a server-specific boot sequence will be used. + :type cpu: :class:`com.vmware.vcenter.vm.hardware_client.Cpu.UpdateSpec` or ``None`` + :param cpu: CPU configuration. + If None, guest-specific default values will be used. + :type memory: :class:`com.vmware.vcenter.vm.hardware_client.Memory.UpdateSpec` or ``None`` + :param memory: Memory configuration. + If None, guest-specific default values will be used. + :type disks: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Disk.CreateSpec` or ``None`` + :param disks: List of disks. + If None, a single blank virtual disk of a guest-specific size will + be created on the same storage as the virtual machine + configuration, and will use a guest-specific host bus adapter type. + If the guest-specific size is 0, no virtual disk will be created. + :type nics: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Ethernet.CreateSpec` or ``None`` + :param nics: List of Ethernet adapters. + If None, no Ethernet adapters will be created. + :type cdroms: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Cdrom.CreateSpec` or ``None`` + :param cdroms: List of CD-ROMs. + If None, no CD-ROM devices will be created. + :type floppies: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Floppy.CreateSpec` or ``None`` + :param floppies: List of floppy drives. + If None, no floppy drives will be created. + :type parallel_ports: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Parallel.CreateSpec` or ``None`` + :param parallel_ports: List of parallel ports. + If None, no parallel ports will be created. + :type serial_ports: :class:`list` of :class:`com.vmware.vcenter.vm.hardware_client.Serial.CreateSpec` or ``None`` + :param serial_ports: List of serial ports. + If None, no serial ports will be created. + :type sata_adapters: :class:`list` of :class:`com.vmware.vcenter.vm.hardware.adapter_client.Sata.CreateSpec` or ``None`` + :param sata_adapters: List of SATA adapters. + If None, any adapters necessary to connect the virtual machine's + storage devices will be created; this includes any devices that + explicitly specify a SATA host bus adapter, as well as any devices + that do not specify a host bus adapter if the guest's preferred + adapter type is SATA. + :type scsi_adapters: :class:`list` of :class:`com.vmware.vcenter.vm.hardware.adapter_client.Scsi.CreateSpec` or ``None`` + :param scsi_adapters: List of SCSI adapters. + If None, any adapters necessary to connect the virtual machine's + storage devices will be created; this includes any devices that + explicitly specify a SCSI host bus adapter, as well as any devices + that do not specify a host bus adapter if the guest's preferred + adapter type is SCSI. The type of the SCSI adapter will be a + guest-specific default type. + :type nvme_adapters: :class:`list` of :class:`com.vmware.vcenter.vm.hardware.adapter_client.Nvme.CreateSpec` or ``None`` + :param nvme_adapters: List of NVMe adapters. This attribute was added in vSphere API + 7.0.0.1. + If None, any adapters necessary to connect the virtual machine's + storage devices will be created; this includes any devices that + explicitly specify a NVMe host bus adapter, as well as any devices + that do not specify a host bus adapter if the guest's preferred + adapter type is NVMe. + :type storage_policy: :class:`VM.StoragePolicySpec` or ``None`` + :param storage_policy: The ``VM.StoragePolicySpec`` class contains information about the + storage policy that is to be associated with the virtual machine + home (which contains the configuration and log files). This + attribute was added in vSphere API 6.7. + If None the datastore default storage policy (if applicable) is + applied. Currently a default storage policy is only supported by + object datastores : VVol and vSAN. For non-object datastores, if + None then no storage policy would be associated with the virtual + machine home. + """ + ... + + class Info(VapiStruct): + """ + Document-based info. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _canonical_to_pep_names = ... + def __init__( + self, + guest_os=..., + name=..., + identity=..., + power_state=..., + instant_clone_frozen=..., + hardware=..., + boot=..., + boot_devices=..., + cpu=..., + memory=..., + disks=..., + nics=..., + cdroms=..., + floppies=..., + parallel_ports=..., + serial_ports=..., + sata_adapters=..., + scsi_adapters=..., + nvme_adapters=..., + ) -> None: + """ + :type guest_os: :class:`com.vmware.vcenter.vm_client.GuestOS` + :param guest_os: Guest OS. + :type name: :class:`str` + :param name: Virtual machine name. + :type identity: :class:`com.vmware.vcenter.vm_client.Identity.Info` + :param identity: Identity of the virtual machine. This attribute was added in + vSphere API 6.7.1. + This attribute is optional because it was added in a newer version + than its parent node. + :type power_state: :class:`com.vmware.vcenter.vm_client.Power.State` + :param power_state: Power state of the virtual machine. + :type instant_clone_frozen: :class:`bool` + :param instant_clone_frozen: Indicates whether the virtual machine is frozen for instant clone, + or not. This attribute was added in vSphere API 6.7.1. + This attribute is optional because it was added in a newer version + than its parent node. + :type hardware: :class:`com.vmware.vcenter.vm_client.Hardware.Info` + :param hardware: Virtual hardware version information. + :type boot: :class:`com.vmware.vcenter.vm.hardware_client.Boot.Info` + :param boot: Boot configuration. + :type boot_devices: :class:`list` of :class:`com.vmware.vcenter.vm.hardware.boot_client.Device.Entry` + :param boot_devices: Boot device configuration. If the :class:`list` has no entries, a + server-specific default boot sequence is used. + :type cpu: :class:`com.vmware.vcenter.vm.hardware_client.Cpu.Info` + :param cpu: CPU configuration. + :type memory: :class:`com.vmware.vcenter.vm.hardware_client.Memory.Info` + :param memory: Memory configuration. + :type disks: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Disk.Info` + :param disks: List of disks. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Disk``. When methods return + a value of this class as a return value, the key in the attribute + :class:`dict` will be an identifier for the resource type: + ``com.vmware.vcenter.vm.hardware.Disk``. + :type nics: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Ethernet.Info` + :param nics: List of Ethernet adapters. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Ethernet``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Ethernet``. + :type cdroms: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Cdrom.Info` + :param cdroms: List of CD-ROMs. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Cdrom``. When methods return + a value of this class as a return value, the key in the attribute + :class:`dict` will be an identifier for the resource type: + ``com.vmware.vcenter.vm.hardware.Cdrom``. + :type floppies: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Floppy.Info` + :param floppies: List of floppy drives. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Floppy``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Floppy``. + :type parallel_ports: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Parallel.Info` + :param parallel_ports: List of parallel ports. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ParallelPort``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ParallelPort``. + :type serial_ports: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Serial.Info` + :param serial_ports: List of serial ports. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SerialPort``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SerialPort``. + :type sata_adapters: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware.adapter_client.Sata.Info` + :param sata_adapters: List of SATA adapters. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SataAdapter``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SataAdapter``. + :type scsi_adapters: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware.adapter_client.Scsi.Info` + :param scsi_adapters: List of SCSI adapters. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ScsiAdapter``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ScsiAdapter``. + :type nvme_adapters: :class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware.adapter_client.Nvme.Info` + :param nvme_adapters: List of NVMe adapters. This attribute was added in vSphere API + 7.0.0.1. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.NvmeAdapter``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.NvmeAdapter``. + This attribute is optional because it was added in a newer version + than its parent node. + """ + ... + + class GuestCustomizationSpec(VapiStruct): + """ + The ``VM.GuestCustomizationSpec`` class contains information required to + customize a virtual machine when deploying it. This class was added in + vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, name=...) -> None: + """ + :type name: :class:`str` or ``None`` + :param name: Name of the customization specification. This attribute was added + in vSphere API 7.0.0.0. + If None, no guest customization is performed. + """ + ... + + class DiskCloneSpec(VapiStruct): + """ + Document-based disk clone spec. This class was added in vSphere API + 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, datastore=...) -> None: + """ + :type datastore: :class:`str` or ``None`` + :param datastore: Destination datastore to clone disk. This attribute was added in + vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is currently required. In the future, if this + attribute is None disk will be copied to the datastore specified in + the :attr:`VM.ClonePlacementSpec.datastore` attribute of + :attr:`VM.CloneSpec.placement`. + """ + ... + + class ClonePlacementSpec(VapiStruct): + """ + The ``VM.ClonePlacementSpec`` class contains information used to place a + clone of a virtual machine onto resources within the vCenter inventory. + This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., resource_pool=..., host=..., cluster=..., datastore=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the cloned virtual machine should + be placed. This attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + If attribute is None, the system will use the virtual machine + folder of the source virtual machine. If this results in a conflict + due to other placement parameters, the virtual machine clone + operation will fail. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the cloned virtual machine should be + placed. This attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + If attribute is None, the system will use the resource pool of the + source virtual machine. If this results in a conflict due to other + placement parameters, the virtual machine clone operation will + fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the cloned virtual machine should be placed. + + If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. + + If ``host`` and ``cluster`` are both specified, ``host`` must be a + member of ``cluster``.. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + If this attribute is unset, if ``resourcePool`` is unset, the + cloned virtual machine will use the host of the source virtual + machine. if ``resourcePool`` is set, and the target is a standalone + host, the host is used. if ``resourcePool`` is set, and the target + is a DRS cluster, a host will be picked by DRS. if ``resourcePool`` + is set, and the target is a cluster without DRS, InvalidArgument + will be thrown. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster into which the cloned virtual machine should be placed. + + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. + + If ``cluster`` and ``host`` are both specified, ``host`` must be a + member of ``cluster``.. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + :type datastore: :class:`str` or ``None`` + :param datastore: Datastore on which the cloned virtual machine's configuration state + should be stored. This datastore will also be used for any virtual + disks that are created as part of the virtual machine clone + operation unless individually overridden. This attribute was added + in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + If attribute is None, the system will use the datastore of the + source virtual machine. + """ + ... + + class CloneSpec(VapiStruct): + """ + Document-based clone spec. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + source=..., + name=..., + placement=..., + disks_to_remove=..., + disks_to_update=..., + power_on=..., + guest_customization_spec=..., + ) -> None: + """ + :type source: :class:`str` + :param source: Virtual machine to clone from. This attribute was added in vSphere + API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``VirtualMachine``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``VirtualMachine``. + :type name: :class:`str` + :param name: Virtual machine name. This attribute was added in vSphere API + 7.0.0.0. + :type placement: :class:`VM.ClonePlacementSpec` or ``None`` + :param placement: Virtual machine placement information. This attribute was added in + vSphere API 7.0.0.0. + If this attribute is None, the system will use the values from the + source virtual machine. If specified, each field will be used for + placement. If the fields result in disjoint placement the operation + will fail. If the fields along with the placement values of the + source virtual machine result in disjoint placement the operation + will fail. + :type disks_to_remove: :class:`set` of :class:`str` or ``None`` + :param disks_to_remove: Set of Disks to Remove. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``com.vmware.vcenter.vm.hardware.Disk``. When methods return a + value of this class as a return value, the attribute will contain + identifiers for the resource type: + ``com.vmware.vcenter.vm.hardware.Disk``. + If None, all disks will be copied. If the same identifier is in + :attr:`VM.CloneSpec.disks_to_update` InvalidArgument fault will be + returned. + :type disks_to_update: (:class:`dict` of :class:`str` and :class:`VM.DiskCloneSpec`) or ``None`` + :param disks_to_update: Map of Disks to Update. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Disk``. When methods return + a value of this class as a return value, the key in the attribute + :class:`dict` will be an identifier for the resource type: + ``com.vmware.vcenter.vm.hardware.Disk``. + If None, all disks will copied to the datastore specified in the + :attr:`VM.ClonePlacementSpec.datastore` attribute of + :attr:`VM.CloneSpec.placement`. If the same identifier is in + :attr:`VM.CloneSpec.disks_to_remove` InvalidArgument fault will be + thrown. + :type power_on: :class:`bool` or ``None`` + :param power_on: Attempt to perform a :attr:`VM.CloneSpec.power_on` after clone. + This attribute was added in vSphere API 7.0.0.0. + If None, the virtual machine will not be powered on. + :type guest_customization_spec: :class:`VM.GuestCustomizationSpec` or ``None`` + :param guest_customization_spec: Guest customization spec to apply to the virtual machine after the + virtual machine is deployed. This attribute was added in vSphere + API 7.0.0.0. + If None, the guest operating system is not customized after clone. + """ + ... + + class DiskRelocateSpec(VapiStruct): + """ + Document-based disk relocate spec. This class was added in vSphere API + 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, datastore=...) -> None: + """ + :type datastore: :class:`str` or ``None`` + :param datastore: Destination datastore to relocate disk. This attribute was added in + vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + This attribute is currently required. In the future, if this + attribute is unset, disk will use the datastore specified in + :attr:`VM.RelocatePlacementSpec.datastore` attribute of + :attr:`VM.RelocateSpec.placement`. + """ + ... + + class RelocatePlacementSpec(VapiStruct): + """ + The ``VM.RelocatePlacementSpec`` class contains information used to change + the placement of an existing virtual machine within the vCenter inventory. + This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., resource_pool=..., host=..., cluster=..., datastore=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine should be + placed. This attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + If this attribute is None, the virtual machine will stay in the + current folder. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine should be placed. This + attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + If this attribute is None, the virtual machine will stay in the + current resource pool. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine should be placed. + + If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. + + If ``host`` and ``cluster`` are both specified, ``host`` must be a + member of ``cluster``.. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + If this attribute is unset, if ``resourcePool`` is unset, the + virtual machine will remain on the current host. if + ``resourcePool`` is set, and the target is a standalone host, the + host is used. if ``resourcePool`` is set, and the target is a DRS + cluster, a host will be picked by DRS. if ``resourcePool`` is set, + and the target is a cluster without DRS, InvalidArgument will be + thrown. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster into which the virtual machine should be placed. + + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. + + If ``cluster`` and ``host`` are both specified, ``host`` must be a + member of ``cluster``.. This attribute was added in vSphere API + 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + :type datastore: :class:`str` or ``None`` + :param datastore: Datastore on which the virtual machine's configuration state should + be stored. This datastore will also be used for any virtual disks + that are associated with the virtual machine, unless individually + overridden. This attribute was added in vSphere API 7.0.0.0. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + If this attribute is None, the virtual machine will remain on the + current datastore. + """ + ... + + class RelocateSpec(VapiStruct): + """ + Document-based relocate spec. This class was added in vSphere API 7.0.0.0. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, placement=..., disks=...) -> None: + """ + :type placement: :class:`VM.RelocatePlacementSpec` or ``None`` + :param placement: Virtual machine placement information. This attribute was added in + vSphere API 7.0.0.0. + If this attribute is None, the system will use the values from the + source virtual machine. If specified, each field will be used for + placement. If the fields result in disjoint placement the operation + will fail. If the fields along with the other existing placement of + the virtual machine result in disjoint placement the operation will + fail. + :type disks: (:class:`dict` of :class:`str` and :class:`VM.DiskRelocateSpec`) or ``None`` + :param disks: Individual disk relocation map. This attribute was added in vSphere + API 7.0.0.0. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Disk``. When methods return + a value of this class as a return value, the key in the attribute + :class:`dict` will be an identifier for the resource type: + ``com.vmware.vcenter.vm.hardware.Disk``. + If None, all disks will migrate to the datastore specified in the + :attr:`VM.RelocatePlacementSpec.datastore` attribute of + :attr:`VM.RelocateSpec.placement`. + """ + ... + + class InstantClonePlacementSpec(VapiStruct): + """ + The ``VM.InstantClonePlacementSpec`` class contains information used to + place an InstantClone of a virtual machine onto resources within the + vCenter inventory. This class was added in vSphere API 6.7.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__(self, folder=..., resource_pool=..., datastore=...) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the InstantCloned virtual machine + should be placed. This attribute was added in vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + If attribute is None, the system will use the virtual machine + folder of the source virtual machine. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the InstantCloned virtual machine should + be placed. This attribute was added in vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + If attribute is None, the system will use the resource pool of the + source virtual machine. + :type datastore: :class:`str` or ``None`` + :param datastore: Datastore on which the InstantCloned virtual machine's + configuration state should be stored. This datastore will also be + used for any virtual disks that are created as part of the virtual + machine InstantClone operation. This attribute was added in vSphere + API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + If attribute is None, the system will use the datastore of the + source virtual machine. + """ + ... + + class InstantCloneSpec(VapiStruct): + """ + Document-based InstantClone spec. This class was added in vSphere API + 6.7.1. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + source=..., + name=..., + placement=..., + nics_to_update=..., + disconnect_all_nics=..., + parallel_ports_to_update=..., + serial_ports_to_update=..., + bios_uuid=..., + ) -> None: + """ + :type source: :class:`str` + :param source: Virtual machine to InstantClone from. This attribute was added in + vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``VirtualMachine``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``VirtualMachine``. + :type name: :class:`str` + :param name: Name of the new virtual machine. This attribute was added in + vSphere API 6.7.1. + :type placement: :class:`VM.InstantClonePlacementSpec` or ``None`` + :param placement: Virtual machine placement information. This attribute was added in + vSphere API 6.7.1. + If this attribute is None, the system will use the values from the + source virtual machine. If specified, each field will be used for + placement. If the fields result in disjoint placement the operation + will fail. If the fields along with the placement values of the + source virtual machine result in disjoint placement the operation + will fail. + :type nics_to_update: (:class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Ethernet.UpdateSpec`) or ``None`` + :param nics_to_update: Map of NICs to update. This attribute was added in vSphere API + 6.7.1. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Ethernet``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.Ethernet``. + If None, no NICs will be updated. + :type disconnect_all_nics: :class:`bool` or ``None`` + :param disconnect_all_nics: Indicates whether all NICs on the destination virtual machine + should be disconnected from the newtwork. This attribute was added + in vSphere API 6.7.1. + If None, connection status of all NICs on the destination virtual + machine will be the same as on the source virtual machine. + :type parallel_ports_to_update: (:class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Parallel.UpdateSpec`) or ``None`` + :param parallel_ports_to_update: Map of parallel ports to Update. This attribute was added in + vSphere API 6.7.1. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ParallelPort``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.ParallelPort``. + If None, no parallel ports will be updated. + :type serial_ports_to_update: (:class:`dict` of :class:`str` and :class:`com.vmware.vcenter.vm.hardware_client.Serial.UpdateSpec`) or ``None`` + :param serial_ports_to_update: Map of serial ports to Update. This attribute was added in vSphere + API 6.7.1. + When clients pass a value of this class as a parameter, the key in + the attribute :class:`dict` must be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SerialPort``. When methods + return a value of this class as a return value, the key in the + attribute :class:`dict` will be an identifier for the resource + type: ``com.vmware.vcenter.vm.hardware.SerialPort``. + If None, no serial ports will be updated. + :type bios_uuid: :class:`str` or ``None`` + :param bios_uuid: 128-bit SMBIOS UUID of a virtual machine represented as a + hexadecimal string in "12345678-abcd-1234-cdef-123456789abc" + format. This attribute was added in vSphere API 6.7.1. + If None, will be generated. + """ + ... + + class FilterSpec(VapiStruct): + """ + The ``VM.FilterSpec`` class contains attributes used to filter the results + when listing virtual machines (see :func:`VM.list`). If multiple attributes + are specified, only virtual machines matching all of the attributes match + the filter. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, + vms=..., + names=..., + folders=..., + datacenters=..., + hosts=..., + clusters=..., + resource_pools=..., + power_states=..., + ) -> None: + """ + :type vms: :class:`set` of :class:`str` or ``None`` + :param vms: Identifiers of virtual machines that can match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``VirtualMachine``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``VirtualMachine``. + If None or empty, virtual machines with any identifier match the + filter. + :type names: :class:`set` of :class:`str` or ``None`` + :param names: Names that virtual machines must have to match the filter (see + :attr:`VM.Info.name`). + If None or empty, virtual machines with any name match the filter. + :type folders: :class:`set` of :class:`str` or ``None`` + :param folders: Folders that must contain the virtual machine for the virtual + machine to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Folder``. When methods return a value of this class as a return + value, the attribute will contain identifiers for the resource + type: ``Folder``. + If None or empty, virtual machines in any folder match the filter. + :type datacenters: :class:`set` of :class:`str` or ``None`` + :param datacenters: Datacenters that must contain the virtual machine for the virtual + machine to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``Datacenter``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``Datacenter``. + If None or empty, virtual machines in any datacenter match the + filter. + :type hosts: :class:`set` of :class:`str` or ``None`` + :param hosts: Hosts that must contain the virtual machine for the virtual machine + to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``HostSystem``. + If None or empty, virtual machines on any host match the filter. + :type clusters: :class:`set` of :class:`str` or ``None`` + :param clusters: Clusters that must contain the virtual machine for the virtual + machine to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will contain identifiers for + the resource type: ``ClusterComputeResource``. + If None or empty, virtual machines in any cluster match the filter. + :type resource_pools: :class:`set` of :class:`str` or ``None`` + :param resource_pools: Resource pools that must contain the virtual machine for the + virtual machine to match the filter. + When clients pass a value of this class as a parameter, the + attribute must contain identifiers for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will contain identifiers for the + resource type: ``ResourcePool``. + If None or empty, virtual machines in any resource pool match the + filter. + :type power_states: :class:`set` of :class:`com.vmware.vcenter.vm_client.Power.State` or ``None`` + :param power_states: Power states that a virtual machine must be in to match the filter + (see :attr:`com.vmware.vcenter.vm_client.Power.Info.state`. + If None or empty, virtual machines in any power state match the + filter. + """ + ... + + class Summary(VapiStruct): + """ + The ``VM.Summary`` class contains commonly used information about a virtual + machine. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _canonical_to_pep_names = ... + def __init__( + self, vm=..., name=..., power_state=..., cpu_count=..., memory_size_mib=... + ) -> None: + """ + :type vm: :class:`str` + :param vm: Identifier of the virtual machine. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``VirtualMachine``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``VirtualMachine``. + :type name: :class:`str` + :param name: Name of the Virtual machine. + :type power_state: :class:`com.vmware.vcenter.vm_client.Power.State` + :param power_state: Power state of the virtual machine. + :type cpu_count: :class:`long` or ``None`` + :param cpu_count: Number of CPU cores. + This attribute will be None if the virtual machine configuration is + not available. For example, the configuration information would be + unavailable if the server is unable to access the virtual machine + files on disk, and is often also unavailable during the intial + phases of virtual machine creation. + :type memory_size_mib: :class:`long` or ``None`` + :param memory_size_mib: Memory size in mebibytes. + This attribute will be None if the virtual machine configuration is + not available. For example, the configuration information would be + unavailable if the server is unable to access the virtual machine + files on disk, and is often also unavailable during the intial + phases of virtual machine creation. + """ + ... + + class RegisterPlacementSpec(VapiStruct): + """ + The ``VM.RegisterPlacementSpec`` class contains information used to place a + virtual machine, created from existing virtual machine files on storage, + onto resources within the vCenter inventory. This class was added in + vSphere API 6.8.7. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, folder=..., resource_pool=..., host=..., cluster=... + ) -> None: + """ + :type folder: :class:`str` or ``None`` + :param folder: Virtual machine folder into which the virtual machine should be + placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: ``Folder``. + When methods return a value of this class as a return value, the + attribute will be an identifier for the resource type: ``Folder``. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose a suitable + folder for the virtual machine; if a folder cannot be chosen, the + virtual machine creation operation will fail. + :type resource_pool: :class:`str` or ``None`` + :param resource_pool: Resource pool into which the virtual machine should be placed. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ResourcePool``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``ResourcePool``. + This attribute is currently required if both ``host`` and + ``cluster`` are None. In the future, if this attribute is None, the + system will attempt to choose a suitable resource pool for the + virtual machine; if a resource pool cannot be chosen, the virtual + machine creation operation will fail. + :type host: :class:`str` or ``None`` + :param host: Host onto which the virtual machine should be placed. + + If ``host`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``host``. + + If ``host`` and ``cluster`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``HostSystem``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``HostSystem``. + This attribute may be None if ``resourcePool`` or ``cluster`` is + specified. If None, the system will attempt to choose a suitable + host for the virtual machine; if a host cannot be chosen, the + virtual machine creation operation will fail. + :type cluster: :class:`str` or ``None`` + :param cluster: Cluster into which the virtual machine should be placed. + + If ``cluster`` and ``resourcePool`` are both specified, + ``resourcePool`` must belong to ``cluster``. + + If ``cluster`` and ``host`` are both specified, ``host`` must be a + member of ``cluster``. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``ClusterComputeResource``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``ClusterComputeResource``. + If ``resourcePool`` or ``host`` is specified, it is recommended + that this attribute be None. + """ + ... + + class RegisterSpec(VapiStruct): + """ + The ``VM.RegisterSpec`` class contains information used to create a virtual + machine from existing virtual machine files on storage. + + The location of the virtual machine files on storage must be specified by + providing either :attr:`VM.RegisterSpec.datastore` and + :attr:`VM.RegisterSpec.path` or by providing + :attr:`VM.RegisterSpec.datastore_path`. If + :attr:`VM.RegisterSpec.datastore` and :attr:`VM.RegisterSpec.path` are + :class:`set`, :attr:`VM.RegisterSpec.datastore_path` must be None, and if + :attr:`VM.RegisterSpec.datastore_path` is :class:`set`, + :attr:`VM.RegisterSpec.datastore` and :attr:`VM.RegisterSpec.path` must be + None.. This class was added in vSphere API 6.8.7. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + def __init__( + self, datastore=..., path=..., datastore_path=..., name=..., placement=... + ) -> None: + """ + :type datastore: :class:`str` or ``None`` + :param datastore: Identifier of the datastore on which the virtual machine's + configuration state is stored. This attribute was added in vSphere + API 6.8.7. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``Datastore``. When methods return a value of this class as a + return value, the attribute will be an identifier for the resource + type: ``Datastore``. + If None, :attr:`VM.RegisterSpec.path` must also be None and + :attr:`VM.RegisterSpec.datastore_path` must be :class:`set`. + :type path: :class:`str` or ``None`` + :param path: Path to the virtual machine's configuration file on the datastore + corresponding to {\\\\@link #datastore). This attribute was added + in vSphere API 6.8.7. + If None, :attr:`VM.RegisterSpec.datastore` must also be None and + :attr:`VM.RegisterSpec.datastore_path` must be :class:`set`. + :type datastore_path: :class:`str` or ``None`` + :param datastore_path: Datastore path for the virtual machine's configuration file in the + format "[datastore name] path". For example "[storage1] + Test-VM/Test-VM.vmx". This attribute was added in vSphere API + 6.8.7. + If None, both :attr:`VM.RegisterSpec.datastore` and + :attr:`VM.RegisterSpec.path` must be :class:`set`. + :type name: :class:`str` or ``None`` + :param name: Virtual machine name. This attribute was added in vSphere API + 6.8.7. + If None, the display name from the virtual machine's configuration + file will be used. + :type placement: :class:`VM.RegisterPlacementSpec` or ``None`` + :param placement: Virtual machine placement information. This attribute was added in + vSphere API 6.8.7. + This attribute is currently required. In the future, if this + attribute is None, the system will attempt to choose suitable + resources on which to place the virtual machine. + """ + ... + + def create(self, spec): + """ + Creates a virtual machine. + + :type spec: :class:`VM.CreateSpec` + :param spec: Virtual machine specification. + :rtype: :class:`str` + :return: ID of newly-created virtual machine. + The return value will be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a virtual machine with the specified name already exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec could not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInUse` + if any of the specified storage addresses (eg. IDE, SATA, SCSI, + NVMe) result in a storage address conflict. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to create the virtual machine could + not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if ``guestOS`` is not supported for the requested virtual hardware + version and spec includes None attributes that default to + guest-specific values. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``Folder`` referenced by the attribute + :attr:`VM.InventoryPlacementSpec.folder` requires + ``VirtualMachine.Inventory.Create``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.ComputePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.StoragePlacementSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Network`` referenced by the attribute + :attr:`com.vmware.vcenter.vm.hardware_client.Ethernet.BackingSpec.network` + requires ``Network.Assign``. + """ + ... + + def clone(self, spec): + """ + Creates a virtual machine from an existing virtual machine. + + . This method was added in vSphere API 7.0.0.0. + + :type spec: :class:`VM.CloneSpec` + :param spec: Virtual machine clone specification. + :rtype: :class:`str` + :return: ID of newly-created virtual machine. + The return value will be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a virtual machine with the specified name already exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec could not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to clone the virtual machine could + not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.DiskCloneSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Folder`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.folder` requires + ``VirtualMachine.Inventory.CreateFromExisting``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + * The resource ``VirtualMachine`` referenced by the attribute + :attr:`VM.CloneSpec.source` requires + ``VirtualMachine.Provisioning.Clone``. + """ + ... + + def clone_task(self, spec): # -> Task: + """ + Creates a virtual machine from an existing virtual machine. + + . This method was added in vSphere API 7.0.0.0. + + :type spec: :class:`VM.CloneSpec` + :param spec: Virtual machine clone specification. + :rtype: :class: `vmware.vapi.stdlib.client.task.Task` + :return: Task instance + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a virtual machine with the specified name already exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec could not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to clone the virtual machine could + not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.DiskCloneSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Folder`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.folder` requires + ``VirtualMachine.Inventory.CreateFromExisting``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.ClonePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + * The resource ``VirtualMachine`` referenced by the attribute + :attr:`VM.CloneSpec.source` requires + ``VirtualMachine.Provisioning.Clone``. + """ + ... + + def relocate(self, vm, spec): + """ + Relocates a virtual machine based on the specification. The parts of + the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, + CLUSTER and DATASTORE of home of the virtual machine and disks. + + . This method was added in vSphere API 7.0.0.0. + + :type vm: :class:`str` + :param vm: Existing Virtual machine to relocate. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type spec: :class:`VM.RelocateSpec` + :param spec: Relocate specification. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec or the given "vm" could + not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``Resource.ColdMigrate``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.RelocatePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + """ + ... + + def relocate_task(self, vm, spec): # -> Task: + """ + Relocates a virtual machine based on the specification. The parts of + the virtual machine that can move are: FOLDER, RESOURCE_POOL, HOST, + CLUSTER and DATASTORE of home of the virtual machine and disks. + + . This method was added in vSphere API 7.0.0.0. + + :type vm: :class:`str` + :param vm: Existing Virtual machine to relocate. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :type spec: :class:`VM.RelocateSpec` + :param spec: Relocate specification. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec or the given "vm" could + not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``Resource.ColdMigrate``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.RelocatePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + """ + ... + + def instant_clone(self, spec): + """ + Create an instant clone of an existing virtual machine. This method was + added in vSphere API 6.7.1. + + :type spec: :class:`VM.InstantCloneSpec` + :param spec: Virtual machine InstantCloneSpec. + :rtype: :class:`str` + :return: ID of newly-created virtual machine. + The return value will be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a virtual machine with the specified name already exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec could not be found + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to create an instant clone could not + be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the attribute + :attr:`VM.InstantCloneSpec.source` requires + ``VirtualMachine.Provisioning.Clone`` and + ``VirtualMachine.Inventory.CreateFromExisting``. + * The resource ``Folder`` referenced by the attribute + :attr:`VM.InstantClonePlacementSpec.folder` requires + ``VirtualMachine.Interact.PowerOn``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.InstantClonePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.InstantClonePlacementSpec.datastore` requires + ``Datastore.AllocateSpace``. + * The resource ``Network`` referenced by the attribute + :attr:`com.vmware.vcenter.vm.hardware_client.Ethernet.BackingSpec.network` + requires ``Network.Assign``. + """ + ... + + def get(self, vm): + """ + Returns information about a virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :rtype: :class:`VM.Info` + :return: Information about the specified virtual machine. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``System.Read``. + """ + ... + + def delete(self, vm): + """ + Deletes a virtual machine. + + :type vm: :class:`str` + :param vm: Virtual machine identifier. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is running (powered on). + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if the virtual machine is not found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is busy performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if the virtual machine's configuration state cannot be accessed. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Inventory.Delete``. + """ + ... + + def list(self, filter=...): + """ + Returns information about at most 4000 visible (subject to permission + checks) virtual machines in vCenter matching the + :class:`VM.FilterSpec`. + + :type filter: :class:`VM.FilterSpec` or ``None`` + :param filter: Specification of matching virtual machines for which information + should be returned. + If None, the behavior is equivalent to a :class:`VM.FilterSpec` + with all attributes None which means all virtual machines match the + filter. + :rtype: :class:`list` of :class:`VM.Summary` + :return: Commonly used information about the virtual machines matching the + :class:`VM.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if the :attr:`VM.FilterSpec.power_states` attribute contains a + value that is not supported by the server. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if more than 4000 virtual machines match the + :class:`VM.FilterSpec`. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + """ + ... + + def register(self, spec): + """ + Creates a virtual machine from existing virtual machine files on + storage. This method was added in vSphere API 6.8.7. + + :type spec: :class:`VM.RegisterSpec` + :param spec: Specification of the location of the virtual machine files and the + placement of the new virtual machine. + :rtype: :class:`str` + :return: Identifier of the newly-created virtual machine. + The return value will be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.AlreadyExists` + if a virtual machine with the specified name already exists or if a + virtual machine using the specified virtual machine files already + exists. + :raise: :class:`com.vmware.vapi.std.errors_client.Error` + if the system reports an error while responding to the request. + :raise: :class:`com.vmware.vapi.std.errors_client.InvalidArgument` + if any of the specified parameters are invalid. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if any of the resources specified in spec could not be found. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceInaccessible` + if a specified resource (eg. host) is not accessible. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.UnableToAllocateResource` + if any of the resources needed to register the virtual machine + could not be allocated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user cannot be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``Datastore`` referenced by the attribute + :attr:`VM.RegisterSpec.datastore` requires ``System.Read``. + * The resource ``Folder`` referenced by the attribute + :attr:`VM.InventoryPlacementSpec.folder` requires + ``VirtualMachine.Inventory.Register``. + * The resource ``ResourcePool`` referenced by the attribute + :attr:`VM.ComputePlacementSpec.resource_pool` requires + ``Resource.AssignVMToPool``. + """ + ... + + def unregister(self, vm): + """ + Removes the virtual machine corresponding to ``vm`` from the vCenter + inventory without removing any of the virtual machine's files from + storage. All high-level information stored with the management server + (ESXi or vCenter) is removed, including information such as statistics, + resource pool association, permissions, and alarms. This method was + added in vSphere API 6.8.7. + + :type vm: :class:`str` + :param vm: Identifier of the virtual machine to be unregistered. + The parameter must be an identifier for the resource type: + ``VirtualMachine``. + :raise: :class:`com.vmware.vapi.std.errors_client.NotAllowedInCurrentState` + if the virtual machine is running (powered on). + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if there is no virtual machine associated with ``vm`` in the + system. + :raise: :class:`com.vmware.vapi.std.errors_client.ResourceBusy` + if the virtual machine is busy performing another operation. + :raise: :class:`com.vmware.vapi.std.errors_client.ServiceUnavailable` + if the system is unable to communicate with a service to complete + the request. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the user can not be authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if the user doesn't have the required privileges. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthorized` + if you do not have all of the privileges described as follows: + + * The resource ``VirtualMachine`` referenced by the parameter + ``vm`` requires ``VirtualMachine.Inventory.Unregister``. + """ + ... + +class Deployment(VapiInterface): + """ + The ``Deployment`` class provides methods to get the status of the vCenter + appliance deployment. This class was added in vSphere API 6.7. + """ + + _VAPI_SERVICE_ID = ... + def __init__(self, config) -> None: + """ + :type config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param config: Configuration to be used for creating the stub. + """ + ... + + class Task(VapiStruct): + """ + The ``Deployment.Task`` class contains attributes to describe a particular + deployment task. This class was added in vSphere API 6.7. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + progress=..., + result=..., + description=..., + service=..., + operation=..., + parent=..., + target=..., + status=..., + cancelable=..., + error=..., + start_time=..., + end_time=..., + user=..., + ) -> None: + """ + :type progress: :class:`com.vmware.cis.task_client.Progress` + :param progress: The progress info of this deployment task. This attribute was added + in vSphere API 6.7. + This attribute is optional and it is only relevant when the value + of ``CommonInfo#status`` is one of + :attr:`com.vmware.cis.task_client.Status.RUNNING`, + :attr:`com.vmware.cis.task_client.Status.BLOCKED`, + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED`, or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type result: :class:`com.vmware.vcenter.deployment_client.Notifications` or ``None`` + :param result: Result of the task. This attribute was added in vSphere API 6.7. + This attribute will be None if result is not available at the + current step of the task. + :type description: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param description: Description of the operation associated with the task. + :type service: :class:`str` + :param service: Identifier of the service containing the operation. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vapi.service``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.vapi.service``. + :type operation: :class:`str` + :param operation: Identifier of the operation associated with the task. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vapi.operation``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.vapi.operation``. + :type parent: :class:`str` or ``None`` + :param parent: Parent of the current task. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.cis.task``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``com.vmware.cis.task``. + This attribute will be None if the task has no parent. + :type target: :class:`com.vmware.vapi.std_client.DynamicID` or ``None`` + :param target: Identifier of the target created by the operation or an existing + one the operation performed on. + This attribute will be None if the operation has no target or + multiple targets. + :type status: :class:`com.vmware.cis.task_client.Status` + :param status: Status of the operation associated with the task. + :type cancelable: :class:`bool` + :param cancelable: Flag to indicate whether or not the operation can be cancelled. The + value may change as the operation progresses. + :type error: :class:`Exception` or ``None`` + :param error: Description of the error if the operation status is "FAILED". + If None the description of why the operation failed will be + included in the result of the operation (see + :attr:`com.vmware.cis.task_client.Info.result`). + :type start_time: :class:`datetime.datetime` + :param start_time: Time when the operation is started. + This attribute is optional and it is only relevant when the value + of ``status`` is one of + :attr:`com.vmware.cis.task_client.Status.RUNNING`, + :attr:`com.vmware.cis.task_client.Status.BLOCKED`, + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED`, or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type end_time: :class:`datetime.datetime` + :param end_time: Time when the operation is completed. + This attribute is optional and it is only relevant when the value + of ``status`` is one of + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED` or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type user: :class:`str` or ``None`` + :param user: Name of the user who performed the operation. + This attribute will be None if the operation is performed by the + system. + """ + ... + + class Info(VapiStruct): + """ + The ``Deployment.Info`` class contains attributes to describe the state of + the appliance. This class was added in vSphere API 6.7. + + .. tip:: + The arguments are used to initialize data attributes with the same + names. + """ + + _validator_list = ... + def __init__( + self, + state=..., + progress=..., + subtask_order=..., + subtasks=..., + description=..., + service=..., + operation=..., + parent=..., + target=..., + status=..., + cancelable=..., + error=..., + start_time=..., + end_time=..., + user=..., + ) -> None: + """ + :type state: :class:`com.vmware.vcenter.deployment_client.ApplianceState` + :param state: State of the vCenter Server Appliance. This attribute was added in + vSphere API 6.7. + :type progress: :class:`com.vmware.cis.task_client.Progress` + :param progress: The progress info of the current appliance status. This attribute + was added in vSphere API 6.7. + This attribute is optional and it is only relevant when the value + of ``CommonInfo#status`` is one of + :attr:`com.vmware.cis.task_client.Status.RUNNING`, + :attr:`com.vmware.cis.task_client.Status.BLOCKED`, + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED`, or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type subtask_order: :class:`list` of :class:`str` or ``None`` + :param subtask_order: The ordered list of subtasks for this deployment operation. This + attribute was added in vSphere API 6.7. + Only :class:`set` when the appliance state is RUNNING_IN_PROGRESS, + FAILED, CANCELLED and SUCCEEDED. + :type subtasks: (:class:`dict` of :class:`str` and :class:`Deployment.Task`) or ``None`` + :param subtasks: The map of the deployment subtasks and their status infomation. + This attribute was added in vSphere API 6.7. + Only :class:`set` when the appliance state is RUNNING_IN_PROGRESS, + FAILED, CANCELLED and SUCCEEDED. + :type description: :class:`com.vmware.vapi.std_client.LocalizableMessage` + :param description: Description of the operation associated with the task. + :type service: :class:`str` + :param service: Identifier of the service containing the operation. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vapi.service``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.vapi.service``. + :type operation: :class:`str` + :param operation: Identifier of the operation associated with the task. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.vapi.operation``. When methods return a value of this + class as a return value, the attribute will be an identifier for + the resource type: ``com.vmware.vapi.operation``. + :type parent: :class:`str` or ``None`` + :param parent: Parent of the current task. + When clients pass a value of this class as a parameter, the + attribute must be an identifier for the resource type: + ``com.vmware.cis.task``. When methods return a value of this class + as a return value, the attribute will be an identifier for the + resource type: ``com.vmware.cis.task``. + This attribute will be None if the task has no parent. + :type target: :class:`com.vmware.vapi.std_client.DynamicID` or ``None`` + :param target: Identifier of the target created by the operation or an existing + one the operation performed on. + This attribute will be None if the operation has no target or + multiple targets. + :type status: :class:`com.vmware.cis.task_client.Status` + :param status: Status of the operation associated with the task. + :type cancelable: :class:`bool` + :param cancelable: Flag to indicate whether or not the operation can be cancelled. The + value may change as the operation progresses. + :type error: :class:`Exception` or ``None`` + :param error: Description of the error if the operation status is "FAILED". + If None the description of why the operation failed will be + included in the result of the operation (see + :attr:`com.vmware.cis.task_client.Info.result`). + :type start_time: :class:`datetime.datetime` + :param start_time: Time when the operation is started. + This attribute is optional and it is only relevant when the value + of ``status`` is one of + :attr:`com.vmware.cis.task_client.Status.RUNNING`, + :attr:`com.vmware.cis.task_client.Status.BLOCKED`, + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED`, or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type end_time: :class:`datetime.datetime` + :param end_time: Time when the operation is completed. + This attribute is optional and it is only relevant when the value + of ``status`` is one of + :attr:`com.vmware.cis.task_client.Status.SUCCEEDED` or + :attr:`com.vmware.cis.task_client.Status.FAILED`. + :type user: :class:`str` or ``None`` + :param user: Name of the user who performed the operation. + This attribute will be None if the operation is performed by the + system. + """ + ... + + def get(self): + """ + Get the current status of the appliance deployment. This method was + added in vSphere API 6.7. + + + :rtype: :class:`Deployment.Info` + :return: Info structure containing the status information about the + appliance. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the caller is not authenticated. + :raise: :class:`com.vmware.vapi.std.errors_client.NotFound` + if appliance state cannot be determined. + """ + ... + + def rollback(self): + """ + Rollback a failed appliance so it can be configured once again. This + method was added in vSphere API 6.7. + + + :raise: :class:`com.vmware.vapi.std.errors_client.Unsupported` + if the appliance is not in FAILED state. + :raise: :class:`com.vmware.vapi.std.errors_client.Unauthenticated` + if the caller is not authenticated. + """ + ... + +class _ClusterStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _DatacenterStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _DatastoreStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _FolderStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _HostStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _NetworkStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _ResourcePoolStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _VMStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class _DeploymentStub(ApiInterfaceStub): + def __init__(self, config) -> None: ... + +class StubFactory(StubFactoryBase): + _attrs = ... diff --git a/typings/vmware/vapi/bindings/__init__.pyi b/typings/vmware/vapi/bindings/__init__.pyi new file mode 100644 index 00000000..6b1e0190 --- /dev/null +++ b/typings/vmware/vapi/bindings/__init__.pyi @@ -0,0 +1,5 @@ +""" +This type stub file was generated by pyright. +""" + +import pkg_resources diff --git a/typings/vmware/vapi/bindings/common.pyi b/typings/vmware/vapi/bindings/common.pyi new file mode 100644 index 00000000..5697be07 --- /dev/null +++ b/typings/vmware/vapi/bindings/common.pyi @@ -0,0 +1,42 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Bindings common module that contains common code for skeletons and stubs +""" +__author__ = ... +__copyright__ = ... + +def raise_core_exception(msg_list): # -> None: + """ + Create and raise a CoreException from a list of messages + + :type msg_list: :class:`vmware.vapi.message.Message` + :param msg_list: List of messages + + :raise: CoreException if msg list is not empty + """ + ... + +class NameToTypeResolver: + """ + Helper class that resolves a fully qualified canonical type name to a type + descriptor. The type name can be a structure name or an error name. + """ + + def __init__(self, type_map) -> None: + """ + Initialize NameToTypeResolver + + :type type_map: :class:`dict` of :class:`str` and :class:`VapiStruct` + :param type_map: Type map that contains the canonical names and the + references to the binding classes for these types. + """ + ... + + def resolve(self, name): + """ + Type name to be resolved + """ + ... diff --git a/typings/vmware/vapi/bindings/converter.pyi b/typings/vmware/vapi/bindings/converter.pyi new file mode 100644 index 00000000..b3fc9ee3 --- /dev/null +++ b/typings/vmware/vapi/bindings/converter.pyi @@ -0,0 +1,674 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.type import BindingTypeVisitor + +""" +Type converter to/from vAPI runtime data model to Python native data model +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class RestConverter: + """ + Constants for different REST converter modes + """ + + VAPI_REST = ... + SWAGGER_REST = ... + +class PythonToVapiJsonRpcDataValueVisitor(BindingTypeVisitor): + """ + Visitor to convert from Python native value to vAPI JSON-RPC compatible + DataValue + """ + + def __init__(self, value) -> None: + """ + Initialize PythonToVapiJsonRpcDataValueVisitor + + :type value: :class:`object` + :param value: Native python value + """ + ... + + def get_out_value(self): # -> DataValue | StructValue | None: + """ + Returns the vAPI DataValue converted from the Python native value + + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: vAPI DataValue + """ + ... + + def visit_primitive(self, typ): # -> None: + """ + Visit a primitive type python value + + :type typ: :class:`vmware.vapi.bindings.type.BindingType` + :param typ: Binding type of the value + """ + ... + + def visit_void(self, typ): # -> None: + """ + Visit a void value (i.e. None) + + :type typ: :class:`vmware.vapi.bindings.type.VoidType` + :param typ: Binding type of the value + """ + ... + + def visit_integer(self, typ): # -> None: + """ + Visit an integer value + + :type typ: :class:`vmware.vapi.bindings.type.IntegerType` + :param typ: Binding type of the value + """ + ... + + def visit_double(self, typ): # -> None: + """ + Visit an double value + + :type typ: :class:`vmware.vapi.bindings.type.DoubleType` + :param typ: Binding type of the value + """ + ... + + def visit_string(self, typ): # -> None: + """ + Visit an string value + + :type typ: :class:`vmware.vapi.bindings.type.StringType` + :param typ: Binding type of the value + """ + ... + + def visit_secret(self, typ): # -> None: + """ + Visit an secret value + + :type typ: :class:`vmware.vapi.bindings.type.SecretType` + :param typ: Binding type of the value + """ + ... + + def visit_boolean(self, typ): # -> None: + """ + Visit an boolean value + + :type typ: :class:`vmware.vapi.bindings.type.BooleanType` + :param typ: Binding type of the value + """ + ... + + def visit_id(self, typ): # -> None: + """ + Visit an id value + + :type typ: :class:`vmware.vapi.bindings.type.IdType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): # -> None: + """ + Visit an blob value + + :type typ: :class:`vmware.vapi.bindings.type.BlobType` + :param typ: Binding type of the value + """ + ... + + def visit_opaque(self, typ): # -> None: + """ + Visit an opaque value. Don't do any conversion. + + :type typ: :class:`vmware.vapi.bindings.type.OpaqueType` + :param typ: Binding type of the value + """ + ... + + def visit_list(self, typ): # -> None: + """ + Visit a list value + + :type typ: :class:`vmware.vapi.bindings.type.ListType` + :param typ: Binding type of the value + """ + ... + + def visit_set(self, typ): # -> None: + """ + Visit a python set + + :type typ: :class:`vmware.vapi.bindings.type.SetType` + :param typ: Binding type of the value + """ + ... + + def visit_map(self, typ): # -> None: + """ + Visit a python dict + + :type typ: :class:`vmware.vapi.bindings.type.MapType` + :param typ: Binding type of the value + """ + ... + + def visit_struct(self, typ): # -> None: + """ + Visit a struct value + + :type typ: :class:`vmware.vapi.bindings.type.StructType` + :param typ: Binding type of the value + """ + ... + + def visit_error(self, typ): # -> None: + """ + Visit an error value + + :type typ: :class:`vmware.vapi.bindings.type.ErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): # -> None: + """ + Visit any struct value + + :type typ: :class:`vmware.vapi.bindings.type.DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_any_error(self, typ): # -> None: + """ + Visit any error value + + :type typ: :class:`vmware.vapi.bindings.type.AnyErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_optional(self, typ): # -> None: + """ + Visit an optional value + + :type typ: :class:`vmware.vapi.bindings.type.OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_date_time(self, typ): # -> None: + """ + Visit a datetime value + + :type typ: :class:`vmware.vapi.bindings.type.DateTimeType` + :param typ: Binding type of the value + """ + ... + + def visit_uri(self, typ): # -> None: + """ + Visit an URI value + + :type typ: :class:`vmware.vapi.bindings.type.UriType` + :param typ: Binding type of the value + """ + ... + + def visit_reference(self, typ): # -> None: + """ + Visit a reference type + + :type typ: :class:`vmware.vapi.bindings.type.ReferenceType` + :param typ: Binding type of the value + """ + ... + + def visit_enum(self, typ): # -> None: + """ + Visit a enum type python value + + :type typ: :class:`vmware.vapi.bindings.type.EnumType` + :param typ: Binding type of the value + """ + ... + +class VapiJsonRpcDataValueToPythonVisitor(BindingTypeVisitor): + """ + Visitor to convert from vAPI JSON-RPC compatible DataValue to Python native + value + """ + + def __init__(self, value, resolver) -> None: + """ + Initialize VapiJsonRpcDataValueToPythonVisitor + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: vAPI DataValue to be converted + :type resolver: :class:`vmware.vapi.bindings.common.NameToTypeResolver` + or ``None`` + :param resolver: Type resolver + """ + ... + + def get_out_value( + self, + ): # -> str | Any | StructValue | list[Any] | set[Any] | VapiStruct | UnresolvedError | datetime | Enum | dict[Any, Any] | None: + """ + Returns the Python native value converted from the vAPI DataValue + + :rtype: :class:`object` + :return: Native python value + """ + ... + + def visit_primitive(self, typ): # -> None: + """ + Visit one of the primitive DataValues + + :type typ: :class:`vmware.vapi.bindings.type.BindingType` + :param typ: Binding type of the value + """ + ... + + def visit_void(self, typ): # -> None: + """ + Since VoidValue does not have any value, just return None + + :type typ: :class:`vmware.vapi.bindings.type.VoidType` + :param typ: Binding type of the value + """ + ... + + def visit_string(self, typ): # -> None: + """ + Visit StringValue + + :type typ: :class:`vmware.vapi.bindings.type.StringType` + :param typ: Binding type of the value + """ + ... + + def visit_integer(self, typ): # -> None: + """ + Visit IntegerValue + + :type typ: :class:`vmware.vapi.bindings.type.IntegerType` + :param typ: Binding type of the value + """ + ... + + def visit_id(self, typ): # -> None: + """ + Visit IdValue + + :type typ: :class:`vmware.vapi.bindings.type.IdType` + :param typ: Binding type of the value + """ + ... + + def visit_boolean(self, typ): # -> None: + """ + Visit BooleanValue + + :type typ: :class:`vmware.vapi.bindings.type.BooleanType` + :param typ: Binding type of the value + """ + ... + + def visit_double(self, typ): # -> None: + """ + Visit DoubleValue + + :type typ: :class:`vmware.vapi.bindings.type.DoubleType` + :param typ: Binding type of the value + """ + ... + + def visit_secret(self, typ): # -> None: + """ + Visit SecretValue + + :type typ: :class:`vmware.vapi.bindings.type.SecretType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): # -> None: + """ + Visit BlobValue + + :type typ: :class:`vmware.vapi.bindings.type.BlobType` + :param typ: Binding type of the value + """ + ... + + def visit_opaque(self, typ): # -> None: + """ + Since there is no OpaqueValue, don't do any conversion + + :type typ: :class:`vmware.vapi.bindings.type.OpaqueType` + :param typ: Binding type of the value + """ + ... + + def visit_list(self, typ): # -> None: + """ + Visit a ListValue + + :type typ: :class:`vmware.vapi.bindings.type.ListType` + :param typ: Binding type of the value + """ + ... + + def visit_set(self, typ): # -> None: + """ + Visit a List Value. This ListValue must represent a set + i.e. there must not be any duplicate elements + + :type typ: :class:`vmware.vapi.bindings.type.SetType` + :param typ: Binding type of the value + """ + ... + + def visit_map(self, typ): # -> None: + """ + Visit a List Value. This ListValue must represent a map. Each element + of the ListValue is a StructValue with two fields, namely 'key' and + 'value'. The 'key' field represents the key of the map and the 'value' + field represents the value of the map. Also, since this represents a + map, there should not be duplicate keys. + + :type typ: :class:`vmware.vapi.bindings.type.MapType` + :param typ: Binding type of the value + """ + ... + + def visit_struct(self, typ): # -> None: + """ + Visit StructValue + + :type typ: :class:`vmware.vapi.bindings.type.StructType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): # -> None: + """ + Visit StructValue to convert it into the base VapiStruct + + :type typ: :class:`vmware.vapi.bindings.type.DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_any_error(self, typ): # -> None: + """ + Visit ErrorValue to convert it into the base VapiError + + :type typ: :class:`vmware.vapi.bindings.type.AnyErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_error(self, typ): # -> None: + """ + Visit ErrorValue + + :type typ: :class:`vmware.vapi.bindings.type.ErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_optional(self, typ): # -> None: + """ + Visit OptionalValue + + :type typ: :class:`vmware.vapi.bindings.type.OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_date_time(self, typ): # -> None: + """ + Visit a datetime value + + :type typ: :class:`vmware.vapi.bindings.type.DateTimeType` + :param typ: Binding type of the value + """ + ... + + def visit_uri(self, typ): # -> None: + """ + Visit an URI value + + :type typ: :class:`vmware.vapi.bindings.type.UriType` + :param typ: Binding type of the value + """ + ... + + def visit_enum(self, typ): # -> None: + """ + Visit an Enum value + + :type typ: :class:`vmware.vapi.bindings.type.EnumType` + :param typ: Binding type of the value + """ + ... + + def visit_reference(self, typ): # -> None: + """ + Visit a reference type + + :type typ: :class:`vmware.vapi.bindings.type.ReferenceType` + :param typ: Binding type of the value + """ + ... + +class PythonToVapiRestDataValueVisitor(PythonToVapiJsonRpcDataValueVisitor): + """ + Visitor to convert from Python native value to vAPI REST compatible + DataValue + """ + + def __init__(self, value) -> None: + """ + Initialize PythonToVapiJsonRpcDataValueVisitor + + :type value: :class:`object` + :param value: Native python value + """ + ... + +class VapiRestDataValueToPythonVisitor(VapiJsonRpcDataValueToPythonVisitor): + """ + Visitor to convert from vAPI REST compatible DataValue to Python native + value + """ + + def __init__(self, value, resolver) -> None: + """ + Initialize VapiJsonRpcDataValueToPythonVisitor + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: vAPI DataValue to be converted + :type resolver: :class:`vmware.vapi.bindings.common.NameToTypeResolver` + or ``None`` + :param resolver: Type resolver + """ + ... + + def visit_optional(self, typ): # -> None: + """ + Visit OptionalValue + + :type typ: :class:`vmware.vapi.bindings.type.OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): # -> None: + """ + Visit StructValue to convert it into the base VapiStruct + + :type typ: :class:`vmware.vapi.bindings.type.DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): # -> None: + """ + Visit BlobValue + + :type typ: :class:`vmware.vapi.bindings.type.BlobType` + :param typ: Binding type of the value + """ + ... + +class PythonToSwaggerRestDataValueVisitor(PythonToVapiJsonRpcDataValueVisitor): + """ + Visitor to convert from Python native value to Swagger Rest compatible + DataValue + """ + + def __init__(self, value) -> None: + """ + Initialize PythonToVapiJsonRpcDataValueVisitor + + :type value: :class:`object` + :param value: Native python value + """ + ... + + def visit_map(self, typ): # -> None: + """ + Visit a python dict + + :type typ: :class:`vmware.vapi.bindings.type.MapType` + :param typ: Binding type of the value + """ + ... + +class SwaggerRestDataValueToPythonVisitor(VapiJsonRpcDataValueToPythonVisitor): + """ + Visitor to convert from Swagger Rest compatible DataValue to Python native + value + """ + + def __init__(self, value, resolver) -> None: + """ + Initialize VapiJsonRpcDataValueToPythonVisitor + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: vAPI DataValue to be converted + :type resolver: :class:`vmware.vapi.bindings.common.NameToTypeResolver` + or ``None`` + :param resolver: Type resolver + """ + ... + + def visit_optional(self, typ): # -> None: + """ + Visit OptionalValue + + :type typ: :class:`vmware.vapi.bindings.type.OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_map(self, typ): # -> None: + """ + Visit a StructValue. This ListValue must represent a map. Each element + of the ListValue is a StructValue with two fields, namely 'key' and + 'value'. The 'key' field represents the key of the map and the 'value' + field represents the value of the map. Also, since this represents a + map, there should not be duplicate keys. + + :type typ: :class:`vmware.vapi.bindings.type.MapType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): # -> None: + """ + Visit StructValue to convert it into the base VapiStruct + + :type typ: :class:`vmware.vapi.bindings.type.DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): # -> None: + """ + Visit BlobValue + + :type typ: :class:`vmware.vapi.bindings.type.BlobType` + :param typ: Binding type of the value + """ + ... + + def visit_date_time(self, typ): # -> None: + """ + Visit a datetime value + + :type typ: :class:`vmware.vapi.bindings.type.DateTimeType` + :param typ: Binding type of the value + """ + ... + +class TypeConverter: + """ + Converter class that converts values from vAPI data model to Python native + data model + """ + + @staticmethod + def convert_to_python( + vapi_val, binding_type, resolver=..., rest_converter_mode=... + ): # -> str | Any | StructValue | list[Any] | set[Any] | VapiStruct | UnresolvedError | datetime | Enum | dict[Any, Any] | None: + """ + Converts vAPI DataValue to Python native value + + :type vapi_val: :class:`vmware.vapi.data.value.DataValue` + :param vapi_val: vAPI DataValue to be converted + :type binding_type: :class:`vmware.vapi.bindings.type.BindingType` + :param binding_type: BindingType for the value + :type resolver: :class:`vmware.vapi.bindings.common.NameToTypeResolver` + or ``None`` + :param resolver: Type resolver + :type rest_converter_mode: :class:`str` or :class:`None` + :param rest_converter_mode: Converter mode to be used to be be + compatible for Vapi Rest. If None or unknown string value, then the + default Json Rpc converter is used + :rtype: :class:`object` + :return: Python native value + """ + ... + + @staticmethod + def convert_to_vapi( + py_val, binding_type, rest_converter_mode=... + ): # -> DataValue | StructValue | None: + """ + Converts Python native value to vAPI DataValue + + :type py_val: :class:`object` + :param py_val: Python native value to be converted + :type binding_type: :class:`vmware.vapi.bindings.type.BindingType` + :param binding_type: BindingType for the value + :type rest_converter_mode: :class:`str` or :class:`None` + :param rest_converter_mode: Converter mode to be used to be be + compatible for Vapi Rest. If None or unknown string value, then the + default Json Rpc converter is used + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: vAPI DataValue + """ + ... diff --git a/typings/vmware/vapi/bindings/datetime_helper.pyi b/typings/vmware/vapi/bindings/datetime_helper.pyi new file mode 100644 index 00000000..7620d5e3 --- /dev/null +++ b/typings/vmware/vapi/bindings/datetime_helper.pyi @@ -0,0 +1,131 @@ +""" +This type stub file was generated by pyright. +""" + +import datetime +import six + +""" +Utility library for converting to/from datetime objects in Python Bindings +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class DateTimeConverter: + """ + Helper class to convert to/from Python datetime strings to + datetime objects. + + Datetime values are transported as a string values that have to be + converted to Python datetime object for use in Python bindings. The + string value is in RFC 3339 format (https://tools.ietf.org/html/rfc3339). + + The grammar for regex is as follows: + + date-time = full-date "T" full-time + full-date = date-fullyear "-" date-month "-" date-mday + date-fullyear = 4DIGIT + date-month = 2DIGIT ; 01-12 + date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year + full-time = partial-time time-offset + partial-time = time-hour ":" time-minute ":" time-second + [time-sub-second] + time-hour = 2DIGIT ; 00-23 + time-minute = 2DIGIT ; 00-59 + time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules + time-sub-second = "." time-secfrac + time-secfrac = 1*DIGIT + time-offset = "Z" / time-numoffset + time-numoffset = ("+" / "-") time-hour ":" time-minute + group(1) = full-date + group(2) = date-fullyear + group(3) = date-month + group(4) = date-mday + group(5) = full-time + group(6) = partial-time + group(7) = time-hour + group(8) = time-minute + group(9) = time-second + group(10) = time-sub-second + group(11) = time-secfrac + group(12) = time-offset + group(13) = time-numoffset + group(14) = time-hour + group(15) = time-minute + """ + + _rfc3339_dt_pattern = ... + _rfc3339_dt_expr = ... + @staticmethod + def convert_to_datetime(datetime_str): # -> datetime: + """ + Parse RFC 3339 date time from string. + + :type datetime_str: :class:`str` + :param datetime_str: Datetime in string representation that is in + RFC 3339 format + :rtype: :class:`datetime.datetime` + :return: Datetime object + """ + ... + + @staticmethod + def convert_from_rfc3339_to_datetime(datetime_str): # -> datetime: + """ + Parse RFC 3339 date time from string. + + :type datetime_str: :class:`str` + :param datetime_str: Datetime in string representation that is in + RFC 3339 format + :rtype: :class:`datetime.datetime` + :return: Datetime object + """ + ... + + @staticmethod + def convert_from_datetime(datetime_obj): + """ + Convert from Python native datetime object to the datetime format in + vAPI Runtime i.e. YYYY-MM-DDThh:mm:ss.sssZ. + + datetime objects returned by datetime.now() or datetime.utcnow() does + not contain any timezone information. The caller to this method should + only pass datetime objects that have time in UTC timezone. + + datetime objects have microsecond precision but the vAPI datetime + string format has millisecond precision. The method will truncate the + microsecond to millisecond and won't do any rounding of the value. + + :type datetime_obj: :class:`datetime.datetime` + :param datetime_obj: Datetime object with UTC time + :rtype: :class:`str` + :return: String representation of the input datetime object + """ + ... + +utc_tzinfo = ... +if six.PY2: + class UTC(datetime.tzinfo): + """ + tzinfo class for UTC timezone + """ + + def utcoffset(self, dt): # -> timedelta: + ... + + def tzname(self, dt): # -> Literal['UTC']: + ... + + def dst(self, dt): # -> timedelta: + ... + + utc_tzinfo = ... +else: + utc_tzinfo = ... + +def convert_to_utc(date_time): # -> None: + """ + Convert a given datetime object to UTC timezone + """ + ... diff --git a/typings/vmware/vapi/bindings/enum.pyi b/typings/vmware/vapi/bindings/enum.pyi new file mode 100644 index 00000000..6f4e2044 --- /dev/null +++ b/typings/vmware/vapi/bindings/enum.pyi @@ -0,0 +1,50 @@ +""" +This type stub file was generated by pyright. +""" + +import six + +""" +Bindings data classes +""" +__author__ = ... +__copyright__ = ... + +class Enum(six.text_type): + """ + Representation of IDL Enum in python language bindings + """ + + _binding_type = ... + _values = ... + @classmethod + def get_binding_type(cls): # -> None: + """ + Returns the corresponding BindingType for the VapiStruct class + + :rtype: :class:`vmware.vapi.data.value.BindingType` or ``None`` + :return: BindingType for this VapiStruct + """ + ... + + @classmethod + def get_values(cls): # -> list[Any]: + """ + Returns the list of all the possible enum values + + :rtype: :class:`list` of :class:`vmware.vapi.bindings.enum.Enum` + :return: List of all possible enum values + """ + ... + + def is_unknown(self): # -> bool: + """ + Returns whether the enum value stored is one of the known values or not + + :rtype: :class:`bool` + :return: True if the enum value is not known + """ + ... + + def __repr__(self): # -> str: + ... diff --git a/typings/vmware/vapi/bindings/error.pyi b/typings/vmware/vapi/bindings/error.pyi new file mode 100644 index 00000000..ee0e0f11 --- /dev/null +++ b/typings/vmware/vapi/bindings/error.pyi @@ -0,0 +1,43 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.struct import VapiStruct + +""" +Error classes and factory +""" +__author__ = ... +__copyright__ = ... + +class VapiError(VapiStruct, Exception): + """ + Representation of VMODL Error in python language bindings + """ + + def __init__(self, error_value=...) -> None: + """ + Initialize VapiError + + :type error_value: :class:`vmware.vapi.data.value.ErrorValue` or + :class:`None` + :param error_value: ErrorValue to be used for VapiError + """ + ... + + def get_error_value(self): # -> StructValue: + """ + Returns the corresponding ErrorValue for the VapiError class + + :rtype: :class:`vmware.vapi.data.value.ErrorValue` + :return: ErrorValue for this VapiError + """ + ... + +class UnresolvedError(VapiError): + """ + VapiError which represents a VMODL2 error that was reported but couldn't + be resolved + """ + + ... diff --git a/typings/vmware/vapi/bindings/http_helper.pyi b/typings/vmware/vapi/bindings/http_helper.pyi new file mode 100644 index 00000000..da97791c --- /dev/null +++ b/typings/vmware/vapi/bindings/http_helper.pyi @@ -0,0 +1,111 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Rest http helper methods +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class ResponseExtractor: + """ + Http response extractor utility classes + """ + + def __init__(self) -> None: + """ + Initialize the response extractor + """ + ... + + def set_http_status(self, status): # -> None: + """ + Set http response status + + :type status: :class:`str` + :param status: Http status + """ + ... + + def get_http_status(self): # -> None: + """ + Get http response status + + :rtype: :class:`str` + :return: Http response status + """ + ... + + def set_http_headers(self, headers): # -> None: + """ + Set http response headers + + :type headers: :class:`dict` of :class:`str`, :class:`str` + :param headers: Http response headers + """ + ... + + def get_http_headers(self): # -> None: + """ + Get http response headers + + :rtype: :class:`dict` of :class:`str`, :class:`str` + :return: Http response headers + """ + ... + + def set_http_body(self, body): # -> None: + """ + Set http response body + + :type body: :class:`str` + :param body: Http body object + """ + ... + + def get_http_body(self): # -> None: + """ + Get http response body + + :rtype: :class:`str` + :return: Http response body + """ + ... + + def set_http_method(self, method): # -> None: + """ + Set http request method + + :type method: :class:`vmware.vapi.protocol.common.http_lib.HttpMethod` + :param method: Http request method + """ + ... + + def get_http_method(self): # -> None: + """ + Get http request method + + :rtype: :class:`vmware.vapi.protocol.common.http_lib.HttpMethod` + :return: Http request method + """ + ... + + def set_http_url(self, url): # -> None: + """ + Set http request URL + + :type url: :str` + :param url: Http request url + """ + ... + + def get_http_url(self): # -> None: + """ + Get http request url + + :rtype: :class:`str` + :return: Http request url + """ + ... diff --git a/typings/vmware/vapi/bindings/struct.pyi b/typings/vmware/vapi/bindings/struct.pyi new file mode 100644 index 00000000..8b497e83 --- /dev/null +++ b/typings/vmware/vapi/bindings/struct.pyi @@ -0,0 +1,162 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Bindings data classes +""" +__author__ = ... +__copyright__ = ... + +class VapiStruct: + """ + Representation of IDL Structure in python language bindings + """ + + _validator_list = ... + _canonical_to_pep_names = ... + def __init__(self, struct_value=..., rest_converter_mode=...) -> None: + """ + Initialize VapiStruct + + :type mappings: :class:`dict` or :class:`None` + :param mappings: A mapping for all field names whose canonical name does + not match PEP8 standard name + :type rest_converter_mode: :class:`str` or :class:`None` + :param rest_converter_mode: Converter mode to be used to be be + compatible for Vapi Rest. If None or unknown string value, + then the default Json Rpc converter is used + :type struct_value: :class:`vmware.vapi.data.value.StructValue` + :param struct_value: StructValue to be used for VapiStruct + or :class:`None` + """ + ... + + def get_field(self, attr): # -> Any: + """ + Returns the struct field value + + :type attr: :class:`str` + :param attr: Canonical field name + :rtype: :class:`object` + :return: Field value + """ + ... + + @classmethod + def validate_struct_value(cls, struct_value): # -> None: + """ + Validate if the given struct value satisfies all + the constraints of this VapiStruct. + + :type struct_value: :class:`vmware.vapi.data.value.StructValue` + :param struct_value: StructValue to be validated + :type validators: :class:`list` of + :class:`vmware.vapi.data.validator.Validator` + :param validators: List of validators + :raise :class:`vmware.vapi.exception.CoreException` if a constraint is + not satisfied + """ + ... + + def validate_constraints(self): # -> None: + """ + Validate if the current VapiStruct instance satisfies all the + constraints of this VapiStruct type. + + :raise :class:`vmware.vapi.exception.CoreException` if a constraint is + not satisfied + """ + ... + + @classmethod + def get_binding_type(cls): # -> Any | None: + """ + Returns the corresponding BindingType for the VapiStruct class + + :rtype: :class:`vmware.vapi.bindings.type.BindingType` + :return: BindingType for this VapiStruct + """ + ... + + def get_struct_value(self): # -> StructValue: + """ + Returns the corresponding StructValue for the VapiStruct class + + :rtype: :class:`vmware.vapi.data.value.StructValue` + :return: StructValue for this VapiStruct + """ + ... + + def convert_to( + self, cls + ): # -> str | Any | StructValue | list[Any] | set[Any] | VapiStruct | UnresolvedError | datetime | Enum | dict[Any, Any] | None: + """ + Convert the underlying StructValue to an instance of the provided class + if possible. Conversion will be possible if the StructValue contains + all the fields expected by the provided class and the type of the value + in each fields matches the type of the field expected by the provided + class. + + :type cls: :class:`vmware.vapi.data.value.StructValue` + :param cls: The type to convert to + :rtype: :class:'vmware.vapi.bindings.struct.VapiStruct' + :return: The converted value + """ + ... + + def to_json(self): # -> str: + """ + Convert the object into a json string. + + :rtype: :class:`str` + :return: JSON string representation of this object + """ + ... + + def to_dict(self): # -> Any: + """ + Convert the object into a python dictionary. Even the nested types + are converted to dictionaries. + + :rtype: :class:`dict` + :return: Dictionary representation of this object + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def __str__(self) -> str: ... + def __hash__(self) -> int: ... + +class PrettyPrinter: + """ + Helper class to pretty print Python native values (with special support + for VapiStruct objects). + """ + + def __init__(self, stream=..., indent=...) -> None: + """ + Initialize PrettyPrinter + + :type stream: :class:`object` + :param stream: A stream object that implements File protocol's + write operation + :type indent: :class:`int` + :param indent: Indentation to be used for new lines + """ + ... + + def pprint(self, value, level=...): # -> None: + """ + Print a Python native value + + :type value: :class:`vmware.vapi.bindings.struct.VapiStruct` + :param value: VapiStruct to be pretty printed + :type level: :class:`int` + :param level: Indentation level + """ + ... diff --git a/typings/vmware/vapi/bindings/stub.pyi b/typings/vmware/vapi/bindings/stub.pyi new file mode 100644 index 00000000..586a8ddf --- /dev/null +++ b/typings/vmware/vapi/bindings/stub.pyi @@ -0,0 +1,241 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.core import ApiInterface + +""" +Stub helper classes +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class StubConfiguration: + """ + Configuration data for vAPI stub classes + + :type connector: :class:`vmware.vapi.protocol.client.connector.Connector` + :ivar connector: Connection to be used to talk to the remote ApiProvider + """ + + def __init__(self, connector, *error_types, **kwargs) -> None: + """ + Initialize the stub configuration + + :type connector: :class: + `vmware.vapi.protocol.client.connector.Connector` + :param connector: Connection to be used to talk to the remote + ApiProvider + :type error_types: :class:`list` of :class: + `vmware.vapi.bindings.type.ErrorType` + :param error_types: error types to be registered in this configuration + :type kwargs: :class: `ResponseExtractor` + :param kwargs: Extract rest http response status + """ + ... + + @property + def connector(self): + """ + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connection to be used to talk to the remote ApiProvider + """ + ... + + @property + def resolver(self): # -> NameToTypeResolver: + """ + Type resolver that can resolve canonical names to its binding types + + :rtype: :class:`vmware.vapi.bindings.common.NameToTypeResolver` + :return: Type resolver + """ + ... + + @property + def response_extractor(self): # -> ResponseExtractor | None: + """ + Response extractor that can retrive the raw http response status and body # pylint: disable=line-too-long + + :rtype: :class:`vmware.vapi.bindings.http_helper.ResponseExtractor` + :return: Response extractor + """ + ... + +class ApiInterfaceStub(ApiInterface): + """ + Stub class for Api Interface + """ + + def __init__( + self, iface_name, config, operations, rest_metadata=..., is_vapi_rest=... + ) -> None: + """ + Initialize the ApiMethod skeleton object + + :type iface_name: :class:`str` + :param iface_name: Interface name + :type config: :class:`StubConfiguration` + :param config: Configuration data for vAPI stubs + :type operations: :class:`dict` + :param operations: Dictionary of operation name to operation information + :type rest_metadata: :class:`dict` of :class:`str` and + :class::`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata: Dictionary of operation name to operation REST + metadata + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Json message format. True for Vapi Rest and False + for Swagger Rest + """ + ... + + def get_identifier(self): # -> InterfaceIdentifier: + """ + Returns interface identifier + + :rtype: :class:`InterfaceIdentifier` + :return: Interface identifier + """ + ... + + def get_definition(self): # -> InterfaceDefinition: + """ + Returns interface definition + + :rtype: :class:`InterfaceDefinition` + :return: Interface definition + """ + ... + + def get_method_definition(self, method_id): # -> MethodDefinition | None: + ... + + def invoke(self, ctx, method_id, input_value): + """ + Invokes the specified method using the execution context and + the input provided + + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + :type method_id: :class:`vmware.vapi.core.MethodIdentifier` + :param method_id: Method identifier + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: Method input parameters + + :rtype: :class:`vmware.vapi.core.MethodResult` + :return: Result of the method invocation + """ + ... + + def native_invoke( + self, ctx, method_name, kwargs + ): # -> str | Any | StructValue | list[Any] | set[Any] | VapiStruct | UnresolvedError | datetime | Enum | dict[Any, Any] | None: + """ + Invokes the method corresponding to the given method name + with the kwargs. + + In this method, python native values are converted to vAPI + runtime values, operation is invoked and the result are converted + back to python native values + + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + :type method_name: :class:`str` + :param method_name: Method name + :type kwargs: :class:`dict` + :param kwargs: arguments to be passed to the method + :rtype: :class:`object` + :return: Method result + """ + ... + +class VapiInterface: + """ + vAPI Interface class is used by the python client side bindings. This + encapsulates the ApiInterfaceStub instance + """ + + def __init__(self, config, api_interface) -> None: + """ + Initialize VapiInterface object + + :type config: :class:`StubConfiguration` + :param config: Configuration data for vAPI stubs + :type api_interface: :class:`ApiInterfaceStub` + :param api_interface: Instance of ApiInterfaceStub class that can + execute the ApiMethods + """ + ... + +class StubFactory: + """ + Factory for client-side vAPI stubs + """ + + def __init__(self, config) -> None: + """ + Initialize the stub factory + + :type config: :class:`StubConfiguration` + :param config: Configuration data for vAPI stubs + """ + ... + + def create_stub(self, service_name): # -> Any: + """ + Create a stub corresponding to the specified service name + + :type service_name: :class:`str` + :param service_name: Name of the service + + :rtype: :class:`VapiInterface` + :return: The stub correspoding to the specified service name + """ + ... + +class StubFactoryBase: + """ + Class that represents a VMODL2 package and holds the stubs for services + which are part of that package as well as stub factories of sub-packages + + :type _attrs: :class:`dict` of :class:`str` and + (:class:`vmware.vapi.bindings.stub.VapiInterface` or :class:`str`) + :cvar _attrs: Dictionary of service name and service stub or sub module name + and string reprensenting the fully qualified class path + """ + + _attrs = ... + def __init__(self, stub_config) -> None: + """ + Initialize StubFactoryBase + + :type stub_config: :class:`vmware.vapi.bindings.stub.StubConfiguration` + :param stub_config: Stub config instance + """ + ... + + def __getattribute__(self, name): # -> Any | StubFactoryBase | VapiInterface: + ... + +class ApiClient: + """ + Base Class that represents an api client that client binding users can use + to access all the service stubs + """ + + def __init__(self, stub_factory) -> None: + """ + Initialize ApiClient + + :type stub_factory: :class:`vmware.vapi.bindings.stub.StubFactoryBase` + :param stub_factory: Instance for the top level stub factory for the API + component or product + """ + ... + + def __getattr__(self, name): # -> Any: + ... + + def __dir__(self): # -> list[str]: + ... diff --git a/typings/vmware/vapi/bindings/type.pyi b/typings/vmware/vapi/bindings/type.pyi new file mode 100644 index 00000000..9de5e71e --- /dev/null +++ b/typings/vmware/vapi/bindings/type.pyi @@ -0,0 +1,853 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.lib.visitor import VapiVisitor + +""" +Representation of an IDL type for the use of the Python language bindings. +""" +__author__ = ... +__copyright__ = ... +MAP_KEY_FIELD = ... +MAP_VALUE_FIELD = ... + +class BindingType: + """ + Representation of an IDL type for the use of the Python language bindings + + :type definition: :class:`vmware.vapi.data.definition.DataDefinition` + :param definition: Data definition corresponding to this binding type + """ + + def __init__(self) -> None: ... + def accept(self, visitor): # -> None: + """ + Applies a visitor to this BindingType + + :type visitor: :class:`BindingTypeVisitor` + :param visitor: visitor operating on the BindingType + """ + ... + + @property + def definition( + self, + ): # -> VoidDefinition | IntegerDefinition | DoubleDefinition | StringDefinition | BooleanDefinition | BlobDefinition | OptionalDefinition | ListDefinition | StructRefDefinition | StructDefinition | DynamicStructDefinition | AnyErrorDefinition | OpaqueDefinition | SecretDefinition | ErrorDefinition | None: + """ + Generate the data defintion corresponding to this binding type + """ + ... + +class VoidType(BindingType): + """ + Representation of void IDL type in Python Binding + """ + + def __init__(self) -> None: ... + +class IntegerType(BindingType): + """ + Representation of integer IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class DoubleType(BindingType): + """ + Representation of float IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class StringType(BindingType): + """ + Representation of string IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class SecretType(BindingType): + """ + Representation of @secret IDL annotation in Python Binding. @secret + annotation can only be applied to strings. + """ + + def __init__(self) -> None: ... + +class BooleanType(BindingType): + """ + Representation of boolean IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class BlobType(BindingType): + """ + Representation of binary IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class OptionalType(BindingType): + """ + Representation of optional IDL annotation in Python Binding + + :type element_type: :class:`BindingType` + :ivar element_type: element type + """ + + def __init__(self, element_type) -> None: ... + @property + def element_type(self): # -> BindingType: + """ + Return the element type of this ListType + + :rtype: :class:`BindingType` + :return: element type + """ + ... + +class ListType(BindingType): + """ + Representation of List IDL type in Python Binding + + :type element_type: :class:`BindingType` + :ivar element_type: element type + """ + + def __init__(self, element_type) -> None: ... + @property + def element_type(self): # -> BindingType: + """ + Return the element type of this ListType + + :rtype: :class:`BindingType` + :return: element type + """ + ... + +class SetType(BindingType): + """ + Representation of Set IDL type in Python Binding + + :type element_type: :class:`BindingType` + :ivar element_type: element type + """ + + def __init__(self, element_type) -> None: ... + @property + def element_type(self): # -> BindingType: + """ + Return the element type of this SetType + + :rtype: :class:`BindingType` + :return: element type + """ + ... + +class MapType(BindingType): + """ + Representation of Map IDL type in Python Binding + + :type key_type: :class:`BindingType` + :ivar key_type: map key type + :type value_type: :class:`BindingType` + :ivar value_type: map value type + """ + + def __init__(self, key_type, value_type) -> None: ... + @property + def key_type(self): # -> BindingType: + """ + Return the key type of this MapType + + :rtype: :class:`BindingType` + :return: key type + """ + ... + + @property + def value_type(self): # -> BindingType: + """ + Return the value type of this MapType + + :rtype: :class:`BindingType` + :return: value type + """ + ... + +class StructType(BindingType): + """ + Representation of Structure IDL type in Python Binding + + :type name: :class:`str` + :ivar name: Name of the structure + :type binding_class: :class:`vmware.vapi.bindings.struct.VapiStruct` + :ivar binding_class: Reference to the Python native class corresponding + to this structure + :type is_model: :class:`bool` + :ivar is_model: True if the structure is marked as Model, False otherwise + :type model_keys: :class:`list` of :class:`str` or :class:`None` + :ivar model_keys: List of model keys for the structure if it is marked as + Model + """ + + def __init__( + self, name, fields, binding_class=..., is_model=..., model_keys=... + ) -> None: ... + @property + def name(self): # -> str: + """ + Returns the name of the StructType + + :rtype: :class:`str` + :return: Name of the StructType + """ + ... + + @property + def binding_class(self): # -> None: + """ + Returns the reference to the Python native class + corresponding to this structure + + :rtype: :class:`vmware.vapi.bindings.struct.VapiStruct` + :return: Reference to the python native class + """ + ... + + @property + def is_model(self): # -> bool: + """ + Check if the Struct is marked as model + + :rtype: :class:`bool` + :return: True if the Struct is marked as model, False otherwise + """ + ... + + @property + def model_keys(self): # -> None: + """ + Returns list of model keys for the Struct if it is marked as model + + :rtype: :class:`list` of :class:`str` or None + :return: List of model keys for the Struct if it is marked as model + """ + ... + + def get_field_names(self): # -> list[Any]: + """ + Returns the list of field names present in this StructType + + :rtype: :class:`list` of :class:`str` + :return: List of field names + """ + ... + + def get_field(self, field_name): # -> None: + """ + Returns the BindingType of the argument + + :type field_name: :class:`str` + :param field_name: Field name + :rtype: :class:`BindingType` + :return: BindingType of the field specified + """ + ... + +class ErrorType(StructType): + """ + Representation of Error IDL type in Python Binding + + :type definition: :class:`vmware.vapi.data.ErrorDefinition` + :ivar definition: type representation in the API runtime + :type name: :class:`str` + :ivar name: Name of the structure + :type binding_class: :class:`vmware.vapi.bindings.error.VapiError` + :ivar binding_class: Reference to the Python native class corresponding + to this error + """ + + def __init__(self, name, fields, binding_class=...) -> None: ... + +class ReferenceType(BindingType): + """ + Reference type to resolve references lazily. + + :type resolved_type: :class:`StructType` or :class:`EnumType` + :ivar resolved_type: Resolved reference type + """ + + def __init__(self, context_name, type_name) -> None: + """ + Initialize ReferenceType + + :type context_name: :class:`str` + :param context_name: Name of the module that has the type + :type type_name: :class:`str` + :param type_name: Fully qualified name of the type reference. i.e. + if the type Bar is nested inside type Foo, it would be Foo.Bar + """ + ... + + @property + def resolved_type(self): # -> Any | None: + """ + Returns the resolved struct type or enum type + + :rtype: :class:`StructType` or + :class:`EnumType` + :return: Resolved struct type or enum type + """ + ... + +class OpaqueType(BindingType): + """ + Representation of Opaque IDL annotation in Python Binding + """ + + def __init__(self) -> None: ... + +class DynamicStructType(StructType): + """ + Representation of StructValue IDL annotation in Python Binding + + :type has_fields_of_type: :class:`ReferenceType` + :ivar has_fields_of_type: List of reference types whose fields need to be + present in the StructValue for this DynamicStruct type + """ + + def __init__(self, name, fields, binding_class=..., has_fields_of_type=...) -> None: + """ + Initialize DynamicStructType + + :type name: :class:`str` + :param name: Name of the Structure + :type fields: :class:`dict` of :class:`str` and :class:`BindingType` + :param fields: Map of field name and field binding type + :type binding_class: + :class:`vmware.vapi.data.definition.DataDefinition` + :param binding_class: Data definition for this type + :type has_fields_of_type: :class:`ReferenceType` + :param has_fields_of_type: List of reference types whose fields need to + be present in the StructValue for this DynamicStruct type + """ + ... + + @property + def has_fields_of_type(self): # -> None: + """ + Returns the has_fields_of_type + + :rtype :class:`ReferenceType` + :return List of reference types whose fields need to be present in the + StructValue for this DynamicStruct type + """ + ... + +class AnyErrorType(BindingType): + """ + Representation of Exception type in Python Binding + """ + + def __init__(self) -> None: + """ + Initialize AnyErrorType + """ + ... + +class DateTimeType(BindingType): + """ + Representation of datetime IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class URIType(BindingType): + """ + Representation of URI IDL Type in Python Binding + """ + + def __init__(self) -> None: ... + +class EnumType(BindingType): + """ + Representation of enum IDL Type in Python Binding + + :type name: :class:`str` + :ivar name: Name of the enum + :type binding_class: :class:`vmware.vapi.bindings.struct.VapiStruct` + :ivar binding_class: Reference to the Python native class corresponding + to this structure + """ + + def __init__(self, name, binding_class) -> None: ... + @property + def name(self): # -> Any: + """ + Returns the name of the EnumType + + :rtype: :class:`str` + :return: Name of the EnumType + """ + ... + + @property + def binding_class(self): # -> Any: + """ + Returns the reference to the Python native class + corresponding to this structure + """ + ... + +class IdType(BindingType): + """ + Representation of ID IDL type in Python Binding + + :type resolved_types: :class:`list` of :class:`str` or :class:`str` or + :class:`None` + :ivar resolved_types: Resource type(s) for the ID + :type resource_type_field_name: :class:`str` or :class:`None` + :ivar resource_type_field_name: Name of the field specifying the resource + type + """ + + def __init__(self, resource_types=..., resource_type_field_name=...) -> None: ... + @property + def resource_types(self): # -> None: + """ + Returns the Resource type(s) for the ID field + + :rtype: :class:`list` of :class:`str` or :class:`str` or :class:`None` + :return: Resource type(s) for the ID + """ + ... + + @property + def resource_type_field_name(self): # -> None: + """ + Returns the name of the field specifying the resource type + + :rtype: :class:`str` + :return: Name of the field specifying the resource type + """ + ... + +class BindingTypeVisitor(VapiVisitor): + """ + Base no-op implementation of a BindingType visitor + """ + + def __init__(self) -> None: + """ + Initialize BindingTypeVisitor + """ + ... + + def visit_void(self, typ): + """ + Visit a void value (i.e. None) + + :type typ: :class:`VoidType` + :param typ: Binding type of the value + """ + ... + + def visit_integer(self, typ): + """ + Visit an integer value + + :type typ: :class:`IntegerType` + :param typ: Binding type of the value + """ + ... + + def visit_double(self, typ): + """ + Visit a double value + + :type typ: :class:`DoubleType` + :param typ: Binding type of the value + """ + ... + + def visit_string(self, typ): + """ + Visit a string value + + :type typ: :class:`StringType` + :param typ: Binding type of the value + """ + ... + + def visit_boolean(self, typ): + """ + Visit a boolean value + + :type typ: :class:`BooleanType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): + """ + Visit a blob value + + :type typ: :class:`BlobType` + :param typ: Binding type of the value + """ + ... + + def visit_optional(self, typ): + """ + Visit an optional value + + :type typ: :class:`OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_list(self, typ): + """ + Visit a list value + + :type typ: :class:`ListType` + :param typ: Binding type of the value + """ + ... + + def visit_struct(self, typ): + """ + Visit a struct value + + :type typ: :class:`StructType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): + """ + Visit a struct value + + :type typ: :class:`DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_any_error(self, typ): + """ + Visit an error value + + :type typ: :class:`AnyErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_opaque(self, typ): + """ + Visit an opaque value. + + :type typ: :class:`OpaqueType` + :param typ: Binding type of the value + """ + ... + + def visit_secret(self, typ): + """ + Visit a secret value + + :type typ: :class:`SecretType` + :param typ: Binding type of the value + """ + ... + + def visit_date_time(self, typ): + """ + Visit a datetime value + + :type typ: :class:`DateTimeType` + :param typ: Binding type of the value + """ + ... + + def visit_uri(self, typ): + """ + Visit an URI value + + :type typ: :class:`URIType` + :param typ: Binding type of the value + """ + ... + + def visit_enum(self, typ): + """ + Visit a enum value + + :type typ: :class:`EnumType` + :param typ: Binding type of the value + """ + ... + + def visit_error(self, typ): + """ + Visit an error type + + :type typ: :class:`ErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_reference(self, typ): + """ + Visit a reference type + + :type typ: :class:`ReferenceType` + :param typ: Binding type of the value + """ + ... + + def visit_id(self, typ): + """ + Visit a ID value + + :type typ: :class:`IdType` + :param typ: Binding type of the value + """ + ... + +class DataDefinitionBuilder(BindingTypeVisitor): + """ + Builds DataDefinition by visiting a BindingType + """ + + def __init__(self, ctx, seen_structures) -> None: + """ + Initialize DataDefinitionBuilder + + :type ctx: :class:`vmware.vapi.data.definition.ReferenceResolver` + :param ctx: Data definition reference resolver object + :type seen_structures: :class:`list` or :class:`str` + :param seen_structures: List of structures seen + """ + ... + + def get_out_value( + self, + ): # -> VoidDefinition | IntegerDefinition | DoubleDefinition | StringDefinition | BooleanDefinition | BlobDefinition | OptionalDefinition | ListDefinition | StructRefDefinition | StructDefinition | DynamicStructDefinition | AnyErrorDefinition | OpaqueDefinition | SecretDefinition | ErrorDefinition | None: + """ + Returns the data definition + + :rtype: :class:`vmware.vapi.data.definition.DataDefinition` + :return: Data definition + """ + ... + + def visit_void(self, typ): # -> None: + """ + Visit a void value (i.e. None) + + :type typ: :class:`VoidType` + :param typ: Binding type of the value + """ + ... + + def visit_integer(self, typ): # -> None: + """ + Visit an integer value + + :type typ: :class:`IntegerType` + :param typ: Binding type of the value + """ + ... + + def visit_double(self, typ): # -> None: + """ + Visit a double value + + :type typ: :class:`DoubleType` + :param typ: Binding type of the value + """ + ... + + def visit_string(self, typ): # -> None: + """ + Visit a string value + + :type typ: :class:`StringType` + :param typ: Binding type of the value + """ + ... + + def visit_boolean(self, typ): # -> None: + """ + Visit a boolean value + + :type typ: :class:`BooleanType` + :param typ: Binding type of the value + """ + ... + + def visit_blob(self, typ): # -> None: + """ + Visit a blob value + + :type typ: :class:`BlobType` + :param typ: Binding type of the value + """ + ... + + def visit_optional(self, typ): # -> None: + """ + Visit an optional value + + :type typ: :class:`OptionalType` + :param typ: Binding type of the value + """ + ... + + def visit_list(self, typ): # -> None: + """ + Visit a list value + + :type typ: :class:`ListType` + :param typ: Binding type of the value + """ + ... + + def visit_set(self, typ): # -> None: + """ + Visit a set value + + :type typ: :class:`SetType` + :param typ: Binding type of the value + """ + ... + + def visit_map(self, typ): # -> None: + """ + Visit a map value + + :type typ: :class:`MapType` + :param typ: Binding type of the value + """ + ... + + def visit_struct(self, typ): # -> None: + """ + Visit a struct value + + :type typ: :class:`StructType` + :param typ: Binding type of the value + """ + ... + + def visit_dynamic_struct(self, typ): # -> None: + """ + Visit a struct value + + :type typ: :class:`DynamicStructType` + :param typ: Binding type of the value + """ + ... + + def visit_any_error(self, typ): # -> None: + """ + Visit an error value + + :type typ: :class:`AnyErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_opaque(self, typ): # -> None: + """ + Visit an opaque value. + + :type typ: :class:`OpaqueType` + :param typ: Binding type of the value + """ + ... + + def visit_secret(self, typ): # -> None: + """ + Visit a secret value + + :type typ: :class:`SecretType` + :param typ: Binding type of the value + """ + ... + + def visit_date_time(self, typ): # -> None: + """ + Visit a datetime value + + :type typ: :class:`DateTimeType` + :param typ: Binding type of the value + """ + ... + + def visit_uri(self, typ): # -> None: + """ + Visit an URI value + + :type typ: :class:`URIType` + :param typ: Binding type of the value + """ + ... + + def visit_enum(self, typ): # -> None: + """ + Visit a enum value + + :type typ: :class:`EnumType` + :param typ: Binding type of the value + """ + ... + + def visit_reference(self, typ): # -> None: + """ + Visit a reference type + + :type typ: :class:`ReferenceType` + :param typ: Binding type of the value + """ + ... + + def visit_error(self, typ): # -> None: + """ + Visit an error type + + :type typ: :class:`ErrorType` + :param typ: Binding type of the value + """ + ... + + def visit_id(self, typ): # -> None: + """ + Visit a ID value + + :type typ: :class:`IdType` + :param typ: Binding type of the value + """ + ... + +class TypeUtil: + """ + Converts a BindingType object to DataDefinition object + """ + + @staticmethod + def convert_to_data_definition( + binding_type, + ): # -> VoidDefinition | IntegerDefinition | DoubleDefinition | StringDefinition | BooleanDefinition | BlobDefinition | OptionalDefinition | ListDefinition | StructRefDefinition | StructDefinition | DynamicStructDefinition | AnyErrorDefinition | OpaqueDefinition | SecretDefinition | ErrorDefinition | None: + """ + Converts a BindingType object to DataDefinition object + + :type binding_type: :class:`BindingType` + :param binding_type: Binding type + :rtype: :class:`vmware.vapi.data.definition.DataDefinition` + :return: DataDefinition + """ + ... diff --git a/typings/vmware/vapi/bindings/uri_helper.pyi b/typings/vmware/vapi/bindings/uri_helper.pyi new file mode 100644 index 00000000..80cf9901 --- /dev/null +++ b/typings/vmware/vapi/bindings/uri_helper.pyi @@ -0,0 +1,27 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Utility library for validating IRI that conform to RFC 3987 +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class URIValidator: + """ + Helper class for validation of IRI's + """ + + _rules = ... + compiled_regex = ... + @staticmethod + def validate(iri): # -> None: + """ + Validate the given IRI string + + :type iri: :class:`str` + :param iri: IRI string to be validated + """ + ... diff --git a/typings/vmware/vapi/common/context.pyi b/typings/vmware/vapi/common/context.pyi new file mode 100644 index 00000000..d30a818e --- /dev/null +++ b/typings/vmware/vapi/common/context.pyi @@ -0,0 +1,60 @@ +""" +This type stub file was generated by pyright. +""" + +import threading + +""" +Utility functions for managing execution context for an operation +""" +__author__ = ... +__copyright__ = ... +TLS = threading.local() + +def set_context(ctx): # -> None: + """ + Set the execution context in thread local storage + + :type: :class:`vmware.vapi.core.ExecutionContext` + :param: Execution context + """ + ... + +def clear_context(): # -> None: + """ + Clear the execution context from thread local storage + """ + ... + +def get_context(): # -> Any | None: + """ + Get the execution context from thread local storage + + :rtype: :class:`vmware.vapi.core.ExecutionContext` or :class:`NoneType` + :return: The execution context if present + """ + ... + +def set_event(event): # -> None: + """ + Set the event in thread local storage + + :type: :class:`threading.Event` + :param: Event + """ + ... + +def clear_event(): # -> None: + """ + Clear the event from thread local storage + """ + ... + +def get_event(): # -> Any | None: + """ + Get the event from thread local storage + + :rtype: :class:`threading.Event` or :class:`NoneType` + :return: Event if present + """ + ... diff --git a/typings/vmware/vapi/core.pyi b/typings/vmware/vapi/core.pyi new file mode 100644 index 00000000..c5fc453a --- /dev/null +++ b/typings/vmware/vapi/core.pyi @@ -0,0 +1,471 @@ +""" +This type stub file was generated by pyright. +""" + +import abc +import six + +""" +Core Protocol Definition classes +""" +__author__ = ... +__copyright__ = ... + +@six.add_metaclass(abc.ABCMeta) +class ApiProvider: + """ + The ApiProvider interface is used for invocation of operations + """ + + @abc.abstractmethod + def invoke(self, service_id, operation_id, input_value, ctx): # -> None: + """ + Invokes the specified method using the input value and the + the execution context provided + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: Input parameters for the method + :type ctx: :class:`ExecutionContext` + :param ctx: Execution context for the method + + :rtype: :class:`MethodResult` + :return: Result of the method invocation + """ + ... + + def __hash__(self) -> int: ... + +class ApiInterface: + """ + The ApiInterface interface provides introspection APIs for a + vAPI interface; it is implemented by API providers. + """ + + def __init__(self) -> None: + """ + Initialize the Api Interface instance + """ + ... + + def get_identifier(self): + """ + Returns interface identifier + + :rtype: :class:`InterfaceIdentifier` + :return: Interface identifier + """ + ... + + def get_definition(self): + """ + Returns interface definition + + :rtype: :class:`InterfaceDefinition` + :return: Interface definition + """ + ... + + def get_method_definition(self, method_id): + """ + Returns the method definition + + :rtype: :class:`MethodDefinition` + :return: Method definition + """ + ... + + def invoke(self, ctx, method_id, input_value): + """ + Invokes the specified method using the execution context and + the input provided + + :type ctx: :class:`ExecutionContext` + :param ctx: Execution context for this method + :type method_id: :class:`MethodIdentifier` + :param method_id: Method identifier + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: Method input parameters + + :rtype: :class:`MethodResult` + :return: Result of the method invocation + """ + ... + + def __hash__(self) -> int: ... + +class InterfaceIdentifier: + """ + InterfaceIdentifier has the information required to uniquely + address a vAPI interface + """ + + def __init__(self, iface) -> None: + """ + Initialize an InterfaceIdentifier + + :type iface: :class:`str` + :param iface: String identifier of the interface + """ + ... + + def get_name(self): # -> str: + """ + Returns the string identifier of the interface + + :rtype: :class:`str` + :return: String identifier of the interface + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def __hash__(self) -> int: ... + +class MethodIdentifier: + """ + This class identifies a :class:`ApiMethod` instance + """ + + def __init__(self, iface, method) -> None: + """ + Initialize the MethodIdentifier + + :type iface: :class:`InterfaceIdentifier` + :param iface: InterfaceIdentifier of this method + :type method: :class:`str` + :param method: String identifier of this method + """ + ... + + def get_interface_identifier(self): # -> InterfaceIdentifier: + """ + Returns the interface identifier of the method + + :rtype: :class:`InterfaceIdentifier` + :return: InterfaceIdentifier of this method + """ + ... + + def get_name(self): # -> str: + """ + Returns the string identifier of the method + + :rtype: :class:`str` + :return: String identifier of the method + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def __hash__(self) -> int: ... + +class ProviderDefinition: + """ + The ProviderDefinition class contains details information about a + vAPI provider + """ + + def __init__(self, name) -> None: + """ + Initialize the ProviderDefinition + + :type name: :class:`str` + :param name: Name of the provider + """ + ... + + def get_identifier(self): # -> Any: + """ + Returns the provider identifier. + + :rtype: :class:`str` + :return: Provider identifier + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def __hash__(self) -> int: ... + +class InterfaceDefinition: + """ + The InterfaceDefinition class contains detailed information about a + vAPI interface. This should contain all the information required + to address an interface in the vAPI runtime. + """ + + def __init__(self, id_, method_ids) -> None: + """ + Initialize the InterfaceDefinition + + :type id_: :class:`InterfaceIdentifier` + :param id_: InterfaceIdentifier of this interface + :type method_ids: :class:`list` of :class:`MethodIdentifier` + :param method_ids: List of method identifiers of the methods exposed by + this interface + """ + ... + + def get_identifier(self): # -> Any: + """ + Returns the interface identifier + + :rtype: :class:`InterfaceIdentifier` + :return: Returns the interface identifer of this interface + """ + ... + + def get_method_identifiers(self): # -> Any: + """ + Returns the list of method identifiers of the methods exposed by this + interface. Each method identifier is unique within an interface. The + method identifiers returned are unordered + + :rtype: :class:`list` of :class:`MethodIdentifier` + :return: List of method identifiers of the methods exposed by this + interface + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class MethodDefinition: + """ + This class contains detailed information about a vAPI method. This should + contain all the information required to address a method in the vAPI + runtime. + """ + + def __init__(self, id_, input_, output, errors) -> None: + """ + Initialize MethodDefinition + + :type id_: :class:`MethodIdentifier` + :param id_: MethodIdentifier of this method + :type input_: :class:`vmware.vapi.data.definition.StructDefinition` + :param input_: Struct definition corresponding to the method's input + parameters + :type output: :class:`vmware.vapi.data.definition.DataDefinition` + :param output: Data definition of the method's output + :type errors: iterable of + :class:`vmware.vapi.data.definition.ErrorDefinition` + :param errors: Error definitions describing the errors that this method + can report + """ + ... + + def get_identifier(self): # -> Any: + """ + Returns the method identifier + + :rtype: :class:`MethodIdentifier` + :return: MethodIdentifier of this method + """ + ... + + def get_input_definition(self): # -> Any: + """ + Returns the struct definition corresponding to the method's input + parameters. The field names in the struct definition are the parameter + names and the field values correspond to the data definition of the + respective fields. + + :rtype: :class:`vmware.vapi.data.definition.StructDefinition` + :return: StructDefinition correspoding to the method's input + """ + ... + + def get_output_definition(self): # -> Any: + """ + Returns the data definition of the method's output + + :rtype: :class:`vmware.vapi.data.definition.DataDefinition` + :return: Data definition of the method's output + """ + ... + + def get_error_definitions(self): # -> frozenset[Any]: + """ + Returns a set of error definitions describing the errors that this + method can report + + :rtype: :class:`set` of + :class:`vmware.vapi.data.definition.ErrorDefinition` + :return: Set of error definitions describing the errors that this + method can report + """ + ... + + def get_error_definition(self, error_name): # -> None: + """ + Returns the error definition with the specified name reported by this + method or None if this method doesn't report an error with the specified + name. + + :type error_name: :class:`str` + :param error_name: Name of the error definition to return + :rtype: :class:`vmware.vapi.data.definition.ErrorDefinition` + :return: Error definition with the specified name reported by this + method or None if this method doesn't report an error with the + specified name. + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class MethodResult: + """ + The MethodResult class contains the result of a method call. + It contains either the output of the method invocation or + an error reported by the method invocation. These are mutually + exclusive. + + :type output: :class:`vmware.vapi.data.value.DataValue` + :ivar output: Method output + :type error: :class:`vmware.vapi.data.value.ErrorValue` + :ivar error: Method error + """ + + def __init__(self, output=..., error=...) -> None: + """ + Initialize MethodResult + + :type output: :class:`vmware.vapi.data.value.DataValue` + :param output: Method output + :type error: :class:`vmware.vapi.data.value.ErrorValue` + :param error: Method error + """ + ... + + @property + def output(self): # -> None: + """ + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Method output + """ + ... + + @property + def error(self): # -> None: + """ + :rtype: :class:`vmware.vapi.data.value.ErrorValue` + :return: Method error + """ + ... + + def success(self): # -> bool: + """ + Check if the method completed successfully. + + :rtype: :class:`bool` + :return: False if the method reported an error, True otherwise + """ + ... + + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class CustomDict(dict): + """ + Interface for implementing Custom dict classes with additional constraints. + + Overriding __setitem__ as not enough for adding additional constraints on + key/value pairs of dictionaries. We also have to override update and + setdefault, so that even they use __setitem__. + """ + + def update(self, *args, **kwargs): # -> None: + ... + + def setdefault(self, key, val=...): # -> None: + ... + +class ApplicationContext(CustomDict): + """ + Interface representing additional data associated with the request for + method execution represented by this ExecutionContext. + The additional data format is key-value pairs of String. + + This additional data is provided by the client initiating the + execution, it is then transported as is over the wire and is + available for the provider-side service implementations on the server. + This extra data is completely opaque for the infrastructure, in other + words it is a contract between the client and the service implementation + only. + """ + + def __init__(self, *args, **kwargs) -> None: ... + def __setitem__(self, key, value): # -> None: + ... + + def __repr__(self): # -> str: + ... + +class SecurityContext(CustomDict): + """ + Implementations of this interface will provide all needed data for + authentication for the given invocation. + """ + + def __init__(self, *args, **kwargs) -> None: ... + def __setitem__(self, key, value): # -> None: + ... + + def __repr__(self): # -> Literal['SecurityContext()']: + ... + + def __str__(self) -> str: ... + +class RuntimeData(CustomDict): + """ + Implementations of this interface will provide custom runtime data. + """ + + def __init__(self, *args, **kwargs) -> None: ... + def __setitem__(self, key, value): # -> None: + ... + + def __repr__(self): # -> Literal['RuntimeData()']: + ... + + def __str__(self) -> str: ... + +class ExecutionContext: + """ + This class provides out-of-band context information that is passed along + with a method invocation + """ + + def __init__( + self, application_context=..., security_context=..., runtime_data=... + ) -> None: + """ + Initialize Execution Context + """ + ... + + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... diff --git a/typings/vmware/vapi/data/definition.pyi b/typings/vmware/vapi/data/definition.pyi new file mode 100644 index 00000000..ba87ce50 --- /dev/null +++ b/typings/vmware/vapi/data/definition.pyi @@ -0,0 +1,843 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.lib.visitor import VapiVisitor + +""" +DataDefinition classes +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class DataDefinition: + """ + Base class for all types in the vAPI run-time type system + + :type type: :class:`str` + :ivar type: String representation of the type + """ + + def __init__(self, data_type=...) -> None: + """ + Initialize the data definition instance + + :type data_type: :class:`str` + :param data_type: String representation of the type + """ + ... + + def valid_instance_of(self, value): # -> bool: + """ + Validates that the specified :class:`vmware.vapi.data.value.DataValue` + is an instance of this data-definition + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: the data value to validate + + :rtype: :class:`bool` + :return: true if the value is an instance of this data-definition, + false, otherwise + """ + ... + + def validate(self, value): # -> list[Message] | None: + """ + Validates that the specified :class:`vmware.vapi.data.value.DataValue` + is an instance of this data-definition + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: the data value to validate + + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + + def complete_value(self, value): # -> None: + """ + Fill the optional fields of StructValues. Also + includes the StructValues present in other generic types: List + and Optional. + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: DataValue + """ + ... + + def accept(self, visitor): # -> None: + """ + Applies a visitor to this data-definition. + + :type visitor: :class:`SimpleDefinitionVisitor` + :param visitor: the visitor operating on this data-definition + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class SingletonDefinition(DataDefinition): + """ + Base class for all the primitive data definition classes. All the derived + classes of this class will have only one instance. + """ + + _instance = ... + def __init__(self, data_type) -> None: + """ + Initialize SingletonDefinition + + :type data_type: :class:`vmware.vapi.data.type.Type` + :param data_type: Type of the DataDefinition + """ + ... + + def __new__(cls, *args, **kwargs): # -> Self: + ... + +class VoidDefinition(SingletonDefinition): + """ + DataDefinition class for void + """ + + def __init__(self) -> None: + """ + Initialize VoidDefinition + """ + ... + + def new_value(self): + """ + Create a new VoidValue + + :rtype: :class:`vmware.vapi.data.value.VoidValue` + :return: Newly created VoidValue + """ + ... + +class IntegerDefinition(SingletonDefinition): + """ + DataDefinition for long values + """ + + def __init__(self) -> None: + """ + Initialize IntegerDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new IntegerValue + + :rtype: :class:`vmware.vapi.data.value.IntegerValue` + :return: Newly created IntegerValue + """ + ... + +class DoubleDefinition(SingletonDefinition): + """ + DataDefinition for floats + """ + + def __init__(self) -> None: + """ + Initialize DoubleDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new DoubleValue + + :rtype: :class:`vmware.vapi.data.value.DoubleValue` + :return: Newly created DoubleValue + """ + ... + +class StringDefinition(SingletonDefinition): + """ + DataDefinition for strings + """ + + def __init__(self) -> None: + """ + Initialize StringDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new StringValue + + :rtype: :class:`vmware.vapi.data.value.StringValue` + :return: Newly created StringValue + """ + ... + +class OpaqueDefinition(SingletonDefinition): + """ + DataDefinition for opaque + """ + + def __init__(self) -> None: + """ + Initialize OpaqueDefinition + """ + ... + + def validate(self, value): # -> list[Message] | None: + """ + The validation for OpaqueDefinition will succeed against + any DataValue. Only validates that supplied value is not None + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: DataValue to be validated + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + +class DynamicStructDefinition(SingletonDefinition): + """ + DataDefinition for dynamic structs + """ + + _valid_types = ... + def __init__(self) -> None: + """ + Initialize DynamicStructDefinition + """ + ... + + def validate(self, value): # -> list[Message] | None: + """ + The validation for DynamicStructDefinition will succeed against + any StructValue. + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: the data value to validate + + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + +class AnyErrorDefinition(SingletonDefinition): + """ + DataDefinition for 'Exception' type in IDL + """ + + def __init__(self) -> None: + """ + Initialize AnyErrorDefinition + """ + ... + + def validate(self, value): # -> list[Message] | None: + """ + The validation for AnyErrorDefinition will succeed against + any ErrorValue. + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: the data value to validate + + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + +class BlobDefinition(SingletonDefinition): + """ + DataDefinition for binary values + """ + + def __init__(self) -> None: + """ + Initialize BlobDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new BlobValue + + :rtype: :class:`vmware.vapi.data.value.BlobValue` + :return: Newly created BlobValue + """ + ... + +class BooleanDefinition(SingletonDefinition): + """ + DataDefinition for bool values + """ + + def __init__(self) -> None: + """ + Initialize BooleanDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new BooleanValue + + :rtype: :class:`vmware.vapi.data.value.BooleanValue` + :return: Newly created BooleanValue + """ + ... + +class ListDefinition(DataDefinition): + """ + DataDefinition for lists + """ + + def __init__(self, element_type) -> None: + """ + Initialize ListDefinition + + :type element_type: :class:`DataDefinition` + :param element_type: DataDefinition of the elements inside + ListDefinition + """ + ... + + def new_value(self, values=...): + """ + Create a new ListValue + + :type values: :class:`list` of + :class:`vmware.vapi.data.value.DataValue` + :param values: List of elements + :rtype: :class:`vmware.vapi.data.value.ListValue` + :return: Newly created ListValue + """ + ... + + def validate(self, list_value): # -> list[Message] | None: + """ + Apart from the validation checks specified in the validate + method of DataDefinition class, this method does some additional checks + + Validation will fail if any element in the ListValue does not validate + against the DataDefinition of the elementType of this ListDefinition + + :type other: :class:`vmware.vapi.data.value.ListValue` + :param other: ListValue to be validated + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + + def complete_value(self, value): # -> None: + """ + Fill the optional values inside StructValues + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: DataValue + """ + ... + + def __eq__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class StructDefinition(DataDefinition): + """ + DataDefinition for structures + """ + + def __init__(self, name, fields, data_type=...) -> None: + """ + Initialize StructDefinition + + :type name: :class:`str` + :param name: Name of the Structure + :type fields: :class:`tuple` of (:class:`str`, :class:`DataDefinition`) + :param fields: A tuple consisting of the field name and the field + definition for all the fields inside this + StructDefinition + """ + ... + + def new_value(self): + """ + Create a new StructValue + + :rtype: :class:`vmware.vapi.data.value.StructValue` + :return: Newly created StructValue + """ + ... + + def get_field_names(self): # -> list[Any]: + """ + Returns the list of field names in this struct definition. The ordering + of fields is not preserved. + + :rtype: :class:`list` of :class:`str` + :return: List of field names in this struct definition + """ + ... + + def get_field(self, field): # -> None: + """ + Returns the field definition of the specified field + + :rtype: :class:`DataDefinition` + :return: field definition of the specified field + """ + ... + + def validate(self, other): # -> list[Message] | None: + """ + Apart from the validation checks specified in the validate + method of DataDefinition class, this method does some additional checks + + Validation will fail if + - the name of the input StructValue does not match the name of this + StructDefinition. + - any of the fields (either required or optional) in this + StructDefinition are not present in the input StructValue + - the validation fails for any field value in the input StructValue with + its corresponding definition in this StructDefinition + + The method performs inclusive validation. i.e. If there are any extra + fields in the input StructValue which are not present in the + StructDefinition, validation will not fail. + + :type other: :class:`vmware.vapi.data.value.StructValue` + :param other: StructValue to be validated + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + + def complete_value(self, value): # -> None: + """ + Fill out all the unset optional fields in a structure + based on the StructDefinition + + :type value: :class:`vmware.vapi.data.value.StructValue` + :param value: Input Struct Value + """ + ... + + def __eq__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class StructRefDefinition(DataDefinition): + """ + Reference to a StructDefinition. If the reference is resolved, it is + bound to a specific StructDefinition target. If the reference is + unresolved, its target is None. + + :type name: :class:`str` + :ivar name: Structure name + """ + + def __init__(self, name, definition=...) -> None: + """ + Initialize StructRefDefinition + + :type name: :class:`str` + :param name: Structure name + :type definition: :class:`DataDefinition` + :param definition: If definition is passed, it creates a resolved + reference + """ + ... + + @property + def target(self): # -> None: + """ + Returns the target structure definition of this reference. + + :rtype: :class:`DataDefinition` or ``None`` + :return: The target of this reference. The value will be None for + unresolved reference + """ + ... + + @target.setter + def target(self, definition): # -> None: + """ + Resolves the reference. An unresolved reference can be resolved exactly + once. A resolved reference cannot be re-resolved. + + :type definition: :class:`DataDefinition` + :param definition: structure definition + :raise: :class:`vmware.vapi.exception.CoreException`: if the reference + is already resolved (already has) a target) or if the name of the + reference does not match the name of the definition + """ + ... + + def check_resolved(self): # -> None: + """ + Check if the reference is resolved or not + """ + ... + + def complete_value(self, value): # -> None: + """ + Fill out all the unset optional fields in a structure + based on the resolved StructDefinition for this + StructRefDefinition. + + :type value: :class:`vmware.vapi.data.value.StructValue` + :param value: Input StructValue + """ + ... + + def validate(self, other): # -> Generator[Any, Any, None]: + """ + Validate using the target if the reference is resolved + + :type other: :class:`vmware.vapi.data.value.StructValue` + :param other: StructValue to be validated + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` of + ``None`` + :return: a stack of messages indicating that the reference is not + resolved or why the value is not an instance of this + data-definition, or None if the value is an instance of + this data-definition + """ + ... + + def __eq__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> LiteralString: + ... + +class ErrorDefinition(StructDefinition): + """ + DataDefinition for errors + """ + + def __init__(self, name, fields) -> None: + """ + Initialize ErrorDefinition + + :type name: :class:`str` + :param name: Name of the Error + :type fields: :class:`tuple` of (:class:`str`, :class:`DataDefinition`) + :param fields: A tuple consisting of the field name and the field + definition for all the fields inside this + StructDefinition + """ + ... + + def new_value(self): + """ + Create a new ErrorValue + + :rtype: :class:`vmware.vapi.data.value.ErrorValue` + :return: Newly created ErrorValue + """ + ... + +class OptionalDefinition(DataDefinition): + """ + An OptionalDefinition instance defines an optional type with a specified + element type + + :type data_type: :class:`str` + :ivar type: String representation of the type + :type element_type: :class:`DataDefinition` + :ivar element_type: The type of the element that is optional + """ + + def __init__(self, element_type) -> None: + """ + Initialize OptionalDefinition + + :type element_type: :class:`vmware.vapi.data.type.Type` + :param element_type: Type of the DataDefinition + """ + ... + + def new_value(self, value=...): + """ + Create and return a new :class:`OptionalValue` using this + optional-definition. + + :type value: :class:`vmware.vapi.data.value.DataValue` + :param value: The element value + + :rtype: :class:`vmware.vapi.data.value.OptionalValue` + :return: A new optional value using the given data-definition + """ + ... + + def validate(self, value): # -> list[Message] | None: + """ + Apart from the validation checks specified in the validate + method of DataDefinition class, this method does some additional checks. + + Since this is an OptionalValue, validation will succeed if the + element value is None. If the element value is not None, validation + will fail if element in the OptionalValue does not validate against + the DataDefinition of the element_type of this OptionalDefinition. + + :type other: :class:`vmware.vapi.data.value.OptionalValue` + :param other: OptionalValue to be validated + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + :return: a stack of messages indicating why the value is not an instance + of this data-definition, or None if the value is an instance of + this data-definition + """ + ... + + def complete_value(self, value): # -> None: + """ + Fill the optional values inside StructValues + + :type value: :class:`vmware.vapi.data.value.OptionalValue` + :param value: DataValue + """ + ... + + def __eq__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> str: + ... + +class SecretDefinition(SingletonDefinition): + """ + DataDefinition for Secrets. Only strings are allowed to be secrets. + """ + + def __init__(self) -> None: + """ + Initialize SecretDefinition + """ + ... + + def new_value(self, value=...): + """ + Create a new SecretValue + + :rtype: :class:`vmware.vapi.data.value.SecretValue` + :return: Newly created SecretValue + """ + ... + +class SimpleDefinitionVisitor(VapiVisitor): + """ + Base no-op implementation of a definition visitor + """ + + def __init__(self) -> None: ... + def visit_void(self, defn): + """ + Visit a VoidDefinition + + :type defn: :class:`VoidDefinition` + :param defn: Data definition + """ + ... + + def visit_integer(self, defn): + """ + Visit a IntegerDefinition + + :type defn: :class:`IntegerDefinition` + :param defn: Data definition + """ + ... + + def visit_double(self, defn): + """ + Visit a DoubleDefinition + + :type defn: :class:`DoubleDefinition` + :param defn: Data definition + """ + ... + + def visit_string(self, defn): + """ + Visit a StringDefinition + + :type defn: :class:`StringDefinition` + :param defn: Data definition + """ + ... + + def visit_opaque(self, defn): + """ + Visit a OpaqueDefinition + + :type defn: :class:`OpaqueDefinition` + :param defn: Data definition + """ + ... + + def visit_blob(self, defn): + """ + Visit a BlobDefinition + + :type defn: :class:`BlobDefinition` + :param defn: Data definition + """ + ... + + def visit_boolean(self, defn): + """ + Visit a BooleanDefinition + + :type defn: :class:`BooleanDefinition` + :param defn: Data definition + """ + ... + + def visit_list(self, defn): + """ + Visit a ListDefinition + + :type defn: :class:`ListDefinition` + :param defn: Data definition + """ + ... + + def visit_struct(self, defn): + """ + Visit a StructDefinition + + :type defn: :class:`StructDefinition` + :param defn: Data definition + """ + ... + + def visit_error(self, defn): + """ + Visit an ErrorDefinition + + :type defn: :class:`ErrorDefinition` + :param defn: Data definition + """ + ... + + def visit_optional(self, defn): + """ + Visit a OptionalDefinition + + :type defn: :class:`OptionalDefinition` + :param defn: Data definition + """ + ... + + def visit_secret(self, defn): + """ + Visit a SecretDefinition + + :type defn: :class:`SecretDefinition` + :param defn: Data definition + """ + ... + + def visit_struct_ref(self, defn): + """ + Visit a StructRefDefinition + + :type defn: :class:`StructRefDefinition` + :param defn: StructRefDefinition object + """ + ... + +data_type_to_definition_map = ... + +def data_definition_factory(data_type, *args, **kwargs): + """ + data definition factory + + :type data_type: :class:`str` + :param data_type: Type name defined in vmware.vapi.data.type + :type args: :class:`set` + :param args: Positional arguments to data definition constructor + :type kwargs: :class:`dict` + :param kwargs: Dict arguments to data definition constructor + """ + ... + +class ReferenceResolver: + """ + Resolves all the StructRefDefinition objects + """ + + def __init__(self) -> None: + """ + Initialize ReferenceResolver + """ + ... + + def add_definition(self, definition): # -> None: + """ + Adds a new structure definition to the context + + :type definition: :class:`StructDefinition` + :param definition: StructDefinition + """ + ... + + def add_reference(self, reference): # -> None: + """ + Adds a new structure refernce to the context + + :type refernce: :class:`StructRefDefinition` + :param refernce: StructRefDefinition + """ + ... + + def is_defined(self, name): # -> bool: + """ + Determines whether the context contains a definition for the specified + structure + + :rtype: :class:`bool` + :return: True if the structure is already defined, false otherwise + """ + ... + + def get_definition(self, name): # -> None: + """ + Determines whether the context contains a definition for the specified + structure + + :rtype: :class:`StructDefinition` + :return: Definition if the structure if it is already defined, + None otherwise + """ + ... + + def resolve(self): # -> None: + """ + Traverses all references and resolves the unresolved ones. + """ + ... diff --git a/typings/vmware/vapi/data/serializers/__init__.pyi b/typings/vmware/vapi/data/serializers/__init__.pyi new file mode 100644 index 00000000..6b1e0190 --- /dev/null +++ b/typings/vmware/vapi/data/serializers/__init__.pyi @@ -0,0 +1,5 @@ +""" +This type stub file was generated by pyright. +""" + +import pkg_resources diff --git a/typings/vmware/vapi/data/serializers/cleanjson.pyi b/typings/vmware/vapi/data/serializers/cleanjson.pyi new file mode 100644 index 00000000..3806a6e9 --- /dev/null +++ b/typings/vmware/vapi/data/serializers/cleanjson.pyi @@ -0,0 +1,189 @@ +""" +This type stub file was generated by pyright. +""" + +import json + +""" +Serializer vAPI data values to clean (human readable/writable) json documents +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class DataValueToJSONEncoder(json.JSONEncoder): + """ + Custom JSON encoder that converts vAPI runtime values directly + into JSON string representation. + """ + + def __init__(self, *args, **kwargs) -> None: ... + def encode(self, value): + """ + Encode a given vAPI runtime object + + :type value: :class:`object` + :param value: vAPI runtime object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_struct_value(self, value): # -> str: + """ + Visit a StructValue object + + :type value: :class:`vmware.vapi.data.value.StructValue` + :param value: Struct value object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_list(self, value): # -> LiteralString: + """ + Visit a ListValue object + + :type value: :class:`vmware.vapi.data.value.ListValue` + :param value: List value object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_optional_value(self, value): # -> Literal['null']: + """ + Visit a OptionalValue object + + :type value: :class:`vmware.vapi.data.value.OptionalValue` + :param value: Optional value object + :rtype: :class:`str` + :return: JSON string + """ + ... + + @staticmethod + def visit_double_value(value): # -> str: + """ + Visit a DoubleValue object + + :type value: :class:`vmware.vapi.data.value.DoubleValue` + :param value: Double value object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_primitive_value(self, value): # -> str: + """ + Visit one of StringValue, IntegerValue, BooleanValue or VoidValue + + :type value: :class:`vmware.vapi.data.value.StringValue` (or) + :class:`vmware.vapi.data.value.IntegerValue` (or) + :class:`vmware.vapi.data.value.BooleanValue` (or) + :class:`vmware.vapi.data.value.VoidValue` (or) + :param value: StringValue, IntegerValue, BooleanValue or + VoidValue object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_blob_value(self, value): # -> str: + """ + Visit BlobValue + + :type value: :class:`vmware.vapi.data.value.BlobValue` + :param value: BlobValue object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def visit_default(self, value): # -> str: + """ + This is the default visit method if the type of the input value + does not match any type in the keys present in dispatch map. + + :type value: :class:`object` + :param value: Python object + :rtype: :class:`str` + :return: JSON string + """ + ... + +class DataValueToRestJSONEncoder(DataValueToJSONEncoder): + """ + Custom JSON encoder that converts vAPI runtime values directly + into REST 2018 JSON string representation. + """ + + def __init__(self, *args, **kwargs) -> None: ... + def visit_list(self, value): # -> LiteralString: + """ + Visit a ListValue object + + :type value: :class:`vmware.vapi.data.value.ListValue` + :param value: List value object + :rtype: :class:`str` + :return: JSON string + """ + ... + + def map_entry(self, value): # -> LiteralString: + """ + Visit a StructValue object + + :type value: :class:`vmware.vapi.data.value.StructValue` + :param value: Struct value object + :rtype: :class:`str` + :return: JSON string + """ + ... + +class JsonDictToVapi: + """Clean Json dict to vapi data value""" + + def __init__(self) -> None: ... + def data_value(self, obj): + """ + Convert json object to data value + + :type obj: :class:`object` + :param obj: Python object + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Data value + """ + ... + +class DataValueConverter: + """ + Converter class that converts values from vAPI DataValue to clean + JSON objects and back. + """ + + @staticmethod + def convert_to_json(data_value, new_rest=...): # -> str: + """ + Convert the given data value to a JSON string representation + + :type data_value: :class:`vmware.vapi.data.value.DataValue` + :param data_value: Data value to be converted + :type new_rest: :class:`bool` + :param new_rest: Is it a REST 2018 call + :rtype: :class:`str` + :return: JSON representation of the data value + """ + ... + + @staticmethod + def convert_to_data_value(json_string): + """ + Convert the given json string to data value + + :type json_string: :class:`str` + :param json_string: JSON representation of the data value + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Data value + """ + ... diff --git a/typings/vmware/vapi/data/serializers/introspection.pyi b/typings/vmware/vapi/data/serializers/introspection.pyi new file mode 100644 index 00000000..a00658f1 --- /dev/null +++ b/typings/vmware/vapi/data/serializers/introspection.pyi @@ -0,0 +1,39 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Convenient libraries for introspection data +""" +__author__ = ... +__copyright__ = ... +logger = ... +data_type_map = ... +reverse_data_type_map = ... + +def convert_data_def_to_data_value(data_def): # -> StructValue: + """ + Convert :class:`vmware.vapi.data.definition.DataDefinition` object to + :class:`vmware.vapi.data.value.DataValue` object. The type of the object + returned is a struct value that corresponds to DataDefinition VMODL2 type + present in introspection service. + + :type data_def: :class:`vmware.vapi.data.definition.DataDefinition` + :param data_def: Data definition + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Data value representing the data definition object + """ + ... + +def convert_data_value_to_data_def(data_value): + """ + Convert :class:`vmware.vapi.data.value.DataValue` object that + corresponds to DataDefinition structure in introspection VMODL2 into + :class:`vmware.vapi.data.definition.DataDefinition` object. + + :type data_value: :class:`vmware.vapi.data.value.DataValue` + :param data_value: Data value representing the data definition object + :rtype: :class:`vmware.vapi.data.definition.DataDefinition` + :return: Data definition + """ + ... diff --git a/typings/vmware/vapi/data/serializers/python.pyi b/typings/vmware/vapi/data/serializers/python.pyi new file mode 100644 index 00000000..3e7842c5 --- /dev/null +++ b/typings/vmware/vapi/data/serializers/python.pyi @@ -0,0 +1,53 @@ +""" +This type stub file was generated by pyright. +""" + +import six + +""" +Convenience methods to convert to/from python native values to data values +""" +__author__ = ... +__copyright__ = ... +_py_type_map = ... +if six.PY2: + ... +else: + ... +_py_to_data_def_map = ... +if six.PY2: + ... + +def build_data_value(py_value, data_def): # -> StructValue: + """ + Converts a native python value to data value + using the provided data definition + + :type py_value: :class:`object` + :param py_value: Python native value + :type data_def: :class:`vmware.vapi.data.definition.DataDefinition` + :param data_def: Data definition + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Data value + """ + ... + +def build_py_value( + data_value, data_def=..., impl=... +): # -> Any | list[Any] | dict[Any, Any] | None: + """ " + Converts a data value to python native value + impl input is required to create Struct class instances + + :type data_value: :class:`vmware.vapi.data.value.DataValue` + :param data_value: Input data value + :type data_def: :class:`vmware.vapi.data.definition.DataDefinition` or + ``None`` + :param data_def: Data definition + :type impl: :class:`vmware.vapi.bindings.stub.VapiInterface` or + :class:`vmware.vapi.bindings.skeleton.VapiInterface` or ``None`` + :param impl: Python generated class to resolve structure classes + :rtype: :class:`object` + :return: Native python value + """ + ... diff --git a/typings/vmware/vapi/data/serializers/rest.pyi b/typings/vmware/vapi/data/serializers/rest.pyi new file mode 100644 index 00000000..1a55993d --- /dev/null +++ b/typings/vmware/vapi/data/serializers/rest.pyi @@ -0,0 +1,133 @@ +""" +This type stub file was generated by pyright. +""" + +""" +REST de/serializer +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class RequestSerializer: + """REST request serializer""" + + @staticmethod + def serialize_request( + input_value, ctx, rest_metadata, is_vapi_rest + ): # -> tuple[Any | None, dict[Any, Any], str, None]: + """ + Serialize the request as a REST request + + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: method input parameters + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: execution context object + :type rest_metadata: + :class:`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata: Rest request metadata + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + :rtype :class:`tuple` + :return: Tuple of URL path, HTTP headers, request body and cookies + """ + ... + + @staticmethod + def serialize_input( + input_value, rest_metadata + ): # -> tuple[Any | None, dict[Any, Any], str]: + """ + Serialize the input value + + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: method input parameters + :type rest_metadata: + :class:`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata: Rest request metadata + :rtype :class:`tuple` + :return: Tuple of URL path, HTTP headers and request body + """ + ... + + @staticmethod + def get_authorization_headers( + security_context, is_vapi_rest + ): # -> tuple[dict[Any, Any], None] | tuple[dict[str, Any | bytes], None] | tuple[dict[str, Any], None] | tuple[dict[str, str], None]: + """ + Get the authorization headers for the corresponding security context + + :type security_context: :class:`vmware.vapi.core.SecurityContext` + :param security_context: Security context + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + :rtype :class:`tuple` + :return: Tuple of HTTP headers and cookies + """ + ... + +class ResponseDeserializer: + """REST response deserializer""" + + @staticmethod + def deserialize_response(status, response_str, is_vapi_rest): # -> MethodResult: + """ + Deserialize the REST response + + :type status: :class:`int` + :param status: HTTP response status code + :type response_str: :class:`str` + :param response_str: HTTP response body + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + :rtype :class:`vmware.vapi.core.MethodResult` + :return: VAPI MethodResult + """ + ... + +class RestSerializer: + """ + Rest request de/serializer + """ + + @staticmethod + def serialize_request( + input_value, ctx, rest_metadata, is_vapi_rest + ): # -> tuple[Any | None, dict[Any, Any], str, None]: + """ + Serialize the request as a REST request + + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: method input parameters + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: execution context object + :type rest_metadata: + :class:`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata: Rest request metadata + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + :rtype :class:`tuple` + :return: Tuple of URL path, HTTP headers, request body and cookies + """ + ... + + @staticmethod + def deserialize_response(status, response_str, is_vapi_rest): # -> MethodResult: + """ + Deserialize the REST response + + :type status: :class:`int` + :param status: HTTP response status code + :type response_str: :class:`str` + :param response_str: HTTP response body + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + :rtype :class:`vmware.vapi.core.MethodResul` + :return: VAPI MethodResult + """ + ... diff --git a/typings/vmware/vapi/data/type.pyi b/typings/vmware/vapi/data/type.pyi new file mode 100644 index 00000000..a02bbc5e --- /dev/null +++ b/typings/vmware/vapi/data/type.pyi @@ -0,0 +1,30 @@ +""" +This type stub file was generated by pyright. +""" + +""" +List of Data types supported +""" +__author__ = ... +__copyright__ = ... + +class Type: + """ + Enum of all the data types used in vAPI Runtime + """ + + INTEGER = ... + DOUBLE = ... + BOOLEAN = ... + STRING = ... + BLOB = ... + LIST = ... + STRUCTURE = ... + OPTIONAL = ... + VOID = ... + OPAQUE = ... + SECRET = ... + ERROR = ... + STRUCTURE_REF = ... + DYNAMIC_STRUCTURE = ... + ANY_ERROR = ... diff --git a/typings/vmware/vapi/data/validator.pyi b/typings/vmware/vapi/data/validator.pyi new file mode 100644 index 00000000..9b7af00b --- /dev/null +++ b/typings/vmware/vapi/data/validator.pyi @@ -0,0 +1,96 @@ +""" +This type stub file was generated by pyright. +""" + +import abc +import six + +""" +Data Validator classes +""" +__author__ = ... +__copyright__ = ... +logger = ... + +@six.add_metaclass(abc.ABCMeta) +class Validator: + """ + vAPI Data object validator class + This is an abstract class. + """ + + @abc.abstractmethod + def validate(self, data_value, data_type=...): # -> None: + """ + This method validates a data value + + :type data_value :class:`vmware.vapi.data.value.DataValue` + :param data_value The struct value that needs to be validated + :type data_type :class:`vmware.vapi.binding.type.BindingType` + :param data_type The Struct binding type + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return List of error messages if validation fails or None + """ + ... + +class UnionValidator(Validator): + """ + Union Validator class that validates a struct value for union consistency + """ + + def __init__(self, discriminant_name, case_map) -> None: + """ + Initialize the union validator class + + :type discriminant_name :class:`str` + :param discriminant_name Name of a structure field that represents a + union discriminant + :type case_map :class:`dict` + :param case_map Python dict with string value of the discriminant as + dictionary key and list of tuple of structure field + associated with it and a boolean representing whether + it is rqeuired as dictionary value + """ + ... + + def validate(self, data_value, data_type=...): # -> list[Message] | None: + """ + Validates a struct value for union consistency + + :type data_value :class:`vmware.vapi.data.value.DataValue` + :param data_value The struct value that needs to be validated + :type data_type :class:`vmware.vapi.binding.type.BindingType` + :param data_type The Struct binding type + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return List of error messages if validation fails or None + """ + ... + +class HasFieldsOfValidator(Validator): + """ + HasFieldsOfValidator validator class that validates the data_value has + required fields of the class specified + """ + + def __init__(self) -> None: ... + def validate(self, data_value, data_type=...): # -> list[Message] | Any | None: + """ + Validates whether a StructValue satisfies the HasFieldsOf constraint + + :type data_value :class:`vmware.vapi.data.value.DataValue` + :param data_value The struct value that needs to be validated + :type data_type :class:`vmware.vapi.binding.type.BindingType` + :param data_type The Struct binding type + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + :rtype: :class:`list` of :class:`vmware.vapi.message.Message` + or ``None`` + :return List of error messages if validation fails or None + """ + ... diff --git a/typings/vmware/vapi/data/value.pyi b/typings/vmware/vapi/data/value.pyi new file mode 100644 index 00000000..24822aa5 --- /dev/null +++ b/typings/vmware/vapi/data/value.pyi @@ -0,0 +1,526 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.lib.visitor import VapiVisitor + +""" +vAPI DataValues +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class DataValue: + """ + A piece of introspectable value in vAPI infrastructure + + :type type: :class:`vmware.vapi.data.type.Type` + :ivar type: Type of DataValue + """ + + def __init__(self, data_type=...) -> None: + """ + Initialize DataValue + + :type data_type: :class:`vmware.vapi.data.type.Type` + :param data_type: Type of DataValue + """ + ... + + def accept(self, visitor): # -> None: + """ + Applies a visitor to this DataValue + + :type visitor: :class:`SimpleValueVisitor` + :param visitor: visitor operating on this DataValue + """ + ... + +class PrimitiveDataValue(DataValue): + """ + Base class for all primitive DataValues + + :type value: :class:`object` + :ivar value: Primitive value + """ + + def __init__(self, *args, **kwargs) -> None: ... + def __repr__(self): # -> str: + ... + +class ComparableValueMixin: + """ + Helper class to implement the rich comparator operations. + """ + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __lt__(self, other) -> bool: ... + def __gt__(self, other) -> bool: ... + def __le__(self, other) -> bool: ... + def __ge__(self, other) -> bool: ... + def __hash__(self) -> int: ... + +class IntegerValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for integer values + + :type value: :class:`int` + :ivar value: 64 bit signed int present in IntegerValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize IntegerValue + + :type value: :class:`int` + :kwarg value: Integer value to be initialized + """ + ... + +class DoubleValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for float values + + :type value: :class:`float` or :class:`decimal.Decimal` + :ivar value: 64 bit signed float present in DoubleValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize DoubleValue + + :type value: :class:`float` or :class:`decimal.Decimal` + :kwarg value: Float or decimal.Decimal value to be initialized + """ + ... + +class StringValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for strings + + :type value: :class:`str` + :ivar value: String present in StringValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize StringValue + + :type value: :class:`str` or :class:`unicode` for Python 2 and + :class:`str` for Python 3 + :kwarg value: String value to be initialized + """ + ... + +class BooleanValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for bool values + + :type value: :class:`bool` + :ivar value: Bool present in BooleanValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize BooleanValue + + :type value: :class:`bool` + :kwarg value: Bool value to be initialized + """ + ... + +class BlobValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for binary values + + :type value: :class:`str` for Python 2 and :class:`bytes` for Python 3 + :ivar value: Binary present in BlobValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize BooleanValue + + :type value: :class:`str` for Python 2 and :class:`bytes` for Python 3 + :kwarg value: Binary value to be initialized + """ + ... + +class VoidValue(PrimitiveDataValue): + """ + DataValue class for None + """ + + def __init__(self) -> None: + """ + Initialize VoidValue + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self): # -> Literal['VoidValue()']: + ... + +class ListValue(DataValue): + """ + DataValue class for lists + """ + + def __init__(self, values=..., is_map=...) -> None: + """ + Initialize ListValue + """ + ... + + def add(self, value): # -> None: + """ + Add an element to ListValue + + :type value: :class:`DataValue` + :param value: DataValue to be added + """ + ... + + def add_all(self, values): # -> None: + """ + Add all the elements from input list to ListValue + + :type values: :class:`list` of :class:`DataValue` + :param values: List of DataValues to be added + """ + ... + + def is_empty(self): # -> bool: + """ + Returns true if the list is empty + + :rtype: :class:`bool` + :return: True if the list is empty, false otherwise + """ + ... + + def size(self): # -> int: + """ + Returns the size of the list + + :rtype: :class:`int` + :return: Size of the list value + """ + ... + + def is_map(self): # -> bool: + """ + Returns true if the list is representing a VMODL2 map type + + :rtype: :class:`bool` + :return: True if the list is representing a map, false otherwise + """ + ... + + def set_map(self, is_map): # -> None: + """ + Sets if this List Value is used to represent a map + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __iter__(self): # -> Iterator[Any]: + ... + + def __len__(self): # -> int: + ... + + def __repr__(self): # -> str: + ... + +class OptionalValue(DataValue, ComparableValueMixin): + """ + DataValue class for optionals + + :type value: :class:`DataValue` + :ivar value: DataValue present in this OptionalValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize OptionalValue + + :type value: :class:`DataValue` + :kwarg value: DataValue to be used in OptionalValue + """ + ... + + def is_set(self): # -> bool: + """ + Returns true if OptionalValue has a DataValue present in it + + :rtype: :class:`bool` + :return: Returns true if OptionalValue is initialized with some + DataValue, false otherwise + """ + ... + + def __repr__(self): # -> str: + ... + +class StructValue(DataValue): + """ + DataValue class for Structures + + :type name: :class:`str` + :ivar name: Name of the structure + """ + + def __init__(self, name=..., data_type=..., values=...) -> None: + """ + Initialize StructValue + + :type name: :class:`str` or :class:`unicode` for Python 2 + :kwarg name: Name of the StructValue + :type data_type: :class:`str` + :kwarg data_type: Type of StructValue, whether structure or error. + :type values: :class:`dict` of :class:`str` and :class:`DataValue` or + :class:`dict` of :class:`unicode` and :class:`DataValue` + for Python 2 and :class:`dict` of :class:`str` and + :class:`DataValue` for Python 3 + :kwarg values: Dict of field names and field values + """ + ... + + def get_fields(self): # -> Iterator[tuple[Any, Any]]: + """ + Returns the map of field names and values present in this + StructValue. + + :rtype: :class:`dictionary-itemiterator` of :class:`str` and + :class:`DataValue` + :return: Fields in this struct value + """ + ... + + def get_field_names(self): # -> list[Any]: + """ + Returns the list of field names present in this StructValue. + The ordering of fields is not preserved. + + :rtype: :class:`list` of :class:`str` + :return: List of field names present in this StructValue + """ + ... + + def has_field(self, field): # -> bool: + """ + Returns true if the field is present in the StructValue, false otherwise + + :type field: :class:`str` + :param field: Name of the field + :rtype: :class:`bool` + :return: Returns true if the field is present in the StructValue, + false otherwise + """ + ... + + def get_field(self, field): + """ + Returns the field value of the field present in the StructValue + + :type field: :class:`str` + :param field: Name of the field + :rtype: :class:`DataValue` + :return: Returns the field value of the field present in the StructValue + """ + ... + + def set_field(self, field, value): # -> None: + """ + Set the field value for the field name passed in the argument + + :type field: :class:`str` + :param field: Name of the field + :type field: :class:`str` + :param field: Name of the field to be set + :type value: :class:`DataValue` + :param value: DataValue to be used for the field + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def keys(self): # -> Iterator[Any]: + """ + Returns the list of field names + + :rtype: :class:`list` or :class:`str` + :return: List of field names + """ + ... + +class ErrorValue(StructValue): + """ + DataValue class for Errors + """ + + def __init__(self, name=..., values=...) -> None: + """ + Initialize ErrorValue + + :type name: :class:`str` + :kwarg name: Name of the ErrorValue + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + +class SecretValue(PrimitiveDataValue, ComparableValueMixin): + """ + DataValue class for secret values. Only strings are allowed to be + secrets. + + :type value: :class:`str` + :ivar value: String present in SecretValue + """ + + def __init__(self, value=...) -> None: + """ + Initialize StringValue + + :type value: :class:`str` + :kwarg value: String value to be initialized + """ + ... + + def __repr__(self): # -> Literal['SecretValue()']: + ... + + def __str__(self) -> str: ... + +class SimpleValueVisitor(VapiVisitor): + """ + Base no-op implementation of a DataValue visitor + """ + + def __init__(self) -> None: + """ + Initialize SimpleValueVisitor + """ + ... + + def visit_void(self, value): # -> None: + """ + Visit a VoidValue + + :type value: :class:`VoidValue` + :param value: Data value + """ + ... + + def visit_integer(self, value): # -> None: + """ + Visit a IntegerValue + + :type value: :class:`IntegerValue` + :param value: Data value + """ + ... + + def visit_double(self, value): # -> None: + """ + Visit a DoubleValue + + :type value: :class:`DoubleValue` + :param value: Data value + """ + ... + + def visit_string(self, value): # -> None: + """ + Visit a StringValue + + :type value: :class:`StringValue` + :param value: Data value + """ + ... + + def visit_boolean(self, value): # -> None: + """ + Visit a BooleanValue + + :type value: :class:`BooleanValue` + :param value: Data value + """ + ... + + def visit_blob(self, value): # -> None: + """ + Visit a BlobValue + + :type value: :class:`BlobValue` + :param value: Data value + """ + ... + + def visit_list(self, value): # -> None: + """ + Visit a ListValue + + :type value: :class:`ListValue` + :param value: Data value + """ + ... + + def visit_optional(self, value): # -> None: + """ + Visit a OptionalValue + + :type value: :class:`OptionalValue` + :param value: Data value + """ + ... + + def visit_struct(self, value): # -> None: + """ + Visit a StructValue + + :type value: :class:`StructValue` + :param value: Data value + """ + ... + + def visit_error(self, value): # -> None: + """ + Visit an ErrorValue + + :type value: :class:`ErrorValue` + :param value: Data value + """ + ... + + def visit_secret(self, value): # -> None: + """ + Visit a SecretValue + + :type value: :class:`SecretValue` + :param value: Data value + """ + ... + +type_map = ... + +def data_value_factory(data_type, *args): + """ + Convenience method to create datavalues + + :type data_type: :class:`str` + :param data_type: String representation of the data value type + :param args: The argument list to be passed to the data value constructor + """ + ... diff --git a/typings/vmware/vapi/exception.pyi b/typings/vmware/vapi/exception.pyi new file mode 100644 index 00000000..d4ef7660 --- /dev/null +++ b/typings/vmware/vapi/exception.pyi @@ -0,0 +1,55 @@ +""" +This type stub file was generated by pyright. +""" + +""" +vAPI CoreException Class +""" +__author__ = ... +__copyright__ = ... + +class CoreException(Exception): + """ + This exception is raised by various components of the vAPI runtime + infrastructure to indicate failures in that infrastructure. + + Server-side the exception is caught by specific components and an + internal_server_error is reported to the client that invoked the + request. Client-side the exception may be raised for certain failures + before a request was sent to the server or after the response was + received from the server. Similarly, server-side the exception may + be raised for failures that occur when a provider implementation + invokes the vAPI runtime. + + This exception is not part of the vAPI message protocol, and it must + never be raised by provider implementations. + + :type messages: generator of :class:`vmware.vapi.message.Message` + :ivar messages: Generator of error messages describing why the Exception + was raised + """ + + def __init__(self, message, cause=...) -> None: + """ + Initialize CoreException + + :type message: :class:`vmware.vapi.message.Message` + :param message: Description regarding why the Exception was raised + :type cause: :class:`Exception` + :type cause: Exception that led to this Exception + """ + ... + + @property + def messages(self): # -> Generator[Any, Any, None]: + """ + :rtype: generator of :class:`vmware.vapi.message.Message` + :return: Generator of error messages describing why the Exception + was raised + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __str__(self) -> str: ... + def __hash__(self) -> int: ... diff --git a/typings/vmware/vapi/l10n/bundle.pyi b/typings/vmware/vapi/l10n/bundle.pyi new file mode 100644 index 00000000..91f6f9b0 --- /dev/null +++ b/typings/vmware/vapi/l10n/bundle.pyi @@ -0,0 +1,59 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.message import MessageBundle + +""" +Helper classes for creation of resource bundles +""" +__author__ = ... +__copyright__ = ... + +class PropertiesResourceBundle(MessageBundle): + """ + Class for creating resource bundles using property files in the + distributable. i.e. egg or zip file. + """ + + def __init__(self, property_files) -> None: + """ + Initialize PropertiesResourceBundle + + :type property_files: :class:`list` of :class:`tuple` or :class:`tuple` + :param property_files: List of property files to be processed. The tuple + should be of the form (package, resource_name). For ex: If a file + named runtime.properties is present in vmware.vapi package, the + tuple to be passed is ('vmware.vapi', 'runtime.properties') + """ + ... + +class FileMessageBundle(MessageBundle): + """ + Class for creating resource bundles using list of files + that contain messages + """ + + def __init__(self, message_files) -> None: + """ + Initialize FileMessageBundle + + :type message_files: :class:`list` of :class:`str` or :class:`str` + :param message_files: List of message files to be processed. Each + element in the list should be a fully qualified file path. + """ + ... + +class DictionaryResourceBundle(MessageBundle): + """ + Class for creating resource bundles using dictionary of messages + """ + + def __init__(self, msgs) -> None: + """ + Initialize DictionaryResourceBundle + + :type msgs: :class:`dict` + :param msgs: Message bundle + """ + ... diff --git a/typings/vmware/vapi/l10n/formatter.pyi b/typings/vmware/vapi/l10n/formatter.pyi new file mode 100644 index 00000000..1a9a0b64 --- /dev/null +++ b/typings/vmware/vapi/l10n/formatter.pyi @@ -0,0 +1,32 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.message import MessageFormatter + +""" +Helper classes for formatting the message for localization +""" +__author__ = ... +__copyright__ = ... + +class StringFormatter(MessageFormatter): + """ + Format the string + """ + + string_template = ... + format_specifier = ... + @classmethod + def format_msg(cls, msg, args): # -> LiteralString: + """ + Format the string + + :type msg: :class:`str` + :param msg: Message template + :type args: :class:`list` of :class:`object` + :param args: Arguments for the message + :rtype: :class:`str` + :return: Localized message + """ + ... diff --git a/typings/vmware/vapi/l10n/runtime.pyi b/typings/vmware/vapi/l10n/runtime.pyi new file mode 100644 index 00000000..069d9e02 --- /dev/null +++ b/typings/vmware/vapi/l10n/runtime.pyi @@ -0,0 +1,21 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Helper class for internationalization of the runtime messages +""" +__author__ = ... +__copyright__ = ... + +def get_runtime_message_factory(): # -> MessageFactory: + """ + Default message factory. Load the runtime message bundle from + the egg file + + :rtype: :class:`vmware.vapi.message.MessageFactory` + :return: Message factory class for the runtime + """ + ... + +message_factory = ... diff --git a/typings/vmware/vapi/lib/connect.pyi b/typings/vmware/vapi/lib/connect.pyi new file mode 100644 index 00000000..89e5a5e6 --- /dev/null +++ b/typings/vmware/vapi/lib/connect.pyi @@ -0,0 +1,118 @@ +""" +This type stub file was generated by pyright. +""" + +""" +vAPI Connection factory +""" +__author__ = ... +__copyright__ = ... +REQUESTS_RPC_PROVIDER_NAME = ... + +def check_file_exists(filename): # -> None: + """ + Check if name is a file and exists + + :type :class:`str` + :param file name + """ + ... + +def get_connector( + rpc_provider_name, msg_protocol, ssl_context=..., **kwargs +): # -> Any | None: + """ + Create a connection to the vAPI Provider using the specified arguments + + :type rpc_provider_name: :class:`str` + :param rpc_provider_name: The RPC provider to be used for the connection. + Valid values are 'http', 'https' and 'requests' + :type msg_protocol: :class:`str` + :param msg_protocol: The message protocol to be used for the connection. + Valid values are 'json'. + :type ssl_context: :class:`OpenSSL.SSL.Context` + :param ssl_context: SSL context to use for SSL connections + :param kwargs: Additional arguments for the RPC provider + + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connection to the vAPI provider + """ + ... + +def get_saml_hok_connector( + rpc_provider_name, msg_protocol=..., ssl_context=..., **kwargs +): # -> Any | None: + """ + Create a connection that uses SAML Hok based authentication + to connect to a vAPI Provider + + :type rpc_provider_name: :class:`str` + :param rpc_provider_name: The RPC provider to be used for the connection. + Valid values are 'http', 'https' or 'requests' + :type msg_protocol: :class:`str` + :param msg_protocol: The message protocol to be used for the connection. + Valid values are 'json'. + :type ssl_context: :class:`OpenSSL.SSL.Context` + :param ssl_context: SSL context to use for SSL connections + :type kwargs: :class:`dict` of :class:`str` and :class:`object` + :param kwargs: Additional arguments for the RPC provider + + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connection to the vAPI provider + """ + ... + +def get_requests_connector( + session, + msg_protocol=..., + url=..., + timeout=..., + pool_size=..., + provider_filter_chain=..., +): # -> Any | None: + """ + Create a connection that uses 'requests' library for http(s) connections to + a vAPI Provider. + + :type session: :class:`requests.Session` + :param session: Session object + :type msg_protocol: :class:`str` + :param msg_protocol: Message protocol to be used for the connection. Valid + values are 'json'. + :type url: :class:`str` + :param url: HTTP(S) URL to be used + :type timeout: :class:`int` + :param timeout: Request timeout + :type pool_size: :class:`int` + :param pool_size: Connection pool size to be used + :type provider_filter_chain: :class:`list` of + :class:`vmware.vapi.provider.filter.ApiProviderFilter` + :param provider_filter_chain: List of API filters in order they are to be + chained + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connection to the vAPI provider + """ + ... + +def get_requests_hok_connector( + session, msg_protocol=..., url=..., timeout=..., pool_size=... +): # -> Any | None: + """ + Create a connection that uses SAML Hok based authentication using 'requests' + library to connect to a vAPI Provider. + + :type session: :class:`requests.Session` + :param session: Session object + :type msg_protocol: :class:`str` + :param msg_protocol: Message protocol to be used for the connection. Valid + values are 'json'. + :type url: :class:`str` + :param url: HTTP(S) URL to be used + :type timeout: :class:`int` + :param timeout: Request timeout + :type pool_size: :class:`int` + :param pool_size: Connection pool size to be used + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connection to the vAPI provider + """ + ... diff --git a/typings/vmware/vapi/lib/constants.pyi b/typings/vmware/vapi/lib/constants.pyi new file mode 100644 index 00000000..1f05218e --- /dev/null +++ b/typings/vmware/vapi/lib/constants.pyi @@ -0,0 +1,94 @@ +""" +This type stub file was generated by pyright. +""" + +""" +String Constants used in vAPI runtime +""" +__author__ = ... +__copyright__ = ... +PARAMS = ... +SCHEME_ID = ... +AUTHN_IDENTITY = ... +EXECUTION_CONTEXT = ... +APPLICATION_CONTEXT = ... +SECURITY_CONTEXT = ... +PROCESSORS = ... +OPID = ... +SHOW_UNRELEASED_APIS = ... +TASK_OPERATION = ... +TASK_ID = ... +TASK_REST_QUERY_PARAM = ... +REST_OP_ID_HEADER = ... +MAP_ENTRY = ... +MAP_STRUCT = ... +OPERATION_INPUT = ... +DYNAMIC_STRUCTURE = ... +JSONRPC = ... +JSON_CONTENT_TYPE = ... +HTTP_ACCEPT_HEADER = ... +HTTP_USER_AGENT_HEADER = ... +HTTP_CONTENT_TYPE_HEADER = ... +HTTP_ACCEPT_LANGUAGE = ... +HTTP_FORMAT_LOCALE = ... +HTTP_TIMEZONE = ... +LOCALE = ... +VAPI_ERROR_HEADER = ... +VAPI_HEADER_PREFIX = ... +VAPI_SERVICE_HEADER = ... +VAPI_OPERATION_HEADER = ... +VAPI_SESSION_HEADER = ... +header_mapping_dict = ... + +class Introspection: + """ + String constants used in introsection service + """ + + PACKAGE = ... + PROVIDER_SVC = ... + SERVICE_SVC = ... + OPERATION_SVC = ... + DATA_DEFINITION = ... + +class RestAnnotations: + """ + String constants used in REST annotations in VMODL definition + """ + + REQUEST_MAPPING = ... + PATH_VARIABLE = ... + QUERY_VARIABLE = ... + METHOD_ELEMENT = ... + VALUE_ELEMENT = ... + ACTION_PARAM = ... + PARAMS_ELEMENT = ... + PATH_ELEMENT = ... + HEADERS_ELEMENT = ... + NAME_ELEMENT = ... + RESPONSE_ELEMENT = ... + HEADER_ELEMENT = ... + BODY_ELEMENT = ... + VERB_GET = ... + VERB_POST = ... + VERB_PUT = ... + VERB_PATCH = ... + VERB_DELETE = ... + +class RestAnnotationType: + """ + Rest annotation type in VMODL definition + """ + + NONE = ... + REQUEST = ... + VERB = ... + +class TaskType: + """ + Task types + """ + + NONE = ... + TASK = ... + TASK_ONLY = ... diff --git a/typings/vmware/vapi/lib/context.pyi b/typings/vmware/vapi/lib/context.pyi new file mode 100644 index 00000000..1c425d25 --- /dev/null +++ b/typings/vmware/vapi/lib/context.pyi @@ -0,0 +1,82 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Factory methods for creating application context +""" +__author__ = ... +__copyright__ = ... + +def create_operation_id(): # -> str: + """ + Create a new operation id. It is a randomly generated uuid + + :rtype: :class:`str` + :return: Newly created operation id + """ + ... + +def create_default_application_context(): # -> ApplicationContext: + """ + Create a default application context. The + created context will only have opId. + + :rtype: :class:`vmware.vapi.core.ApplicationContext` + :return: Newly created application context + """ + ... + +def insert_operation_id(app_ctx): # -> None: + """ + Add an operation id to the application context if there is none present. + If an operation id is present, then this is a no op. + + :type app_ctx: :class:`vmware.vapi.core.ApplicationContext` + :param app_ctx: Application context + """ + ... + +def insert_task_id(app_ctx, task_id): # -> None: + """ + Add a task id to the application context. + + :type app_ctx: :class:`vmware.vapi.core.ApplicationContext` + :param app_ctx: Application Context + :type task_id: :class:`str` + :param task_id: Task Id + """ + ... + +def remove_task_id(app_ctx): # -> None: + """ + Remove a task id from the application context. + + :type app_ctx: :class:`vmware.vapi.core.ApplicationContext` + :param app_ctx: Application Context + """ + ... + +def get_task_id(): # -> Any | None: + """ + Return task id stored in application context. + Return None if there's no task id present. + + :rtype: :class:`str` + :return: Task Id + """ + ... + +def insert_header(app_ctx, key, value): # -> None: + """ + Add a key, value pair in application context. + If the key exists override the value. + + :type app_ctx: :class:`vmware.vapi.core.ApplicationContext` + :param app_ctx: Application Context + :type key: :class:`str` + :param key: Application context key + :type value: :class:`str` + :param value: Application context key value + """ + ... diff --git a/typings/vmware/vapi/lib/converter.pyi b/typings/vmware/vapi/lib/converter.pyi new file mode 100644 index 00000000..87750801 --- /dev/null +++ b/typings/vmware/vapi/lib/converter.pyi @@ -0,0 +1,136 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Convenience methods for converting variable names +""" +__author__ = ... +__copyright__ = ... + +class Converter: + """ + Convenience methods for converting variable names + """ + + _mixedcase_to_underscore = ... + _underscore_to_mixedcase = ... + @staticmethod + def capitalize(name): + """ + Capitalize the first letter of the name + + :type name: :class:`str` + :param name: name to be converted + + :rtype: :class:`str` + :return: name with first letter capitalized + """ + ... + + @staticmethod + def uncapitalize(name): + """ + Uncapitalize the first letter of the name + + :type name: :class:`str` + :param name: name to be converted + + :rtype: :class:`str` + :return: name with first letter uncapitalized + """ + ... + + @staticmethod + def mixedcase_to_underscore(name): # -> str: + """ + Convert from mixedCase to lower_case_with_underscore format + + :type name: :class:`str` + :param name: name in mixedCase format + + :rtype: :class:`str` + :return: name in lower_case_with_underscore format + """ + ... + + @staticmethod + def underscore_to_mixedcase(name): # -> str: + """ + Convert from lower_case_with_underscore to mixedCase format + + :type name: :class:`str` + :param name: name in lower_case_with_underscore + + :rtype: :class:`str` + :return: name in mixedCase + """ + ... + + @staticmethod + def capwords_to_underscore(name): # -> str: + """ + Convert from CapWords to lower_case_with_underscore format + + :type name: :class:`str` + :param name: name in CapWords format + + :rtype: :class:`str` + :return: name in lower_case_with_underscore format + """ + ... + + @staticmethod + def underscore_to_capwords(name): + """ + Convert from lower_case_with_underscore to CapWords format + + :type name: :class:`str` + :param name: name in lower_case_with_underscore + + :rtype: :class:`str` + :return: name in CapWords + """ + ... + + @staticmethod + def unreserve_name(name): + """ + Converts the argument if it clashes with a python keyword. If the string + matches a keyword, adds a trailing underscore, else it returns the same + string + + :type name: :class:`str` + :param name: The string to be converted + + :rtype: :class:`str` + :return: The converted string + """ + ... + + @staticmethod + def pepify(name): + """ + Converts the argument into a name that conforms to PEP8 standard. + i.e. lower_case_with_underscore + + :type name: :class:`str` + :param name: The string to be converted + + :rtype: :class:`str` + :return: The converted string + """ + ... + + @staticmethod + def canonical_to_pep(name): + """ + Converts the argument from vAPI canonical format to PEP8 compliant + parameter or attribute name + + :type name: :class:`str` + :param name: The string to be converted + :rtype: :class:`str` + :return: The converted string + """ + ... diff --git a/typings/vmware/vapi/lib/jsonlib.pyi b/typings/vmware/vapi/lib/jsonlib.pyi new file mode 100644 index 00000000..a7db704b --- /dev/null +++ b/typings/vmware/vapi/lib/jsonlib.pyi @@ -0,0 +1,44 @@ +""" +This type stub file was generated by pyright. +""" + +import json + +""" +JSON encoder for double values +""" +__author__ = ... +__copyright__ = ... +logger = ... + +def canonicalize_double(obj): # -> str: + """ + Canonicalize double based on XML schema double canonical format + + The exponent must be indicated by "E". Leading zeroes and the + preceding optional "+" sign are prohibited in the exponent. If the + exponent is zero, it must be indicated by "E0". For the mantissa, the + preceding optional "+" sign is prohibited and the decimal point is + required. Leading and trailing zeroes are prohibited subject to the + following: number representations must be normalized such that there + is a single digit which is non-zero to the left of the decimal point + and at least a single digit to the right of the decimal point unless + the value being represented is zero. The canonical representation + for zero is 0.0E0 + http://www.w3.org/TR/xmlschema-2/#double + + :type obj: :class:`decimal.Decimal` + :param obj: Decimal object to be canonicalized + :rtype: :class:`str` + :return: Canonical string representation of the decimal + """ + ... + +class DecimalEncoder(json.JSONEncoder): + """ + Class that adds capability of encoding decimal + in JSON + """ + + def default(self, obj): # -> Generator[text_type, None, None] | Any: + ... diff --git a/typings/vmware/vapi/lib/load.pyi b/typings/vmware/vapi/lib/load.pyi new file mode 100644 index 00000000..b2dd9f2f --- /dev/null +++ b/typings/vmware/vapi/lib/load.pyi @@ -0,0 +1,32 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Convenience methods for dynamic loading +""" +__author__ = ... +__copyright__ = ... +logger = ... + +def dynamic_import(constructor): # -> Any | None: + """ + Dynamically import a module and get the specified module attribute + + :type constructor: :class:`str` + :param constructor: Fully qualified module attribute + :rtype: :class:`object` + :return: Python object + """ + ... + +def dynamic_import_list(constructors): # -> list[Any | None]: + """ + Dynamically import a list of modules + + :type constructors: :class:`list` of :class:`str` + :param constructors: List of fully qualified module attributes + :rtype: :class:`list` of :class:`object` + :return: List of imported python objects + """ + ... diff --git a/typings/vmware/vapi/lib/log.pyi b/typings/vmware/vapi/lib/log.pyi new file mode 100644 index 00000000..abd07a85 --- /dev/null +++ b/typings/vmware/vapi/lib/log.pyi @@ -0,0 +1,64 @@ +""" +This type stub file was generated by pyright. +""" + +import logging + +""" +Helper functions for configuring logging in vapi runtime +""" +__author__ = ... +__copyright__ = ... +NO_OP_ID_MSG = ... + +def get_raw_request_logger(): # -> Logger: + """ + Return the raw request logger that is not propagated to root logger and + disabled by default. + :rtype: :class:`logging.Logger` + :return: Raw request logger + """ + ... + +def get_client_wire_logger(): # -> Logger: + """ + Return the client wire logger that is not propagated to root logger and + disabled by default. It is used to log raw wire request/responses + :rtype: :class:`logging.Logger` + :return: Raw request logger + """ + ... + +def get_provider_wire_logger(): # -> Logger: + """ + Return the provider wire logger that is not propagated to root logger and + disabled by default. It is used to log raw wire request/responses + :rtype: :class:`logging.Logger` + :return: Raw request logger + """ + ... + +class VapiFilter(logging.Filter): + """ + This is a filter that injects operation id into the log record + """ + + def filter(self, record): # -> Literal[True]: + ... + +_vapi_filter = ... + +def get_vapi_logger(logger_name): # -> Logger: + """ + Return a logger that is compatible with the VAPI provider log formats. + Currently, it only adds the VapiFilter + + :rtype: :class:`logging.Logger` + :return: Vapi provider logger + """ + ... + +PROVIDER_WIRE_LOGGER_NAME = ... +CLIENT_WIRE_LOGGER_NAME = ... +_client_wire_logger = ... +_provider_wire_logger = ... diff --git a/typings/vmware/vapi/lib/rest.pyi b/typings/vmware/vapi/lib/rest.pyi new file mode 100644 index 00000000..7e83a211 --- /dev/null +++ b/typings/vmware/vapi/lib/rest.pyi @@ -0,0 +1,113 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Common REST classes/lib +""" +__author__ = ... +__copyright__ = ... + +class OperationRestMetadata: + """ + This class holds the metadata for making a REST request + + :type http_method: :class:`str` + :ivar http_method: HTTP method + :type request_body_parameter: :class:`str` + :ivar request_body_parameter: Python runtime name of the parameter that + forms the HTTP request body + """ + + def __init__( + self, + http_method, + url_template=..., + request_body_parameter=..., + path_variables=..., + query_parameters=..., + dispatch_parameters=..., + header_parameters=..., + dispatch_header_parameters=..., + content_type=..., + ) -> None: + """ + Initialze the rest metadata class + + :type http_method: :class:`str` + :param http_method: HTTP method + :type url_template: :class:`str` + :param url_template: URL path template + :type path_variables: :class:`dict` of :class:`str` and :class:`str` + :param path_variables: Map of python runtime name and the path + variable name used in the URL template + :type query_parameters: :class:`dict` of :class:`str` and :class:`str` + :param query_parameters: Map of python runtime name and query parameter + name + :type request_body_parameter: :class:`str` + :param request_body_parameter: Python runtime name of the parameter that + forms the HTTP request body + :type dispatch_parameters: :class:`str` + :param dispatch_parameters: Map of query parameter wit its value + defined in interface Verb annotation + :type header_parameters: :class:`str` + :param header_parameters: Map of header name with variable name + :type dispatch_header_parameters: :class:`str` + :param dispatch_header_parameters: Map of header name with its value + defined in interface Verb annotation + """ + ... + + def get_url_path(self, path_variable_fields, query_parameter_fields): # -> str: + """ + Get the final URL path by substituting the actual values in the template + and adding the query parameters + + :type path_variable_fields: :class:`dict` of :class:`str` and + :class:`str` + :param path_variable_fields: Map of python runtime name for URL path + variable and its value + :type query_parameter_fields: :class:`dict` of :class:`str` and + :class:`str` + :param query_parameter_fields: Map of python runtime name for query + parameter variable and its value + :rtype: :class:`unicode` for Python 2 and :class:`str` for Python 3 + :return: URL path + """ + ... + + def get_path_variable_field_names(self): # -> list[Any]: + """ + Get the list of field names used in the URL path template + + :rtype: :class:`list` of :class:`str` + :return: List of fields used in the URL path template + """ + ... + + def get_query_parameter_field_names(self): # -> list[Any]: + """ + Get the list of field names used as query parameters + + :rtype: :class:`list` of :class:`str` + :return: List of fields used as query parameters + """ + ... + + def get_header_field_names(self): # -> dict[Any, Any]: + """ + Get the list of field names used as headers + + :rtype: :class:`list` of :class:`str` + :return: List of fields used as header + """ + ... + + def get_dispatch_header(self): # -> dict[Any, Any]: + """ + Get the map of field names and value as dispatch headers + + :rtype: :class:`list` of :class:`str` + :return: Map of name and value as dispatch header + """ + ... diff --git a/typings/vmware/vapi/lib/ssl.pyi b/typings/vmware/vapi/lib/ssl.pyi new file mode 100644 index 00000000..ab0e8aff --- /dev/null +++ b/typings/vmware/vapi/lib/ssl.pyi @@ -0,0 +1,72 @@ +""" +This type stub file was generated by pyright. +""" + +""" +SSL Context factories +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class ClientContextFactory: + """ + Context factory base class. This class should be used to set the + SSL options + """ + + def get_context(self): + """ + Returns the SSL context + """ + ... + +class DefaultClientContextFactory(ClientContextFactory): + """ + Default SSL context class. This chooses some default options for SSL context. + Clients can retrieve the context. + + To modify the context and set some options directly. Create a class like below + and set the options. Pass this to the get_connector function + + class CustomClientContextFactory(DefaultClientContextFactory): + def get_context(self): + ctx = DefaultClientContextFactory.get_context(self) + # modify ctx + return ctx + """ + + def __init__( + self, certificate=..., private_key=..., ca_certs=..., ca_certs_dir=... + ) -> None: + """ + Initialize DefaultClientContextFactory + + :type certificate: :class:`str` + :param certificate: File path of the certificate + :type private_key: :class:`str` + :param private_key: File path of the private key + :type ca_certs: :class:`str` + :param ca_certs: File path of ca certificates + :type ca_certs_dir: :class:`str` + :param ca_certs_dir: Directory prepared using the c_rehash tool + included with OpenSSL + """ + ... + + def get_context(self): # -> Context: + """ + Returns the SSL context + + :rtype: :class:`OpenSSL.SSL.Context` + :return: SSL context + """ + ... + +class UnverifiedClientContextFactory(DefaultClientContextFactory): + """ + Unverified SSL context class. This class retrieves an unverified SSL Context + with other options from the DefaultClientContext + """ + + def __init__(self) -> None: ... diff --git a/typings/vmware/vapi/lib/visitor.pyi b/typings/vmware/vapi/lib/visitor.pyi new file mode 100644 index 00000000..bf93858b --- /dev/null +++ b/typings/vmware/vapi/lib/visitor.pyi @@ -0,0 +1,34 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Visitor helper class +""" +__author__ = ... +__copyright__ = ... + +class VapiVisitor: + """ + Convenience class for visitors used in vAPI Python runtime + """ + + def __init__(self, suffix=...) -> None: + """ + Initialize VapiVisitor + + :type suffix: :class:`str` + :param suffix: The suffix string that should be removed from + class name during the dispatch + """ + ... + + def visit(self, value): # -> Any: + """ + Dispatch the call to the appropriate method based + on the type of the input argument + + :type value: :class:`object` + :param value: The object to be used for dispatch + """ + ... diff --git a/typings/vmware/vapi/message.pyi b/typings/vmware/vapi/message.pyi new file mode 100644 index 00000000..b35394b0 --- /dev/null +++ b/typings/vmware/vapi/message.pyi @@ -0,0 +1,117 @@ +""" +This type stub file was generated by pyright. +""" + +""" +vAPI Message class +""" +__author__ = ... +__copyright__ = ... + +class Message: + """ + This class encapsulates the concept of a localizable message. + + :type id_: :class:`string` + :ivar id_: The unique message identifier + :type def_msg: :class:`string` + :ivar def_msg: An english language default + :type args: :class:`list` of :class:`string` + :ivar args: The arguments to be used for the messsage + """ + + def __init__(self, id_, def_msg, *args) -> None: + """ + Initializes the message object + + :type id_: :class:`string` + :param id_: The unique message identifier + :type def_msg: :class:`string` + :param def_msg: An english language default + :type args: :class:`list` of :class:`string` + :param args: The arguments to be used for the messsage + """ + ... + + def __eq__(self, other) -> bool: ... + def __ne__(self, other) -> bool: ... + def __repr__(self): # -> str: + ... + + def __str__(self) -> str: ... + +class MessageFormatter: + """ + Base class for all message formatter classes + """ + + @classmethod + def format_msg(cls, msg, args): + """ + Format the message using the specified arguments + + :type msg: :class:`str` + :param msg: Message template + :type args: :class:`list` of :class:`object` + :param args: Arguments for the message + :rtype: :class:`str` + :return: Localized message + """ + ... + +class MessageBundle: + """ + Base class for all message bundle classes. + """ + + def __init__(self, messages) -> None: + """ + Initialize MessageBundle. + + :type messages: :class:`dict` of :class:`str`, :class:`str` + :param messages: Dictionary with message identifiers as keys and + message templates as values. + """ + ... + + def get(self, msg_id): + """ + Returns the message template for the given message identifier + + :type msg_id: :class:`str` + :param msg_id: Message identifier + :rtype: :class:`str` + :return: Message template + :raise KeyError: If the message identifier is not found + """ + ... + +class MessageFactory: + """ + A factory class to generate localizable messages + """ + + def __init__(self, msg_bundle, formatter) -> None: + """ + Initializes the message object + + :type msg_bundle: :class:`MessageBundle` + :param messages: The message dictionary for the message factory + :type formatter: :class:`vmware.vapi.formatter.MessageFormatter` + :param formatter: Formatter for the message + """ + ... + + def get_message(self, id_, *args): # -> Message: + """ + Return a message object for the given id with the given args. + If the message is not found, a default unknown message is returned. + + :type id_: string + :param id_: The unique message identifier + :type args: :class:`list` of :class:`object` + :param args: The arguments to be used for constructing this message + :rtype: :class:`Message` + :return: The message object constructed using the given arguments + """ + ... diff --git a/typings/vmware/vapi/protocol/client/connector.pyi b/typings/vmware/vapi/protocol/client/connector.pyi new file mode 100644 index 00000000..3e02b20b --- /dev/null +++ b/typings/vmware/vapi/protocol/client/connector.pyi @@ -0,0 +1,85 @@ +""" +This type stub file was generated by pyright. +""" + +import abc +import six + +""" +Connecter interface +""" +__author__ = ... +__copyright__ = ... + +@six.add_metaclass(abc.ABCMeta) +class Connector: + """Connector interface""" + + def __init__(self, api_provider, provider_filter_chain) -> None: + """ + Connector constructor + + :type api_provider: :class:`vmware.vapi.core.ApiProvider` + :param api_provider: API Provider + :type provider_filter_chain: :class:`list` of + :class:`vmware.vapi.provider.filter.ApiProviderFilter` + :param provider_filter_chain: List of API filters in order they are to + be chained + """ + ... + + @abc.abstractmethod + def connect(self): # -> None: + """rpc provider connect""" + ... + + @abc.abstractmethod + def disconnect(self): # -> None: + """rpc provider disconnect""" + ... + + def set_application_context(self, ctx): # -> None: + """ + Set the application context + + All the subsequent calls made using this + connector will use this as the application + context in the ExecutionContext + + :type ctx: :class:`vmware.vapi.core.ApplicationContext` + :param ctx: New application context + """ + ... + + def set_security_context(self, ctx): # -> None: + """ + Set the security context + + All the subsequent calls made using this + connector will use this as the security + context in the ExecutionContext + + :type ctx: :class:`vmware.vapi.core.SecurityContext` + :param ctx: New security context + """ + ... + + def new_context(self, runtime_data=...): # -> ExecutionContext: + """ + create new execution context object + + :type runtime_data: :class:`vmware.vapi.core.RuntimeData` # pylint: disable=line-too-long + :param runtime_data: Http runtime data + :rtype: :class:`vmware.vapi.core.ExecutionContext` + :return: execution context + """ + ... + + def get_api_provider(self): + """ + get api provider + + :rtype: :class:`vmware.vapi.core.ApiProvider` + :return: api provider + """ + ... diff --git a/typings/vmware/vapi/protocol/client/http_lib.pyi b/typings/vmware/vapi/protocol/client/http_lib.pyi new file mode 100644 index 00000000..0b705a04 --- /dev/null +++ b/typings/vmware/vapi/protocol/client/http_lib.pyi @@ -0,0 +1,96 @@ +""" +This type stub file was generated by pyright. +""" + +import six + +""" +Various http lib classes +""" +__author__ = ... +__copyright__ = ... + +class HTTPRequest: + """ + This class represents an HTTP Request + + :type method: :class:`vmware.vapi.protocol.common.http_lib.HTTPMethod` + :ivar method: The http method to be used to make the http request + :type body: :class:`str` + :ivar body: HTTP request body + :type url_path: :class:`str` + :ivar url_path: URL path that is to be appended to base URL to construct + final request URL + :type headers: :class:`dict` of :class:`str`, :class:`str` + :ivar headers: HTTP request headers + :type cookies: :class:`dict` of :class:`str`, :class:`str` + :ivar cookies: HTTP request cookies + :type timeout: :class:`int` + :ivar timeout: Timeout in seconds for the client to wait for the + response from the server + """ + + def __init__( + self, method, body=..., url_path=..., headers=..., cookies=..., timeout=... + ) -> None: + """ + Initialize HTTPRequest + + :type method: :class:`vmware.vapi.protocol.common.http_lib.HTTPMethod` + :param method: The http method to be used to make the http request + :type body: :class:`str` + :param body: HTTP request body + :type url_path: :class:`str` + :param url_path: URL path that is to be appended to base URL to + construct final request URL + :type headers: :class:`dict` of :class:`str`, :class:`str` + :param headers: HTTP request headers + :type cookies: :class:`dict` of :class:`str`, :class:`str` + :param cookies: HTTP request cookies + :type timeout: :class:`int` + :param timeout: Timeout in seconds for the client to wait for the + response from the server + """ + ... + +class HTTPResponse: + """ + This class represents an HTTP Response + + :type status: :class:`int` + :ivar status: HTTP response status code + :type headers: :class:`dict` of :class:`str`, :class:`str` + :ivar headers: HTTP response headers + :type body: :class:`str` + :ivar body: HTTP response body + :type data: :class:`object` + :ivar data: Extra data depending on the HTTP library used + """ + + def __init__(self, status, headers, body=..., data=...) -> None: + """ + Initialize HTTPResponse + + :type status: :class:`int` + :param status: HTTP response status code + :type headers: :class:`dict` of :class:`str`, :class:`str` + :param headers: HTTP response headers + :type body: :class:`str` + :param body: HTTP response body + :type data: :class:`object` + :param body: Extra data depending on the HTTP library used + """ + ... + +class HTTPMethod(six.text_type): + """ + Enum representing the HTTP method + """ + + DELETE = ... + GET = ... + HEAD = ... + OPTIONS = ... + PATCH = ... + POST = ... + PUT = ... diff --git a/typings/vmware/vapi/protocol/client/msg/connector_factory.pyi b/typings/vmware/vapi/protocol/client/msg/connector_factory.pyi new file mode 100644 index 00000000..424cfeb5 --- /dev/null +++ b/typings/vmware/vapi/protocol/client/msg/connector_factory.pyi @@ -0,0 +1,32 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Protocol connector factory +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class ProtocolConnectorFactory: + """Protocol connector factory""" + + def __init__(self) -> None: + """Protocol connector factory init""" + ... + + def get_connector(self, protocol, *args, **kwargs): # -> Any | None: + """ + Create protocol connector + + :type protocol: :class:`str` + :param protocol: protocol name + :type args: :class:`tuple` + :param args: position parameters to protocol connector constructor + :type kwargs: :class:`dict` + :param kwargs: key parameters to protocol connector constructor + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: Connector object + """ + ... diff --git a/typings/vmware/vapi/protocol/client/msg/generic_connector.pyi b/typings/vmware/vapi/protocol/client/msg/generic_connector.pyi new file mode 100644 index 00000000..d008c4c1 --- /dev/null +++ b/typings/vmware/vapi/protocol/client/msg/generic_connector.pyi @@ -0,0 +1,39 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.protocol.client.connector import Connector + +""" +Generic client connector +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class GenericConnector(Connector): + """A generic protocol connector""" + + def __init__(self, rpc_provider, api_provider, provider_filter_chain) -> None: + """ + Generic protocol connector init + + :type rpc_provider: :class:`vmware.vapi.protocol.client.rpc.provider + .RpcProvider` + :param rpc_provider: rpc provider object + :type api_provider: :class:`vmware.vapi.core.ApiProvider` + :param api_provider: api provider object + :type provider_filter_chain: :class:`list` of + :class:`vmware.vapi.provider.filter.ApiProviderFilter` + :param provider_filter_chain: List of API filters in order they are to + be chained + """ + ... + + def connect(self): # -> None: + """rpc provider connect""" + ... + + def disconnect(self): # -> None: + """rpc provider disconnect""" + ... diff --git a/typings/vmware/vapi/protocol/client/msg/rest_connector.pyi b/typings/vmware/vapi/protocol/client/msg/rest_connector.pyi new file mode 100644 index 00000000..eae02cee --- /dev/null +++ b/typings/vmware/vapi/protocol/client/msg/rest_connector.pyi @@ -0,0 +1,97 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.core import ApiProvider + +""" +Rest client handler +""" +__author__ = ... +__copyright__ = ... +logger = ... +request_logger = ... + +class RestClientProvider(ApiProvider): + """Rest rpc client provider""" + + def __init__( + self, http_provider, post_processors, rest_metadata_map=..., is_vapi_rest=... + ) -> None: + """ + Rest rpc client provider init + + :type http_provider: + :class:`vmware.vapi.protocol.client.rpc.provider.HTTPProvider` + :param http_provider: rpc provider object + :type post_processors: :class:`list` of :class:`str` + :param post_processors: List of post processor class names + :type rest_metadata_map: :class:`dict` of (:class:`str`, :class:`str`) + and :class:`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata_map: Rest metadata for all operations + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the Rest json message format is VAPI Rest + or not + """ + ... + + def add_rest_metadata(self, service_id, operation_id, rest_metadata): # -> None: + """ + Add rest metadata for an operation + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type rest_metadata: + :class:`vmware.vapi.lib.rest.OperationRestMetadata` + :param rest_metadata: Rest metadata for the operation + """ + ... + + def set_rest_format(self, is_vapi_rest): # -> None: + """ + Set whether the rest format is VAPI or Swagger REST + + :type is_vapi_rest: :class:`bool` + :param is_vapi_rest: Whether the rest format is VAPI REST or not + """ + ... + + def invoke(self, service_id, operation_id, input_value, ctx): # -> MethodResult: + """ + Invokes the specified method using the input value and the + the execution context provided + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type input_value: :class:`vmware.vapi.data.value.DataValue` + :param input_value: method input parameters + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: execution context object + :rtype: :class:`vmware.vapi.core.MethodResult` + :return: method result object + """ + ... + +def get_protocol_connector( + http_provider, post_processors=..., provider_filter_chain=... +): # -> GenericConnector: + """ + Get protocol connector + + :type http_provider: + :class:`vmware.vapi.protocol.client.rpc.provider.HTTPProvider` + :param http_provider: rpc provider object + :type post_processors: :class:`list` of :class:`str` + :param post_processors: List of post processor class names + :type provider_filter_chain: :class:`list` of + :class:`vmware.vapi.provider.filter.ApiProviderFilter` + :param provider_filter_chain: List of API filters in order they are to be + chained + :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` + :return: json rpc connector object + """ + ... diff --git a/typings/vmware/vapi/protocol/client/msg/user_agent_util.pyi b/typings/vmware/vapi/protocol/client/msg/user_agent_util.pyi new file mode 100644 index 00000000..79e1d37a --- /dev/null +++ b/typings/vmware/vapi/protocol/client/msg/user_agent_util.pyi @@ -0,0 +1,57 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Helper module to build value passed in UserAgent header +""" +__author__ = ... +__copyright__ = ... + +class UserAgentBuilder: + """Builder for the value to be passed in UserAgent header""" + + VSHPERE_SDK_DIST_NAME = ... + def __init__(self) -> None: ... + def build(self): # -> str: + ... + + def load_sdk_version(self): # -> None: + ... + + def set_product_info( + self, name, version, product_comment=..., vapi_version=... + ): # -> None: + ... + +_user_agent_builder = ... + +def init_product_info(name, version, product_comment=..., vapi_version=...): # -> None: + """ + Initializes details of the application layer that need to be passed + as part of the user agent header + + Example: + calling init_product_info('DCLI', 2.10.0, product_comment='i', vapi_version=2.9.1) + would produced User-Agent header: + DCLI/2.10.0 (i) vAPI/2.9.1 Python/2.7.13+ (Linux; 4.13.0-45-generic; x86_64) + + :type name: :class:`str` + :param name: Service identifier + :type version: :class:`str` + :param version: Operation identifier + :type product_comment: :class:`str` + :param product_comment: Adds additional comment to the name and version data + :type vapi_version: :class:`str` + :param vapi_version: Specifies vapi version to use explicitly + """ + ... + +def get_user_agent(): # -> str: + """ + Gets the string that needs to be passed in the UserAgent header + + :rtype: :class:`str` + :return: UserAgent value + """ + ... diff --git a/typings/vmware/vapi/protocol/client/rpc/provider_factory.pyi b/typings/vmware/vapi/protocol/client/rpc/provider_factory.pyi new file mode 100644 index 00000000..b95064d8 --- /dev/null +++ b/typings/vmware/vapi/protocol/client/rpc/provider_factory.pyi @@ -0,0 +1,32 @@ +""" +This type stub file was generated by pyright. +""" + +""" +rpc provider factory +""" +__author__ = ... +__copyright__ = ... +logger = ... + +class RpcProviderFactory: + """Rpc provider factory""" + + def __init__(self) -> None: + """Rpc provider factory init""" + ... + + def get_rpc_provider(self, rpc_provider_name, *args, **kwargs): # -> Any | None: + """ + Create rpc provider + + :type rpc_provider_name: + :param rpc_provider_name: + :type args: :class:`tuple` + :param args: position parameters to rpc provider constructor + :type kwargs: :class:`dict` + :param kwargs: key parameters to rpc provider constructor + :rtype: :class:`vmware.vapi.protocol.client.rpc.provider.RpcProvider` + :return: Rpc provider object + """ + ... diff --git a/typings/vmware/vapi/protocol/common/lib.pyi b/typings/vmware/vapi/protocol/common/lib.pyi new file mode 100644 index 00000000..8f04d9c1 --- /dev/null +++ b/typings/vmware/vapi/protocol/common/lib.pyi @@ -0,0 +1,30 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Common libraries +""" +__author__ = ... +__copyright__ = ... + +class RequestProcessor: + """ + Implementations of this interface might be attached to client + :class:`vmware.vapi.core.ApiProvider` implementations as request + post-processors or to the server :class:`vmware.vapi.core.ApiProvider` + implementations as pre-processors + """ + + def process(self, message): + """ + Processes and possibly modifies the provided request byte array + + :type message: :class:`str` + :param message: request message. cannot be null. If text is passed as + it MUST be UTF-8 encoded. + :rtype: :class:`str` + :return: result of the processor. cannot be null. If text is returned it + MUST be UTF-8 encoded. + """ + ... diff --git a/typings/vmware/vapi/provider/filter.pyi b/typings/vmware/vapi/provider/filter.pyi new file mode 100644 index 00000000..9a7d76bd --- /dev/null +++ b/typings/vmware/vapi/provider/filter.pyi @@ -0,0 +1,85 @@ +""" +This type stub file was generated by pyright. +""" + +import abc +import six +from vmware.vapi.core import ApiProvider + +""" +API Provider filter +""" +__author__ = ... +__copyright__ = ... +logger = ... + +@six.add_metaclass(abc.ABCMeta) +class ApiProviderFilter(ApiProvider): + """ + ApiProviderFilter is a base class for all ApiProvider filters. + This handles all the common methods and also takes care of augmenting + errors reported by an ApiProvider filter. + + :type next_provider: :class:`vmware.vapi.core.ApiProvider` + :ivar next_provider: Next API Provider in the chain + """ + + def __init__(self, next_provider=..., errors_to_augment=..., name=...) -> None: + """ + Initialize ApiProviderFilter + + :type next_provider: :class:`vmware.vapi.core.ApiProvider` or ``None`` + :param next_provider: API Provider to invoke the requests + :type errors_to_augment: :class:`list` of + :class:`vmware.vapi.data.definition.ErrorDefinition` or ``None`` + :param errors_to_augment: List of error definitions to be added to + method definitions + :type name: :class:`str` + :param name: The name of the filter + """ + ... + + @abc.abstractmethod + def invoke(self, service_id, operation_id, input_value, ctx): # -> MethodResult: + """ + Invoke an API request. Derived classes of ApiProviderFilter + should call this method to invoke the request. This can be done + by: ApiProviderFilter.invoke(self, ctx, method_id, input_value). + + This method calls the next API Provider. If the request is made to + "get" operation of vAPI Operation Introspection service, errors are + augmented to the method result. + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: Method input parameters + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + + :rtype: :class:`vmware.vapi.core.MethodResult` + :return: Result of the method invocation + """ + ... + + def get_api_provider(self): # -> None: + """ + Get the last provider in the chain. + + :rtype: :class:`vmware.vapi.core.ApiProvider` + :return: Last provider in the provider chain which is not a filter + """ + ... + + def find_first_api_filter(self, name): # -> Self | None: + """ + Get the first filter with the specified name in the provider chain + + :type name: :class:`str` + :param name: Filter name + :rtype: :class:`vmware.vapi.core.ApiProviderFilter` or ``None`` + :return: First filter that matches the name + """ + ... diff --git a/typings/vmware/vapi/provider/lib.pyi b/typings/vmware/vapi/provider/lib.pyi new file mode 100644 index 00000000..ceb0916b --- /dev/null +++ b/typings/vmware/vapi/provider/lib.pyi @@ -0,0 +1,53 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Utility library for Provider modules +""" +__author__ = ... +__copyright__ = ... + +def augment_method_result_with_errors( + service_id, operation_id, method_result, errors_to_augment +): # -> MethodResult: + """ + Returns a new method result that is identical to `method_result` except that + the `errors_definition` field in the `output` (which is of type + Operation.Info from Introspection service) contains the errors from the Info + structure in `method_result` plus the errors in `errors_to_augment`. This + code will be executed only for "get" operation in vAPI Operation + Introspection service. + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type method_result: :class:`vmware.vapi.core.MethodResult` + :param method_result: Operation result + :type errors_to_augment: :class:`list` of + :class:`vmware.vapi.data.value.StructValue` + :param errors_to_augment: Errors to augment. These are struct values of type + com.vmware.vapi.std.introspection.Operation.DataDefinition whose `type` + field has the value ERROR + to the DataDefinition type in Introspection service IDL. + :rtype: :class:`vmware.vapi.data.value.DataValue` + :return: Output data value + """ + ... + +def augment_method_def_with_errors(method_def, errors): # -> MethodDefinition: + """ + Add errors reported by this ApiProviderFilter to a method definition. + This method clones the input method definition and appends errors. It + does not modify the parameter. + + :type method_def: :class:`vmware.vapi.core.MethodDefinition` + :param method_def: Method definition + :type errors: :class:`list` of + :class:`vmware.vapi.data.definition.ErrorDefinition` + :param errors: Error definitions to augment to MethodDefinition + :rtype: :class:`vmware.vapi.core.MethodDefinition` + :return: Method definition after augmenting the errors + """ + ... diff --git a/typings/vmware/vapi/rest/lib.pyi b/typings/vmware/vapi/rest/lib.pyi new file mode 100644 index 00000000..05f5c94a --- /dev/null +++ b/typings/vmware/vapi/rest/lib.pyi @@ -0,0 +1,61 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Util classes for HTTP/REST +""" +__author__ = ... +__copyright__ = ... + +class HTTPStatusCodes: + """ + Constants for HTTP status codes + """ + + HTTP_200_OK = ... + HTTP_201_CREATED = ... + HTTP_202_ACCEPTED = ... + HTTP_204_NO_CONTENT = ... + HTTP_304_NOT_MODIFIED = ... + HTTP_400_BAD_REQUEST = ... + HTTP_401_UNAUTHORIZED = ... + HTTP_402_PAYMENT_REQUIRED = ... + HTTP_403_FORBIDDEN = ... + HTTP_404_NOT_FOUND = ... + HTTP_405_METHOD_NOT_ALLOWED = ... + HTTP_406_NOT_ACCEPTABLE = ... + HTTP_407_PROXY_AUTHENTICATION_REQUIRED = ... + HTTP_408_REQUEST_TIMEOUT = ... + HTTP_409_CONFLICT = ... + HTTP_410_GONE = ... + HTTP_411_LENGTH_REQUIRED = ... + HTTP_412_PRECONDITION_FAILED = ... + HTTP_413_REQUEST_ENTITY_TOO_LARGE = ... + HTTP_414_REQUEST_URI_TOO_LARGE = ... + HTTP_415_UNSUPPORTED_MEDIA_TYPE = ... + HTTP_416_REQUEST_RANGE_NOT_SATISFIABLE = ... + HTTP_417_EXPECTATION_FAILED = ... + HTTP_418_IM_A_TEAPOT = ... + HTTP_422_UNPROCESSABLE_ENTITY = ... + HTTP_423_LOCKED = ... + HTTP_424_FAILED_DEPENDENCY = ... + HTTP_426_UPGRADE_REQUIRED = ... + HTTP_428_PRECONDITION_REQUIRED = ... + HTTP_429_TOO_MANY_REQUESTS = ... + HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = ... + HTTP_500_INTERNAL_SERVER_ERROR = ... + HTTP_501_NOT_IMPLEMENTED = ... + HTTP_503_SERVICE_UNAVAILABLE = ... + HTTP_504_GATEWAY_TIMEOUT = ... + HTTP_505_HTTP_VERSION_NOT_SUPPORTED = ... + HTTP_506_VARIANT_ALSO_NEGOTIATES = ... + HTTP_507_INSUFFICIENT_STORAGE = ... + HTTP_508_LOOP_DETECTED = ... + HTTP_509_BANDWIDTH_LIMIT_EXCEEDED = ... + HTTP_510_NOT_EXTENDED = ... + HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = ... + +vapi_to_http_error_map = ... +http_to_vapi_error_map = ... +successful_status_codes = ... diff --git a/typings/vmware/vapi/security/client/security_context_filter.pyi b/typings/vmware/vapi/security/client/security_context_filter.pyi new file mode 100644 index 00000000..103234df --- /dev/null +++ b/typings/vmware/vapi/security/client/security_context_filter.pyi @@ -0,0 +1,145 @@ +""" +This type stub file was generated by pyright. +""" + +import abc +import six +from vmware.vapi.provider.filter import ApiProviderFilter + +""" +SecurityContext API Provider filter +""" +__author__ = ... +__copyright__ = ... +logger = ... + +@six.add_metaclass(abc.ABCMeta) +class SecurityContextFilter(ApiProviderFilter): + """ + SecurityContextFilter in API Provider chain adds the security + context to the execution context passed in. + """ + + def __init__(self, next_provider=...) -> None: + """ + Initialize SecurityContextFilter + + :type next_provider: :class:`vmware.vapi.core.ApiProvider` + :param next_provider: API Provider to invoke the requests + """ + ... + + @abc.abstractmethod + def get_max_retries(self): # -> None: + """ + Get the max number of retries + + :rtype: :class:`int` + :return: Number of retries + """ + ... + + @abc.abstractmethod + def get_security_context(self, on_error): # -> None: + """ + Retrieve security context. If this method is called after an error + occured and the request needs to be retried, then a new security context + may be created depending on the scheme. + + :type on_error: :class:`bool` + :param on_error: Whether this method is called after getting an error + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Security context + """ + ... + + @abc.abstractmethod + def should_retry(self, error_value): # -> None: + """ + Returns whether the request should be retried or not based on the error. + + :type error_value: :class:`vmware.vapi.data.value.ErrorValue` + :param error_value: Method error + :rtype: :class:`bool` + :return: Returns True if request should be retried based on the error + value provided else False + """ + ... + + def invoke( + self, service_id, operation_id, input_value, ctx + ): # -> MethodResult | None: + """ + Invoke an API request + + :type service_id: :class:`str` + :param service_id: Service identifier + :type operation_id: :class:`str` + :param operation_id: Operation identifier + :type input_value: :class:`vmware.vapi.data.value.StructValue` + :param input_value: Method input parameters + :type ctx: :class:`vmware.vapi.core.ExecutionContext` + :param ctx: Execution context for this method + + :rtype: :class:`vmware.vapi.core.MethodResult` + :return: Result of the method invocation + """ + ... + +class LegacySecurityContextFilter(SecurityContextFilter): + """ + SecurityContextFilter in API Provider chain adds the security + context to the execution context passed in. + """ + + def __init__(self, next_provider=..., security_context=...) -> None: + """ + Initialize SecurityContextFilter + + :type next_provider: :class:`vmware.vapi.core.ApiProvider` + :param next_provider: API Provider to invoke the requests + :type security_context: :class:`vmware.vapi.core.SecurityContext` + :param security_context: Security context + """ + ... + + def get_max_retries(self): # -> Literal[0]: + """ + Get the max number of retries + + :rtype: :class:`int` + :return: Number of retries + """ + ... + + def set_security_context(self, security_context): # -> None: + """ + Set security context + + :type security_context: :class:`vmware.vapi.core.SecurityContext` + :param security_context: Security context + """ + ... + + def get_security_context(self, on_error): # -> None: + """ + Retrieve the stored security context. + + :type on_error: :class:`bool` + :param on_error: Whether this method is called after getting an error + :rtype: :class:`vmware.vapi.core.SecurityContext` or ``None`` + :return: Security context or None + """ + ... + + def should_retry(self, error_value): # -> Literal[False]: + """ + Returns whether the request should be retried or not based on the error. + + :type error_value: :class:`vmware.vapi.data.value.ErrorValue` + :param error_value: Method error + :rtype: :class:`bool` + :return: Returns True if request should be retried based on the error + value provided else False + """ + ... diff --git a/typings/vmware/vapi/security/oauth.pyi b/typings/vmware/vapi/security/oauth.pyi new file mode 100644 index 00000000..ca204392 --- /dev/null +++ b/typings/vmware/vapi/security/oauth.pyi @@ -0,0 +1,55 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.security.rest import SecurityContextParser + +""" +Oauth2 Security Helper +""" +__author__ = ... +__copyright__ = ... +OAUTH_SCHEME_ID = ... +ACCESS_TOKEN = ... +AUTHORIZATION = ... +BEARER = ... + +def create_oauth_security_context(access_token): # -> SecurityContext: + """ + Create a security context for Oauth2 based authentication + scheme + + :type access_token: :class:`str` + :param access_token: Access token + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Newly created security context + """ + ... + +class OAuthSecurityContextParser(SecurityContextParser): + """ + Security context parser used by the REST presentation layer + that builds a security context if the REST request has OAuth2 + access token in the header. + """ + + def __init__(self) -> None: + """ + Initialize OAuthSecurityContextParser + """ + ... + + def build(self, request): # -> SecurityContext | None: + """ + Build the security context if the request has authorization + header that contains OAuth2 access token. + + If the request authorization header doesn't have the OAuth2 + access token, this method returns None. + + :type request: :class:`werkzeug.wrappers.Request` + :param request: Request object + :rtype: :class:`vmware.vapi.core.SecurityContext` or ``None`` + :return: Security context object + """ + ... diff --git a/typings/vmware/vapi/security/rest.pyi b/typings/vmware/vapi/security/rest.pyi new file mode 100644 index 00000000..186d4602 --- /dev/null +++ b/typings/vmware/vapi/security/rest.pyi @@ -0,0 +1,26 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Security context parser interface for REST presentation layer +""" +__author__ = ... +__copyright__ = ... + +class SecurityContextParser: + """ + Base class for all security context builders + """ + + def build(self, request): # -> None: + """ + Build the security context based on the authentication + information in the request. + + :type request: :class:`werkzeug.wrappers.Request` + :param request: Request object + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Security context object + """ + ... diff --git a/typings/vmware/vapi/security/session.pyi b/typings/vmware/vapi/security/session.pyi new file mode 100644 index 00000000..fc08628d --- /dev/null +++ b/typings/vmware/vapi/security/session.pyi @@ -0,0 +1,58 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.security.rest import SecurityContextParser + +""" +Session Security Helper +""" +__author__ = ... +__copyright__ = ... +SESSION_SCHEME_ID = ... +SESSION_ID = ... +REST_SESSION_ID_KEY = ... +REQUIRE_HEADER_AUTHN = ... + +def create_session_security_context(session_id): # -> SecurityContext: + """ + Create a security context for Session Id based authentication + scheme + + :type session_id: :class:`str` + :param session_id: Session ID + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Newly created security context + """ + ... + +class SessionSecurityContextParser(SecurityContextParser): + """ + Security context parser used by the REST presentation layer + that builds a security context if the REST request has session + identifier either in the header or in the cookie. + """ + + def __init__(self) -> None: + """ + Initialize SessionSecurityContextParser + """ + ... + + def build(self, request): # -> SecurityContext | None: + """ + Build the security context if the request has the header + that contains the session identifier or a cookie that has + the session identifier. + + The method will first check for session identifier in the cookie, + if it is not present, then it will check in the HTTP headers. + The session security context is created based on the first session + identifier it finds. + + :type request: :class:`werkzeug.wrappers.Request` + :param request: Request object + :rtype: :class:`vmware.vapi.core.SecurityContext` or ``None`` + :return: Security context object + """ + ... diff --git a/typings/vmware/vapi/security/sso.pyi b/typings/vmware/vapi/security/sso.pyi new file mode 100644 index 00000000..941e3b25 --- /dev/null +++ b/typings/vmware/vapi/security/sso.pyi @@ -0,0 +1,203 @@ +""" +This type stub file was generated by pyright. +""" + +import json +from vmware.vapi.protocol.common.lib import RequestProcessor + +""" +SSO Security Helper +""" +__author__ = ... +__copyright__ = ... +key_regex = ... +SAML_SCHEME_ID = ... +SAML_BEARER_SCHEME_ID = ... +PRIVATE_KEY = ... +SAML_TOKEN = ... +SIGNATURE_ALGORITHM = ... +DEFAULT_ALGORITHM_TYPE = ... +TIMESTAMP = ... +EXPIRES = ... +CREATED = ... +REQUEST_VALIDITY = ... +SIGNATURE = ... +DIGEST = ... +AUTHENTICATED = ... +STS_URL_PROP = ... +CERTIFICATE_PROP = ... +PRIVATE_KEY_PROP = ... +CERT_NS = ... +SECTION = ... +algorithm_map = ... + +def create_saml_bearer_security_context(token): # -> SecurityContext: + """ + Create a security context for SAML bearer token based + authentication scheme + + :type token: :class:`str` + :param token: SAML Token + """ + ... + +def create_saml_security_context(token, private_key): # -> SecurityContext: + """ + Create a security context for SAML token based + authentication scheme + + :type token: :class:`str` + :param token: SAML Token + :type private_key: :class:`str` + :param private_key: Absolute file path of the private key of the user + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Newly created security context + """ + ... + +class JSONCanonicalEncoder(json.JSONEncoder): + """ + Custom JSON Encoder class to canonicalize dictionary + and list objects + """ + + def encode(self, o): # -> str | LiteralString: + """ + Encode a given python object + + :type o: :class:`object` + :param o: Python object + :rtype: :class:`str` + :return: JSON string in canonicalized form + """ + ... + +class JSONCanonicalizer: + """ + This class is responsible for transforming JSON messages into their + canonical representation. + + The canonical form is defined by the following rules: + 1. Non-significant(1) whitespace characters MUST NOT be used + 2. Non-significant(1) line endings MUST NOT be used + 3. Entries (set of name/value pairs) in JSON objects MUST be sorted + lexicographically(2) by their names based on UCS codepoint values + 4. Arrays MUST preserve their initial ordering + + Link to the IEFT proposal: + https://datatracker.ietf.org/doc/draft-staykov-hu-json-canonical-form/ + """ + + @staticmethod + def canonicalize(input_message): # -> str | LiteralString: + """ + Canonicalize the input message + + :type input_message: :class:`str` + :param input_message: Input message + :rtype: :class:`str` + :return: Canonicalized message + """ + ... + + @staticmethod + def canonicalize_py_obj(py_obj): # -> str | LiteralString: + """ + Canonicalize the input python object + + :type input_message: :class:`object` + :param input_message: Input python object + :rtype: :class:`str` + :return: Canonicalized message + """ + ... + +class JSONSSOSigner(RequestProcessor): + """ + This class is used for signing JSON request messages + """ + + def process(self, input_message): # -> binary_type | str | None: + """ + Sign the input JSON request message. + + The message is signed using user's private key. The digest and saml + token is then added to the security context block of the execution + context. A timestamp is also added to guard against replay attacks + + Sample input security context: + { + 'schemeId': 'SAML_TOKEN', + 'privateKey': , + 'samlToken': , + 'signatureAlgorithm': , + } + + Security context block before signing: + { + 'schemeId': 'SAML_TOKEN', + 'signatureAlgorithm': , + 'timestamp': { + 'created': '2012-10-26T12:24:18.941Z', + 'expires': '2012-10-26T12:44:18.941Z', + } + } + + Security context block after signing: + { + 'schemeId': 'SAML_TOKEN', + 'signatureAlgorithm': , + 'signature': { + 'samlToken': , + 'value': + } + 'timestamp': { + 'created': '2012-10-26T12:24:18.941Z', + 'expires': '2012-10-26T12:44:18.941Z', + } + } + """ + ... + +class JSONSSOVerifier(RequestProcessor): + """ + This class is used to verify the authenticity of the request + message by verifying the digest present in the security context + block. + """ + + def process(self, input_message): # -> binary_type | str | None: + """ + Verify the input JSON message. + + For verification, we need 4 things: + + 1. algorithm: extracted from security context + 2. certificate: public key of the principal embedded in the + SAML token is used + 3. digest: value field from signature block + 4. canonical msg: signature block is removed from the request + and the remaining part is canonicalized + + Sample input security context: + { + 'schemeId': 'SAML_TOKEN', + 'signatureAlgorithm': , + 'signature': { + 'samlToken': , + 'value': + } + 'timestamp': { + 'created': '2012-10-26T12:24:18.941Z', + 'expires': '2012-10-26T12:44:18.941Z', + } + } + + :type input_message: :class:`str` + :param input_message: Input JSON request message + :rtype: :class:`str` + :return: JSON request message after signature verification + """ + ... + +def parse_xml(xml): ... diff --git a/typings/vmware/vapi/security/user_password.pyi b/typings/vmware/vapi/security/user_password.pyi new file mode 100644 index 00000000..6566c47c --- /dev/null +++ b/typings/vmware/vapi/security/user_password.pyi @@ -0,0 +1,58 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.security.rest import SecurityContextParser + +""" +User password Security Helper +""" +__author__ = ... +__copyright__ = ... +USER_PASSWORD_SCHEME_ID = ... +USER_KEY = ... +PASSWORD_KEY = ... +HTTP_AUTH_HEADER_NAME = ... +HTTP_BASIC_AUTH_HEADER_PARAM = ... + +def create_user_password_security_context(user_name, password): # -> SecurityContext: + """ + Create a security context for Username-Password based authentication + scheme + + :type user_name: :class:`str` + :param user_name: Name of the user + :type password: :class:`str` + :param password: Password of the user + :rtype: :class:`vmware.vapi.core.SecurityContext` + :return: Newly created security context + """ + ... + +class UserPasswordSecurityContextParser(SecurityContextParser): + """ + Security context parser used by the REST presentation layer + that builds a security context if the REST request has + username/password credentials in the HTTP header. + """ + + def __init__(self) -> None: + """ + Initialize UserPasswordSecurityContextParser + """ + ... + + def build(self, request): # -> SecurityContext | None: + """ + Build the security context if the request has authorization + header that contains base64 encoded string of username/password. + + If the request authorization header doesn't have the username/password, + this method returns None. + + :type request: :class:`werkzeug.wrappers.Request` + :param request: Request object + :rtype: :class:`vmware.vapi.core.SecurityContext` or ``None`` + :return: Security context object + """ + ... diff --git a/typings/vmware/vapi/stdlib/client/factories.pyi b/typings/vmware/vapi/stdlib/client/factories.pyi new file mode 100644 index 00000000..3661ee53 --- /dev/null +++ b/typings/vmware/vapi/stdlib/client/factories.pyi @@ -0,0 +1,68 @@ +""" +This type stub file was generated by pyright. +""" + +""" +StubConfiguration factory +""" +__author__ = ... +__copyright__ = ... + +class StubConfigurationFactory: + """ + Factory class for creating stub configuration objects + """ + + @staticmethod + def new_configuration(connector, *errorTypes): # -> StubConfiguration: + """ + Return a stub configuration using the specified connection, with no + registered errors. + + :type connector: + :class:`vmware.vapi.protocol.client.connector.Connector` + :param connector: Connection to be used to talk to the remote + ApiProvider + :type error_types: :class:`list` of + :class:`vmware.vapi.bindings.type.ErrorType` + :param error_types: error types to be registered in the configuration + """ + ... + + @staticmethod + def new_runtime_configuration( + connector, *errorTypes, **kwargs + ): # -> StubConfiguration: + """ + Return a stub configuration using the specified connection, with the + errors reported by the vAPI runtime registered. + + :type connector: + :class:`vmware.vapi.protocol.client.connector.Connector` + :param connector: Connection to be used to talk to the remote + ApiProvider + :type error_types: :class:`list` of + :class:`vmware.vapi.bindings.type.ErrorType` + :type kwargs: :class: `vmware.vapi.bindings.http_helper.ResponseExtractor` # pylint: disable=line-too-long + :param kwargs: Extract rest http response status + :param error_types: additional error types to be registered in the + configuration + """ + ... + + @staticmethod + def new_std_configuration(connector, *errorTypes): # -> StubConfiguration: + """ + Return a stub configuration using the specified connection, with all the + standard errors registered. + + :type connector: + :class:`vmware.vapi.protocol.client.connector.Connector` + :param connector: Connection to be used to talk to the remote + ApiProvider + :type error_types: :class:`list` of + :class:`vmware.vapi.bindings.type.ErrorType` + :param error_types: additional error types to be registered in the + configuration + """ + ... diff --git a/typings/vmware/vapi/stdlib/client/task.pyi b/typings/vmware/vapi/stdlib/client/task.pyi new file mode 100644 index 00000000..1bb19cf6 --- /dev/null +++ b/typings/vmware/vapi/stdlib/client/task.pyi @@ -0,0 +1,65 @@ +""" +This type stub file was generated by pyright. +""" + +""" +Task Helper for clients +""" +__author__ = ... +__copyright__ = ... + +class Task: + """ + Task Helper class for clients + """ + + def __init__(self, task_id, task_svc_instance, result_type) -> None: + """ + Initialize the Task Helper class + + :type task_id: :class:`str` + :param task_id: Task Id + :type task_svc_instance: :class:`com.vmware.cis_client.Tasks` + :param task_svc_instance: Task Service instance + :type result_type: :class:`vmware.vapi.bindings.BindingType` + :param result_type: Result type + """ + ... + + def get_task_id(self): # -> Any: + """ + Returns task id + + :rtype: :class:`str` + :return: Task Id + """ + ... + + def get_info(self): + """ + Returns tasks info + + :rtype: :class:`com.vmware.cis.tasks_client.Info` + :return: Task Info + """ + ... + + def get_result( + self, + ): # -> str | Any | StructValue | list[Any] | set[Any] | VapiStruct | UnresolvedError | datetime | Enum | dict[Any, Any] | None: + """ + Returns task result + + :rtype: :class:`com.vmware.cis.tasks_client.Info` + :return: Task Result + """ + ... + + def get_error(self): + """ + Returns task error + + :rtype: :class:`Exception` + :return: Task Error + """ + ... diff --git a/typings/vmware/vapi/vsphere/__init__.pyi b/typings/vmware/vapi/vsphere/__init__.pyi new file mode 100644 index 00000000..b12c9ecb --- /dev/null +++ b/typings/vmware/vapi/vsphere/__init__.pyi @@ -0,0 +1,5 @@ +""" +This type stub file was generated by pyright. +""" + +import pkg_resources diff --git a/typings/vmware/vapi/vsphere/client.pyi b/typings/vmware/vapi/vsphere/client.pyi new file mode 100644 index 00000000..5258c48a --- /dev/null +++ b/typings/vmware/vapi/vsphere/client.pyi @@ -0,0 +1,93 @@ +""" +This type stub file was generated by pyright. +""" + +from vmware.vapi.bindings.stub import ApiClient, StubFactoryBase + +""" +vSphere Client +""" +__author__ = ... +__copyright__ = ... +JSON_RPC_ENDPOINT = ... + +class StubFactory(StubFactoryBase): + def __init__(self, stub_config) -> None: ... + + _attrs = ... + +class VsphereClient(ApiClient): + """ + vSphere Client class that provides access to stubs for all services in the + vSphere API + """ + + def __init__( + self, session, server, username, password, bearer_token, hok_token, private_key + ) -> None: + """ + Initialize VsphereClient by creating a parent stub factory instance + of all vSphere components. + + :type session: :class:`requests.Session` + :param session: Requests HTTP session instance. If not specified, + then one is automatically created and used + :type server: :class:`str` + :param server: vCenter host name or IP address + :type username: :class:`str` + :param username: Name of the user + :type password: :class:`str` + :param password: Password of the user + :type bearer_token: :class:`str` + :param bearer_token: SAML Bearer Token + :type hok_token: :class:`str` + :param hok_token: SAML Hok Token + :type private_key: :class:`str` + :param private_key: Absolute file path of the private key of the user + """ + ... + + def __enter__(self): # -> Self: + ... + + def __exit__(self, exc_type, exc_val, exc_tb): # -> None: + ... + + def __del__(self): # -> None: + ... + +def create_vsphere_client( + server, + username=..., + password=..., + bearer_token=..., + hok_token=..., + private_key=..., + session=..., +): # -> VsphereClient: + """ + Helper method to create an instance of the vSphere API client. + Please provide one of the following options to authenticate: + * username and password, + * bearer_token, + * hok_token and private_key + + :type server: :class:`str` + :param server: vCenter host name or IP address + :type username: :class:`str` + :param username: Name of the user + :type password: :class:`str` + :param password: Password of the user + :type bearer_token: :class:`str` + :param bearer_token: SAML Bearer Token + :type hok_token: :class:`str` + :param hok_token: SAML Hok Token + :type private_key: :class:`str` + :param private_key: Absolute file path of the private key of the user + :type session: :class:`requests.Session` or ``None`` + :param session: Requests HTTP session instance. If not specified, then one + is automatically created and used + :rtype: :class:`vmware.vapi.vmc.client.VsphereClient` + :return: Vsphere Client instance + """ + ...