diff --git a/.fern/metadata.json b/.fern/metadata.json index 99fcbb33..7cbbcf80 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -52,10 +52,10 @@ }, "pyproject_toml": "[[tool.poetry.include]]\npath = \"src/schematic/datastream/wasm/*.wasm\"\nformat = [\"sdist\", \"wheel\"]\n\n[[tool.mypy.overrides]]\nmodule = \"redis.*\"\nignore_missing_imports = true\n" }, - "originGitCommit": "df7eb827b913491ccf6610c3610edac5ffe90262", + "originGitCommit": "9c3d404a6ed3ff63811ecbef9e2814ea8607f22d", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "1.4.5", + "requestedVersion": "1.4.6", "ciProvider": "github", - "sdkVersion": "1.4.5" + "sdkVersion": "1.4.6" } \ No newline at end of file diff --git a/.fern/replay.lock b/.fern/replay.lock index acddcdca..216acee9 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -120,7 +120,13 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 5.41.4 -current_generation: 6f337d51b8143904a72c393c7631d3bf50cbf394 + - commit_sha: 98c7766b9d7daae6eae5d58dcefd2e3b843ba6cd + tree_hash: dca510d56375d92fcd2189b160b9ba4beb5328a7 + timestamp: 2026-10-26T10:06:43.377Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 5.41.4 +current_generation: 98c7766b9d7daae6eae5d58dcefd2e3b843ba6cd patches: [] dismissals: - patch_id: patch-f12c60b5 diff --git a/poetry.lock b/poetry.lock index 864af4e7..b3cee4a1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -15,174 +15,174 @@ files = [ [[package]] name = "aiohttp" -version = "3.14.4" +version = "3.14.5" description = "Async http client/server framework (asyncio)" optional = true python-versions = ">=3.10" groups = ["main"] markers = "extra == \"aiohttp\"" files = [ - {file = "aiohttp-3.14.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dea3b3653c1d0d6babd8ce09cb9e5a7776864315d9cfb1c569f926389874a261"}, - {file = "aiohttp-3.14.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3099a389e5b5900fc79c6f613015ff3f8fa06a519744e6001cc68a31ba418cac"}, - {file = "aiohttp-3.14.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:70247156fc76e92919f9aacb820556cb30289a54784299a31714d030bb604d84"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fdf2d2a6ad402797422949f4a200a60d43e3a021695c8a7804aa1d5bbef22652"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ba835fad8d4b5eaea0d34f9461cf499737a720a5f8bc6768d2f6d98a1d3ba8b5"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d4415ca5c9c8b24bc2f5733f870d4eab4929e680203559ba60131dd1a27852a"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6757e02c2c2b0d7985f57be87cf4a7c5b35708f849e1feaea3f77656ddb9dff"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a950bd8418ef54eccf5f9f517f08e37c1adab4bc50a470a0422ee1cc1032e29"}, - {file = "aiohttp-3.14.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34cf6f2fe4fc1d7183e8cc0d8c48bbdda828a740bc372d8278126149714d343c"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc0fbe4f79c3b156d754dd062718ffe404c3b31ca878d9d2b88ecdbc72ef8369"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d3d50a5a07a2b31a4369b86dd4a3acf3c2577c45091dbd5e884b198dec56480b"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:de15c46a63f46da881d219e44a04778c40114c756e5575b5ea38143b20eb3713"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:caa4c0fc9b25e8c679baac68337e9c00deb6baf6601fe6f07e8511469cc1ceba"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3647f8c090632c70abb1e80826e4ee24faea3f895f0283b60e91a0b17aea5e34"}, - {file = "aiohttp-3.14.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3f3e8030169843fb652a60a3d32c206e03f260198aa398985a48b41cd7e42f0a"}, - {file = "aiohttp-3.14.4-cp310-cp310-win32.whl", hash = "sha256:a1205cbdddfca1428129bb6d23e0b292b09e681df951fa828145d83a63ffc0ca"}, - {file = "aiohttp-3.14.4-cp310-cp310-win_amd64.whl", hash = "sha256:e90980e0454a043f81b435309a089ac5deab883779557eb58d004f33990f61e4"}, - {file = "aiohttp-3.14.4-cp310-cp310-win_arm64.whl", hash = "sha256:e63eecf9a4b670a24055d5c0486128af16f83b02d9817abd685d3238940f8752"}, - {file = "aiohttp-3.14.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb0093ca0817019d539f0d27bdf98e823944e05bb7efd9d2337a45b92e4d1b06"}, - {file = "aiohttp-3.14.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f482dc9c8309801b4259dd218609d3dae0a7bcdedeac56d90500eabaa0c23465"}, - {file = "aiohttp-3.14.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa800bb7c1d00e166493931f2ddacb982db913292503dc2f4884db1f2bc5f105"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d90e4dae71b26597f6d1fd12af7d092ae67551edf0e524b73e0687214b79ee33"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5b681054b8c3b86aa6a0384b6ad7f5cb78dccbabab1f4a3a6793f98ad1378959"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6dfe80b41bcf8d80d2125fb99a171adeb86db2fcb35c1a68e0226acba0ba7f03"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:71e4a59c6a8c5a6ae8b0b696c32635913e8f526cc01448762eaf5a3c59df8a4f"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f887c3b7fb3058fc1ccd917f52078540c18d938d12018cb9edd64b6811d20c57"}, - {file = "aiohttp-3.14.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0da4525e9ba145a11617d2cd7e44fe1acaf471f9c72a0cad28e72879c1020fbb"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f7e8d3c5caa44fdbee3eba1aa1417aa58c74c95d4089fe3c451911117fcbb2f3"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:09092cf906c18c824b6b16881da5a89cc9cfa9b15344e496bcf880e9045bee33"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:dfd144837e92264878bba6d3a7ffa8206668b21e87748740afd45d193e48c87e"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:9413cffe4e0d654b9b524f9c99dde8cbdb37e0ed9a2c4edd2e63adbac6b374e8"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f50d719f97ba488dfb8e306cf8c8cc172ff0683ec0af53917b288229aa555ba5"}, - {file = "aiohttp-3.14.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:68ed4824d96b7afec1f3a8d7fba190fe282718041c5772e20298003e1e3e5d66"}, - {file = "aiohttp-3.14.4-cp311-cp311-win32.whl", hash = "sha256:d7a41d1427136828e6b11d3f3fd194d4357d5205a5b610be7ae07b1ba52ab974"}, - {file = "aiohttp-3.14.4-cp311-cp311-win_amd64.whl", hash = "sha256:2efbdb87e79d596325c4eefaef0f4495d701145e882351310ebc538e854dc7a3"}, - {file = "aiohttp-3.14.4-cp311-cp311-win_arm64.whl", hash = "sha256:ac6e6f90d9360e460c873f945f11dc8698db0a71fec6612823f1aaaab2c11faa"}, - {file = "aiohttp-3.14.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:55b0b335982b0db7117dff7f6a8e3aad43c4105f9e392ca04f9fc8d958a95cce"}, - {file = "aiohttp-3.14.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d0d8e435582b0d53009dac99e26a3d2be932ed7c9dbfcfc70f3fce1cf943bd5"}, - {file = "aiohttp-3.14.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bf734016932d68e1324cfb638cac7a0866a83933a33badf15e836a7e24efb8c0"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:322e3d741b3133bcbb981a41d4f9b8ac3545c18de49c662c2b1f4e1c770b98ad"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:15a3bb5f90a4e515071f3617a45dfe26560beb834a6b6e108cdf4bc9e9719ec3"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6c044e52df1a466af82cad3518c92ea80cc4ddcfea86966ff083bb34bab29bf4"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d613d7d51bf06fe9a5e3aab86ce06d835bb0ceb1a31ea9e8766df4a403ae62a6"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5e93ab6e6330dce40f5b43996f1fc5f2543296d263a5e4b59ff09e73870b7d8"}, - {file = "aiohttp-3.14.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:20134dc8e68c67e7478124d516449428684c0545b2d3faa575691c8bcbd56678"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f0daef5ef012369dddc391c61f604111424aa9a96313a69fb899018b09d1b01e"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:19290a108de0718b73bc69b86e788975c6a59855c671ebe2a98a07a6f968328f"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1494877625baeffab669f4a25a09ec4eea721b49e35363081a2a8e4231fe141f"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:a779ce4bf099ce4ad2cdfed62f1ca536d435f53237c54ff40172fddada24d1b5"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0b4cec9fca876e2d4f4c6cb32b177390132d04618867689f43fefabf3f5c3980"}, - {file = "aiohttp-3.14.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:217707313e23aedde9bea67cf8365c7b138b549ae179121ef3f476cf67e3173a"}, - {file = "aiohttp-3.14.4-cp312-cp312-win32.whl", hash = "sha256:18a9fb9a3f6e6e63f4d27f9adeef313a2d3c69a84d31170a844623824e722534"}, - {file = "aiohttp-3.14.4-cp312-cp312-win_amd64.whl", hash = "sha256:69dcb02d33dfe415d5ee342cc63b7d320efcaf4b761701c7bd7bfb91c715481a"}, - {file = "aiohttp-3.14.4-cp312-cp312-win_arm64.whl", hash = "sha256:d36b0263e7c2fbf1750b9f35d4e7e48b0442d8c45e4a89e3e74168821fb014bb"}, - {file = "aiohttp-3.14.4-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:264b5a7568306590c44ae4a0237ad1715e35d447ea44ebf324e4c8fd9f78f67a"}, - {file = "aiohttp-3.14.4-cp313-cp313-android_24_x86_64.whl", hash = "sha256:17e5d7c7775d8dd8e894c7ef6ebfa26509de36868a9a6c7c4fcfaf6a1bf43d60"}, - {file = "aiohttp-3.14.4-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:e91dc8fe9cbd052d16f7f1267e285cf8bbac4d2194bd5741f05ef201c77ed09e"}, - {file = "aiohttp-3.14.4-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8df6157d31703972aec9e3b93963f039ff06318301e30b007c3e941ff8a7ac42"}, - {file = "aiohttp-3.14.4-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:220912b351549dc736c59d104dc443fa615753102bb778a4e98f86e4d94bff6a"}, - {file = "aiohttp-3.14.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2efa42b39bb3f524d5eca3760639b584afdd1143a6b047fda29910ffb75e4993"}, - {file = "aiohttp-3.14.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e7356059c8262d2c1fd95242e2b7b70fbc6eee3135bf470049cbec3e968b5b0"}, - {file = "aiohttp-3.14.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fac247d0cc956d732df1211ac2d8a9999ec8dc1a92a90401de9d52e4ead546f7"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2eb0f8b03b4f2bd154ed8cf7c1a119a1ad04808c258bf58f90138c83b8c6d5"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7fbe827d27e0e369fd7bb88ceeaa5b46ea006e73e015b9dd77e3723a53162293"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a70387146d03af9f047c629b71aa27d9594b3b31ec4c9c91e1a73d0d8bf38e0e"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0d0934926fc65744e2fdd44ce68b2d79d5ee608a1e23f0596b35dd696519bb7c"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ff4b366510c733974adb7a4102c094e4a6308e6f369315a4cf14d2d0a619cf82"}, - {file = "aiohttp-3.14.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:85fac7c99e0ac3dcbd6ae1c33774e0603bfc732ddb967a6fce4a731103c1888e"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef1e9c3b4a2300023a5dc865889ce532cfaf6798ba4ef78fbbefe738a9d23efa"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:97e65916588be0f952b3307aaa8460c0771fa98dbea2dd27dabc9f5d84d53c3b"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:840775cb39a9424f9edf142133a1192263ac5bd79117ad2a16602cef6a0c1e9d"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:54f9256430ca040d58affbd551513de13a5cff7d065204fc52b9a1b0af09a049"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:6112d5931bf12c776188cab81b82bbb17d86e2e1381f2ade6edc43e6b240f0cb"}, - {file = "aiohttp-3.14.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:facc6df39047c4732cbd885bb62e40df20885fcd709fc399e11f81b45ce0fff9"}, - {file = "aiohttp-3.14.4-cp313-cp313-win32.whl", hash = "sha256:7968634fa3a967a2bc0b9aeba1d5a1955501dcd7d0de44b96f7ebfb662797735"}, - {file = "aiohttp-3.14.4-cp313-cp313-win_amd64.whl", hash = "sha256:c0a894b0265d139cd4c2c8bd4643822cc289a4a5331e21e810881bd000ffb2dc"}, - {file = "aiohttp-3.14.4-cp313-cp313-win_arm64.whl", hash = "sha256:da16c3037178e72589d91de59536d271dffc92c2be2b47c38a45538cba54fd29"}, - {file = "aiohttp-3.14.4-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:749bfc43bb1df71bbe6ed215044d5412d786698fc5771d2037436ca49622f3c9"}, - {file = "aiohttp-3.14.4-cp314-cp314-android_24_x86_64.whl", hash = "sha256:c113e4b489d711f606ca278cd8dc89179746244ea841aa0638b1b134600afad0"}, - {file = "aiohttp-3.14.4-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:50969522bc7022026a2c7968e67da5c789f6b716b988edac55dc630390efd5df"}, - {file = "aiohttp-3.14.4-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:cbf92cd7a1c800cee244558dd5630abb45c1c1093ef7b0d546a99f526ff7a9eb"}, - {file = "aiohttp-3.14.4-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:fc76be08ff407fba717a769aff04ca1b4bf9ecfdcb5caadef84a563fdbbd146d"}, - {file = "aiohttp-3.14.4-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9b416f995b68a921069e6ec61fa07f2ac3ff033d92e97a69f673af89f5bb954d"}, - {file = "aiohttp-3.14.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2c9585101cfca10e74a07cc0ef2bdc6d90616e6750926b20456f429d0608f740"}, - {file = "aiohttp-3.14.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3c4dcf611b095e7983421f49d01ffbed7ed574891533d606ea115fc23e7c4e90"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f8f61a9b5fa56c58e3441f9dc64137f786232d40fb89127190d0e0f84e1e5865"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d43e538dfc85b705fd832620d050970ef5613b3869a7169b44a554b9dab9eee9"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4135c4bb4b7682a7633fadc7170ea969d843f83aa7224e70111a20675105c985"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9055324f156a94fdf6dc9a825ae60f9a2947b88f591ea81ee80826633de62ae7"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb22c8e4b60385a9b414c70c6e8b2d0f4b23ff7fc4bb572ceb58297b228169f1"}, - {file = "aiohttp-3.14.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3b6945559a260112742ed58cde2165488d2fc51aeea34afbaa99d9371b43e1b5"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f4078a90b174f15efb2c8725e8720c40dbd3b2cf6350dbc085c964a938d9de7"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:f433c5654e32f72de3ef074d715eb5c7604eb6d28a5c2f3c9e5056f20fe6b306"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:871035fe79c636b6bc126ed78df37d72b830dfc751612cb4b1040360edf2719f"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2617132524f66338f6c1d218cd16081576aefc40df4f2bcba338a99fbf67fec1"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d8bc326133272deee8ef337581550450e4bb735c0520be893b950a1f5baaf41a"}, - {file = "aiohttp-3.14.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ec57223e261b7fa9979c12dbce009ca53439be76cac3af27f860d3e4b1d6f7a"}, - {file = "aiohttp-3.14.4-cp314-cp314-win32.whl", hash = "sha256:7242043e71fc449a19a47d92f4e9fd1e0ae8d3f88488982381f422bf6d651218"}, - {file = "aiohttp-3.14.4-cp314-cp314-win_amd64.whl", hash = "sha256:019587c7b3a44917dd61bcb312fd5c034f341dc9851b83e7b41b65e08b68ca0f"}, - {file = "aiohttp-3.14.4-cp314-cp314-win_arm64.whl", hash = "sha256:60dc71d38db0988f37e78f6ad4a010a2f6355cfac3fff5f130cf5ef2231f3f0d"}, - {file = "aiohttp-3.14.4-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:674f53ab9d2794e2dd767619a3384bf1006f8d075e43c19d449a645f8ff641c2"}, - {file = "aiohttp-3.14.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:6d243221f73e5ac546c2ed9255100423e4bc092b08b944f23498e8cf3096c26c"}, - {file = "aiohttp-3.14.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0daa016eb74e7888ed5f9ceec6eea3158999c1c4a115ef5cbe88baa8d924f94c"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70c031a622aa20add05ebd234b90adaf6bf51c1c88cc305ec760721af83308c3"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7df363fa7c38945a896e12c69af4a1a56cbd4152791d9e41fd0bac396b72de38"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:02a508ba5ad91c4d730523584c0adc65882274bba5e37c33bc2f475e37577256"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0cb3edece6fe6a944eaf97d803b88f606da6bc1600b1894c2969e78ffdc1fc29"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21ce1223b461bcc5fb389a7204001578f1c0b85c2da60a84d915ebb021294245"}, - {file = "aiohttp-3.14.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:35d5432f0dc1c8b71307e9112461b52f336da225e344283eec4779222c0a1dff"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d6ec364493057c118d08292f7cd60865965c209167d8657b45643a26aef77495"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:70492983b7aed9e61bda82fe1ce80bcba9199610886443133783a288638923c0"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a77776673331577147e9d25cd7833a72e8891b47556336cff06ba1569e488b99"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:73799000dd6fd5247094fd8e6d3e1eb871e41aab5cc35dff9d9f654cd230bc24"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:27b370fb532e707e8c96d04fa0c96301fb7dba2d50aaca57f6c456cdfffec5bd"}, - {file = "aiohttp-3.14.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:884e0d1c707b6217fee3080b9b4029eee7551af788ee761010df19be158414b7"}, - {file = "aiohttp-3.14.4-cp314-cp314t-win32.whl", hash = "sha256:f2e3d34edb151d3e27f93a8338e2da33e2c7261cd4c879ce5f5fe280cc190ea5"}, - {file = "aiohttp-3.14.4-cp314-cp314t-win_amd64.whl", hash = "sha256:88cf889e51092537fe44adfbff96c2a22d6479d6f92b97b3d413fbfd0a4decf4"}, - {file = "aiohttp-3.14.4-cp314-cp314t-win_arm64.whl", hash = "sha256:ca450c6d42fda7c0bfaf0e200f32f77c5f2c960a33be1e14d197c84588b7f5f6"}, - {file = "aiohttp-3.14.4-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:3b10799df72f66c30935bc661cb89e5ac2918debfc575e350e226fbaa846cbb7"}, - {file = "aiohttp-3.14.4-cp315-cp315-android_24_x86_64.whl", hash = "sha256:7ffd7f9dd39caccc6b2f68ec0339435ecad2b20f6ea2e2b3de91bbe464ac7137"}, - {file = "aiohttp-3.14.4-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:a0a7a227353f7693f73878ad14cd2623cafadd656ababcd20e2adfb7225172ea"}, - {file = "aiohttp-3.14.4-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:1c43b6af8e4708e8b3812a9ee4f79895207e12d555b7f6d70deb838e0011e12d"}, - {file = "aiohttp-3.14.4-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:97416b2b997e5e9b817e322b2f0a89b76c54cde22471f51ac17ac15e10901ba0"}, - {file = "aiohttp-3.14.4-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:ee2a5aa31e507c17841d592364f2148393b17f83bc2766e9211e1eb31ea72a70"}, - {file = "aiohttp-3.14.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:5d5d9843c34866e986dd24eef713452609e304550c471320ce7b54b3cfb1391e"}, - {file = "aiohttp-3.14.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:efcbf93e31b52c21665b6ebc489eb6fdb0dfd86b592edc677b5cffdfa7b11677"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f1a79977794592dcf6485ed964ec2448db527a1bc0c72ec89663658dad3a739"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:515e7ac6d27509dc3ba2c35fb88970b00b9e7b07ee7cc947c8733dcd54ef5def"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:185154ffa3b54765b5de96f464f41cfa476f8815a03854ae5e0fe4d48fb06e9c"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6aece59f77959628a22cd2ffe48b102cda9611d680e090f204385b3998a1190f"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7205aa6589f1ad1306c6994ff2e1ab5efabacf938f9ffd7682fb225c197b06a"}, - {file = "aiohttp-3.14.4-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f38c7b3ce60d55ac0f2a9fd2edc194789d043fefea15cfb7dcb40b7d5f561146"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:b0a1274ee4ee6203c15a341cce87f9f3df8151d5496047b3608bb62bd969cffc"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:69ce2407951516f413adf3132b88451eababd710ce631f83c81a9603a3640253"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:b84d3d057c60eb8e0c2b457a1203e868d82709d3f0c272a4975dfd88c2414939"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:4ecc84f69c9e217984f6877e832e4786a74567432c0bf2b7512919fbdfe18ade"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:878f2d7950238b2b0a8cbb88054444a125f0cfbc77f54c811aca0483132a9be3"}, - {file = "aiohttp-3.14.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:6ff9d3a0e6935f1cb0a6685f9f4b3f0d3e406456d7a434a03cf309b8cd5d7a2e"}, - {file = "aiohttp-3.14.4-cp315-cp315-win32.whl", hash = "sha256:e07dfd7cd360f20be26dc2487ad4c7f21b0b39fdd593e9ebf37d2424ad52defb"}, - {file = "aiohttp-3.14.4-cp315-cp315-win_amd64.whl", hash = "sha256:921fc4f1ad549091bfc39cb5e93925b04f307f83517756a3111843851130efce"}, - {file = "aiohttp-3.14.4-cp315-cp315-win_arm64.whl", hash = "sha256:5be8af106f96fd625f6c264fa9faaaa9e0104089684d9015d2fa5b6eba6407c7"}, - {file = "aiohttp-3.14.4-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:e69727ec04a4608200ff32ec29478299df7657e2eb78c416ae338d0ca6662596"}, - {file = "aiohttp-3.14.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f8b658dd3ef2ebd7708b311ed96ff7cb5edaca001a30018a091504ef492bcb1c"}, - {file = "aiohttp-3.14.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:3749e018123df1205161a73ba96d336e17e9cf6b947295e53a43571de420e7b1"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f28a3c4fca436b2e594090e7cd22558f5e93a30ca18516c436de982da6fc25a"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e099aae21246992a1d84303ff262262d054c474e46cace33b0d5a69810c71877"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fafb521891e646d9cf5da89f01c75e7159d08be7254a024149630a698be28251"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1d385db2cd154bce0b3dd451cf2a52bec91ebb7be2c3a5d06b14b4391631d807"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ae8a244889d8a53549851bf595b9f382f64acca57e8762da1ecb26ba786828f7"}, - {file = "aiohttp-3.14.4-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:681dde68ff8d8d5e7d5abcad4feb45bfb457a218310c919825e21fc36cac3d0b"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:b91a6441fcaed88ca7bca67726b189332df3ceb6ac0dfc98dcb9654bb723288c"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:f15dbbac49bc15eaff95c0b8166525c4050996af578c7be141e145f40ee2cf24"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:7abae043e87692d1c2adda1fab501bb0612d28c4a23eb082005c1e684f792dac"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:21f4624fb1051fc1aa10d57a636a80e829f7d0417462d6f1ce380b08fe1a904c"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:2e8dc3a0fdaf9d12b954d3d06cc4c355d91b17fb6c671715b593624ca4c379f8"}, - {file = "aiohttp-3.14.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:1410b6f6e3d52ea7c02c950496522ce6e85d5543bf154bc80a6141e505251cfa"}, - {file = "aiohttp-3.14.4-cp315-cp315t-win32.whl", hash = "sha256:a65189a89f3e621f7c27a968b5131bbca29126e2b8517dc72b205747a39d4c96"}, - {file = "aiohttp-3.14.4-cp315-cp315t-win_amd64.whl", hash = "sha256:2b2c95f5f769eec92b552969db1f79ea0282058ce5131ed0f2fa540b4af3f14e"}, - {file = "aiohttp-3.14.4-cp315-cp315t-win_arm64.whl", hash = "sha256:54209fff79346ee1ef0d5cbf92fa80a5bb37396406bb4d932e5107f9c29b2d3f"}, - {file = "aiohttp-3.14.4-py3-none-any.whl", hash = "sha256:5c6758ba62aea282c537179cfc8474a90f2b5f7b089cc5ff66d8920d86a9bfdd"}, - {file = "aiohttp-3.14.4.tar.gz", hash = "sha256:831fc5bd39ec2517851e348f613ddb5447a47cf4b71cb09845af7ad7ed45d8f9"}, + {file = "aiohttp-3.14.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef692a24087a699c0a4a26af45e746e0c1eae2116f6d8a5ff91d8aae2b867b45"}, + {file = "aiohttp-3.14.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1220353657ad49493551f089ce02f1a348fd57ffd585bfec77f2f3c4fe3a7346"}, + {file = "aiohttp-3.14.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:330900acd0dc4cb8b27f9c127fbaad770964845338493e7906ae3822e82dbf8d"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0684952aeae1f5dbfe02d46039338513b94009baecd15d8e4098a357c4c4a2a6"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d94e44be379e569758fee8a9a58431cfc3c2598c708b92b1cfe96c66b4c94aef"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5af42135fdfebdadbc2bcd9c0842a48ccf0d62794c36a260b21dc4b94d1e0119"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f07fe3ac408d8b3f768be471dc3f56d43843c47d97c66120534467a15ead197"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f375db73a39f5cf83696d500e21a67f418dc9a988955756f254be8f03b7b3651"}, + {file = "aiohttp-3.14.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8df7d481654ac96fe1ba9a02a9f67770fdd367823e0d5ef01b922725c4bd2cfa"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e95c8def4b81c5d68d5cf1f54c07acd7c0d2577af244e5b6da802120825737c6"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f2ebb54b3f932210503072f09974b4fb574d823e497a944adfdcd140a6a00255"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:038c2c7e8caa26b6c8423779b5eaf1893904048a512c19b32fe841ffa5592b50"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:b7806e804889231b0e06469fd4a5c06313d1c0a3377322b6d9237fa5e0fe4167"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:9bab2045550c4fe0f7baf89574db1b455c195750702ba96fef1f16972b146617"}, + {file = "aiohttp-3.14.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96a2e584f0b9ed8f1fa33211397dcf67bb7069866402cb405d191c2f0defb9a3"}, + {file = "aiohttp-3.14.5-cp310-cp310-win32.whl", hash = "sha256:602c1e9b718a3275c580149f947e7fac65044c0a20e599553fb12e9700da9eca"}, + {file = "aiohttp-3.14.5-cp310-cp310-win_amd64.whl", hash = "sha256:bea559ad70218d230663e4210875735076a9bfea5994cef34a55a25faeaf2544"}, + {file = "aiohttp-3.14.5-cp310-cp310-win_arm64.whl", hash = "sha256:dca3fa8d8a0a26679862eccb0b1a9151b2b9f1cd2c212e7a6335778faaff5833"}, + {file = "aiohttp-3.14.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d51db97c96384fbfcaf8f4c65922183a68b94f891c3c10c862ef5f6df2adbb1f"}, + {file = "aiohttp-3.14.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ae53924aa853a7a2ca20ed4142c7c6b56338e4d4cd999e2980075b9efc2e257a"}, + {file = "aiohttp-3.14.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2c473a355f9239efcb72c92d5abfd8fcdb0cc78c8e9af607e72ca12dbb36593"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32e8fa6644e541fcd7e02430588c7fc93b602c1778ea0bc345505db76b61cfb4"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:579f97d5120f2971876d2ddca2968135f6944d00c44c3a6590ad7d86ca9b403f"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:24409db442e2fb6e766bc7f3943851a8381dec3098140e43bb2e843b79e31b12"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5e8f97c0488ffda3082766ac0f2c8150a9a58c4d05788330e479cfd449b37939"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50a195903119008fe9cc68710535eb37f556ffffd6a7759afe70a2c145587045"}, + {file = "aiohttp-3.14.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0133c3c3b54a0bf1e71fa5c1ad95c93f07fd54e24ef1fe182f5122e1573d2bf1"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c172db893e516e1358e65a95ee20b7ce7173963eefe318b6ab2a2220688b999e"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f2a7966bda23dd85051f1661ce0ace38d6890e05ec6c357ecae9d2479cba377e"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4887d130a7bbfed3a85493bb5a25e5b5b558d40c1d986dd16970d2bb26d63793"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:225c579c23b68b343cccea27a7e06e3bd8ec23a09c30b427eb3f1e4ca6239b20"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ab52d8f1fc1b64821c1fbad64a647ed6203627004059a6d1ed4f0858a1499703"}, + {file = "aiohttp-3.14.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb131d775a1573c1aee66656bd78b023577bbdb6cb8349a07773bd4f73e68a6e"}, + {file = "aiohttp-3.14.5-cp311-cp311-win32.whl", hash = "sha256:e87046c8ff77a8decdb6a41d8ab25824b47531b2da933aeab0c1e21c7acff329"}, + {file = "aiohttp-3.14.5-cp311-cp311-win_amd64.whl", hash = "sha256:6f275c11d1aa6d4c458e05a68be084efe3c55a113d99e3f46a318098e52948fc"}, + {file = "aiohttp-3.14.5-cp311-cp311-win_arm64.whl", hash = "sha256:b032a0023eb41d768ce77d83210ab2a3c389bc0b09313273c7e1eca48c10a755"}, + {file = "aiohttp-3.14.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df37b620684e19b5e25724412518ccafc3b1a49cdac706fdbd2f983fad943450"}, + {file = "aiohttp-3.14.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef60869969180ec2464f1349aff07138ae35ca2200f0946cb3552e49e8f301a8"}, + {file = "aiohttp-3.14.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d079c0a0135c36e7beb6f1c88087c8f108dc5891cdd0b5eafa778421bda70ed2"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abfda5cb094a829f7bc25216a32f7db2e85cc65bd59910f8e7b40b3d9b224764"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9cc882cf8619109583c906b4d4a85d6a111a98afa34b7a450d1e08118d016820"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7457580535e019e1247ea35d6a02bf081ad30c26d0cbc210c93f6c3ab67a0835"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c5ed596aedb9c42afd3fe0aae3117725378ac73d2cc5ddc735056fbdb96c5d02"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20f085697d7e911f1f73c43ed03fafbed1e7121797e2eb5428efa80398060584"}, + {file = "aiohttp-3.14.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:74b0a9c8270f9b0a11410e124ff8d4f18bfc1f1837440ec84da5ae7b50927b5d"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:19e2ba471507c34f8252402ab50f5ab512398b9ea8c8f1cb26beb3f75793ba30"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d418ce2af40c6bb685b3f663e9e8de27cb0a22431d8e88a167348d7f01878073"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:70cb4008ac2ed1e0ca9e824deb4b53d3aa0d939109698ebf1e723a84337bd794"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:a23fe35d776bc03cb495938b9594450d047e3bc08c5255315a82323e9cb7d2dd"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3e0eb43bed3c6801a6cee315195377789e90b2a72c2277a475b578535312488d"}, + {file = "aiohttp-3.14.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be7dd397d64ca3e1869626fa9318aaebb54b7bf93bc72d7a205448d83e4f748"}, + {file = "aiohttp-3.14.5-cp312-cp312-win32.whl", hash = "sha256:eb324e2009fb54db30a071dad7caf6998ee2879c4704007efb244514dad1fec1"}, + {file = "aiohttp-3.14.5-cp312-cp312-win_amd64.whl", hash = "sha256:2cc38a4f2b516bef1714e690df87a0e043faf1a7693c82d860091684453d5111"}, + {file = "aiohttp-3.14.5-cp312-cp312-win_arm64.whl", hash = "sha256:a63afd1f757de949028387e65a7127b61ad0f775432dbb0e62816ae619fe69ac"}, + {file = "aiohttp-3.14.5-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:9ad7e6aa38c20da1be697874349c4c273c8a03b7887169665081706398d0439a"}, + {file = "aiohttp-3.14.5-cp313-cp313-android_24_x86_64.whl", hash = "sha256:f59c7673465908cbe506117176156c127f29f917677afceada34957179221d91"}, + {file = "aiohttp-3.14.5-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1b5416552740edf07234cc9437d0706f2acb67b93c198670b1a68e1b2b587dec"}, + {file = "aiohttp-3.14.5-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:43351bdb5e4c3cb7d1772368e988534e869a74db7778079a83782c11c69535c7"}, + {file = "aiohttp-3.14.5-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:c8c4478bef6d57fcfda15dae461ea3c9f06aa7b257c58df3f2300174ccbb185a"}, + {file = "aiohttp-3.14.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c2c30484dd1417ef98b51021ffa2cc0d7f3c78918adaaaab7e70817335ab3e02"}, + {file = "aiohttp-3.14.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dab9ac5a67c8d1f070c00fa8fccb7cbd1b8dcc1a8d6b42f37540df9b3d4cc603"}, + {file = "aiohttp-3.14.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e1cc2bfaee8c214f06080a7c7d5772419b8a1108e8e5349236189811823fb02a"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74efb69332b85675b1eabd760a8cfc2e2cf42c60607c66f88014c1bdfb40942d"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:42b5e616946dbaf505e2bff18c9af2cd4ef9e7ef300ee58a6e951a5b7cf147ae"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f9033b43f511f27547c557dcaba0177649e10a3725336ccd2cce0fdc1dc4850d"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:15a310d3c71398e3d7bfc93a1a73fbe664315cd9e9016b8efc1cff85eeab7155"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ffa3a523a36d8628f98c06492ae16a31a23d14c0b4ec721757b477319f656d6"}, + {file = "aiohttp-3.14.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5fb6a6e919bfb703227bc1ce6579281b84b1a2ba57deb9794dfdbec7dcd1e40c"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:43e1b7994a8b038125f722bff07492ef501110722c2727c408995d9fb864c421"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:5f3e96071686755d9cd3600c3880183eb94b012178e92746d68101800f0ed8a3"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cd88b01f3d37b7a2a34f91d98f14720206f1ea3d540843fab2d649dd5fb91fec"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f2ed8b64dc0c651c0f5a9c926777719770021251b8f336d97c4b80b660836ce1"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a9918e58faf62ba2c7147927d06057aec78f42475aff5048047ec47e7265a600"}, + {file = "aiohttp-3.14.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:42f320d4a5b00b9af0bddcfec5407dc6f2d9816f006b2f79ebbaa31f16895df3"}, + {file = "aiohttp-3.14.5-cp313-cp313-win32.whl", hash = "sha256:3ae800a20947e2c2e53088047d021e6bf7d51560cc49f6a0737a1f79d2e3a13c"}, + {file = "aiohttp-3.14.5-cp313-cp313-win_amd64.whl", hash = "sha256:d05e94cdfe0d15d0206f970722d2554780ce562787b21b218b275447f8751319"}, + {file = "aiohttp-3.14.5-cp313-cp313-win_arm64.whl", hash = "sha256:f001b571ead90ca1770f1e616db255351a1703317f20374c361ef22f12c06d09"}, + {file = "aiohttp-3.14.5-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:939042d5cda21d41a6f512e7cc8b8e33a2aebff863352251da495fbd91b673b5"}, + {file = "aiohttp-3.14.5-cp314-cp314-android_24_x86_64.whl", hash = "sha256:6da32b5ff3fd78d244e37300463434c7145162bfd2b6e9e915ab164da37f7343"}, + {file = "aiohttp-3.14.5-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1b438b73c38111818d0c9d6a5c2bfed8584c8e503a49ef085d70e874ec846738"}, + {file = "aiohttp-3.14.5-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:755933b107ea7a6a9ac916f635a70595a5b1a32fac10a8ff0b9f2ab88555550c"}, + {file = "aiohttp-3.14.5-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:b3cc509327c7b27f6f4727a8830f4004f6df7766e179f2f4b8e54e65c0bec5d3"}, + {file = "aiohttp-3.14.5-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7bd8ac754ebd6733a3e2a0dd1674c4d8ab086196803fd8dcd776f07b4e2607d9"}, + {file = "aiohttp-3.14.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e724a7b6091f0b1ac064f9d1b15ff9ec52e6033a86cdae649e5f086e32a3c0db"}, + {file = "aiohttp-3.14.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c32e26310cc10e547f53cd13d39a369034f69dcb7d749d5cb0e5f67bc196b6ba"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1eb8167961ec4dfcc8cb9dd50bd0ee72519f7ef496be95203e49e27b01618382"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c1d60eafd9c7e8e74abd03a5b00df44e7febfe6d9b89b559c0a6551eef0699d4"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:137351bf20bbed9a65e839f4a4452ac377389bdb2f2857d2acffef38f5e9f2d1"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fba47bc2c3d7303c3d027c6cf4d07626c37b1314ac81f5820c31032e0ca1f677"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94684b879ac1d71e4238850c99b62dc1b28d9086b156a2555f082010b85a865c"}, + {file = "aiohttp-3.14.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56572c42e3ecd636de8d2c3dd54cf5fc939cb5c32eb56297f176a0d366fac622"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a95529a92a446db351675f4aab518feaf5e99842f63f5dd17160c2b74f382db3"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:3edbece0379b8b4aaa67619b8aa2399bb66fce372cd5911098a434ea77220aa0"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:56d9828f204331a5ca8850fcfe2bcce95a149f1f223f60cc7216e5524978e480"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:20064a177a070d789ee64a50b01a9161d3468e989baacfc6c714aa685c4b332f"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:81c2b3dfd56c62bee6108e4852d5970b4cf9086390b6983f52b666e878c1f115"}, + {file = "aiohttp-3.14.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:09ec102b4b8c9a920275733bbc11fdbb615efe6f9231a06007c0218d336fb77a"}, + {file = "aiohttp-3.14.5-cp314-cp314-win32.whl", hash = "sha256:9c428eb2bd8817588d16a0ab898aa4eb5d141f896aa2b394cc79a4cf61d9a8e2"}, + {file = "aiohttp-3.14.5-cp314-cp314-win_amd64.whl", hash = "sha256:6f967dde489ca6a8c02d093ab245d2cbf50ccb5c36adf0188b17b0ca39d24b67"}, + {file = "aiohttp-3.14.5-cp314-cp314-win_arm64.whl", hash = "sha256:1d2d981b53dd09a319e3570ef8cc3bbc3ef86f5a7abef0f6b2bff3867db3a9e7"}, + {file = "aiohttp-3.14.5-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9ce66feae6ac65327379460380549bf1b8df8e17c4e25df2a2bcf168272e3bed"}, + {file = "aiohttp-3.14.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:27c2322e03f66101acb09869ce1cf1efc04994ee95e1735b69827bf8c8b9d781"}, + {file = "aiohttp-3.14.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ff75a7537413a86e7cafe98e0e1d6e3dc4b15c6349896e7d5c6b881bfdb6d550"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c061aa954daaf57d2a4b8374f9fca621ef0e1b603584431c220c22458c59b6d"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1612fa5857b37bf32e5c1eaeefb96e3b01e9c70679eec81f0934e8a600080863"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:adbeee7d6fd4cf5fe0aece2fb3edc4243615d3180430ba8149d01a90670cac99"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b2966998927d7bed9db12c0a4647b0c7b179755878fc9c357fe1ffd3e3b0c1a5"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e317e0fb6b16212c881d2205a7d87414c29acd69320b3aa6dce9d9c7b86fe4f"}, + {file = "aiohttp-3.14.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50343c1757b4b6f6708eeaf24534b32f19dfb99fb1b762c00420867a62fc81e0"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:083673c7a94c3ea035caaa5ca04288bdb44887abfe1f5ba23294e6a4b03efd2d"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:2528cb4c6b92008c76ac9ac6298624069bb2db91ff4929905512d1d84485f658"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b1b8ece1e71132d2afba4dbc0c3d62c766e25165990b25db1196c04969eb3d84"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fce9523df31cea6284f3e2c479876750d7687cf671d7b25d32b19effc0e86441"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:09e0eb18c7e0c8777e2f9149de63799195b9b3ca1b5c81ba6f32f2c6b8628210"}, + {file = "aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6774814fd5c338e72ee0da5cbb9432816df450e69c019f72b5d29bdec2a1792d"}, + {file = "aiohttp-3.14.5-cp314-cp314t-win32.whl", hash = "sha256:33f706574e32c6e694f352a856e05caf18f7f2c871b3e87b41c55ea452b409ab"}, + {file = "aiohttp-3.14.5-cp314-cp314t-win_amd64.whl", hash = "sha256:5ba14a839fbe87cf7c12a6b5661c05f324a296eb8363141edb3944ba63d4c9d3"}, + {file = "aiohttp-3.14.5-cp314-cp314t-win_arm64.whl", hash = "sha256:1061b364556e8172e8d46b0b183adeeb73e8c42d30ebc745591e1bd89acad52e"}, + {file = "aiohttp-3.14.5-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:788ecaa9c10533b786ce5ba70c4f2df78ad41819fd00a6c99d92b66f9a32e1da"}, + {file = "aiohttp-3.14.5-cp315-cp315-android_24_x86_64.whl", hash = "sha256:5c76f1802bab718a68ac3cce447160605c734551f95c67ae90fa1132b215cb29"}, + {file = "aiohttp-3.14.5-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:a6d02b4c38de03d9c7617813433e6a0fb6b522797974177d69d9dad431900833"}, + {file = "aiohttp-3.14.5-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:20726f9782d5c2744c1c66255842d1d163bb3edcf768b8de25216bf47f7b6ccf"}, + {file = "aiohttp-3.14.5-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:248d779ad720b49d4fb355720e60c9e5f444f95887bc16974fea48fc56c41789"}, + {file = "aiohttp-3.14.5-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:0a8ea271867e360ac985ae607f4a23ad9a38414b9aca1d49ec98839ae660e49f"}, + {file = "aiohttp-3.14.5-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:823c910f046f23f4c713b8d99a2242dc65f591cb45ee86418fa11762a3c2963c"}, + {file = "aiohttp-3.14.5-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:9b42db919715e91eb76acf3bc492a9a7ccd8bd9adc6745c1412b689735269f14"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3112585250b199296c26ca6e0131640b6a8d01bab8b232d2eb3763ed469de11"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c147451b4a58e7050f7f7394e6c467867c84161560001f9ad4fb2d1446743946"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bf163cc701f3d4ac43ba7d97771bf5fd955220ef5500ef3ee847bc0ecfbf4ec1"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8d40ce41991e9d56fab4f5dc4a51fe59bc3b5c77c27f4b148963064d00232e8"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:276a4fc00b1d9ae492b802763a789c5b86328b989c5ea169f2faa447d6a11c7c"}, + {file = "aiohttp-3.14.5-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50983e3be33d8c0942ab88cec3905b10602f64c469b20153c48c5d4e558dd016"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:16c8abd5bca220a47efe667d26f8460124c81810787e79ee87b242677563d9dd"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:0790ec66fa4013e83c53b9025a45d454723da1a2fce28b3208c9b32d08af162f"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:cb11a971a3aea10f9b8373be628f1df932964fc6c6b174516d318a48c3ac4412"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:932ce7e694bbc29b2bf6f64f2343c27d148d4997c771d01bdade4639b6749ff4"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:a7d470cf7b206e6359fc77b1b860632fde400d5a2ed59cd0181b93a686bc81ee"}, + {file = "aiohttp-3.14.5-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:6e1d8637cf73eebc92eba2e11d4cfff98a3b562f2505bd75bba766d908926e8d"}, + {file = "aiohttp-3.14.5-cp315-cp315-win32.whl", hash = "sha256:fbdc5ec49f9ca3cd24955cf3520b10a4d4c901ba2572094c84274e9e7eb30534"}, + {file = "aiohttp-3.14.5-cp315-cp315-win_amd64.whl", hash = "sha256:a9d3983bd6ab7aa1cfd573544ae98df9b6cb6912a5185a198263e024a636861d"}, + {file = "aiohttp-3.14.5-cp315-cp315-win_arm64.whl", hash = "sha256:e29347c142cf6e99e0dff5e2995ead1d50fa3b51bf37a7c726a7ccfe5419745a"}, + {file = "aiohttp-3.14.5-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:9bf1d5dcc15204d9ec8b8ea4c18fd66e6b80e5de1f4ecbafb3a2f2740f8039d4"}, + {file = "aiohttp-3.14.5-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:14f04769cfefe4734016a856a83af36133cd17779cef9ae817f812b8ba9d6d51"}, + {file = "aiohttp-3.14.5-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:6e4251c0ba4624a68a2c11471a1ac54c3306876c21f0ae86de085cc9241c8905"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4f5cf4dc72a71c4cfa9751b4950be22f733626670230d46e7d606592aa22d59"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dbf53ae2601b7fd5a93c3944deea3a78d40f495226d582c35ef7a433425ce2b2"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:657291433bf4dd3142f3abac495764cd47d0c7c92087751e6666c6447e65fcef"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3e51a27980c3788e6e6b3325d694fdd4898087fa8a86b2763af77b39353da41e"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:82c7583cd3dfdc7dcc927835b4f6c7faae7ecc1ba3ca5879321621ae2e6f8e84"}, + {file = "aiohttp-3.14.5-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6fdcd6af7e2e51d1ba1b4bea16e97b074bcb7b5dd0246a9d8201341bb28085a0"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c8859a013ae0de1074660992139a1a440df3e6b219b86cf0d3f11c2692bb4fe3"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:8966ecac808dd5f473c9c4cefd10cd3ffda71c18a4d3493b7c7d2ae1803bf2cc"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:3093b72c215bda16ce961a6d073f6e71d46e022962a9d5d457c5d4d421c78b57"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:149fb56caf7acb67073126f675d0958d9c4b3125fcd3f6d4877df98aa8a97ce9"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:293d3ae7c6a0ed176a42e59a1b5fde825ead65c835360f734148e96729f928d2"}, + {file = "aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:3f2dcc00191fd563e9075181a14ec31d7dd63223ced7582cc70a15a499de0c79"}, + {file = "aiohttp-3.14.5-cp315-cp315t-win32.whl", hash = "sha256:7779cd97e61ebe583ec2f1c5616cdd038aa08a4453b1848c67842176d054948e"}, + {file = "aiohttp-3.14.5-cp315-cp315t-win_amd64.whl", hash = "sha256:0e6f16f5e49c4b8267988c05ab07760d7064cea57d077c3d068d04b0fbb992cb"}, + {file = "aiohttp-3.14.5-cp315-cp315t-win_arm64.whl", hash = "sha256:1aead151c3abbac6b32942e452020cb66d7efc099d253cc6c20f748e926c858b"}, + {file = "aiohttp-3.14.5-py3-none-any.whl", hash = "sha256:efc21a454892828368b11c2c780de0ff8bc991f73f6b99c6b66e56205470929b"}, + {file = "aiohttp-3.14.5.tar.gz", hash = "sha256:5558a7f5a05af9ecf744af91e5baefc436f93c9333e656c27ec253f9a6bbe178"}, ] [package.dependencies] @@ -191,7 +191,7 @@ aiosignal = ">=1.4.0" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" -multidict = ">=4.5,<7.0" +multidict = ">=4.5,<8.0" propcache = ">=0.2.0" typing_extensions = {version = ">=4.4", markers = "python_version < \"3.13\""} yarl = ">=1.25.1,<2.0" @@ -289,14 +289,14 @@ files = [ [[package]] name = "certifi" -version = "2026.7.22" +version = "2026.10.23" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775"}, - {file = "certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55"}, + {file = "certifi-2026.10.23-py3-none-any.whl", hash = "sha256:e9b54de76e530bb6cf0ccd036787103acb58fd42ba930ea8bf948ddbaa2f61d1"}, + {file = "certifi-2026.10.23.tar.gz", hash = "sha256:a9895e6e2758b371e0545e321a3a8fd1fcfd9829ada8824a936dfb16aaaf36cd"}, ] [[package]] @@ -348,14 +348,14 @@ testing = ["hatch", "pre-commit", "pytest", "tox"] [[package]] name = "fakeredis" -version = "2.38.0" +version = "2.40.0" description = "Python implementation of redis API, can be used for testing purposes." optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "fakeredis-2.38.0-py3-none-any.whl", hash = "sha256:d9fb0518c4eaa35f1f2c94df6b4a4c97ff3ca9f43d6cc8112317a9037d244301"}, - {file = "fakeredis-2.38.0.tar.gz", hash = "sha256:d2abfd24652f86501044499bf08c9d639db050f695eefc06b8b8b6f0bb24dbd6"}, + {file = "fakeredis-2.40.0-py3-none-any.whl", hash = "sha256:b155ef2442134372eb1cc5664cf5638ccbe0a6dde9d1942153708e2782f315c9"}, + {file = "fakeredis-2.40.0.tar.gz", hash = "sha256:16eb05a3e97c37a033c73d1da7e885eb2aa47ba7604cc377144339efa2780a02"}, ] [package.dependencies] @@ -367,6 +367,7 @@ typing-extensions = {version = ">=4.7", markers = "python_version < \"3.11\""} [package.extras] bf = ["pyprobables (>=0.6)"] cf = ["pyprobables (>=0.6)"] +digest = ["xxhash (>=3)"] json = ["jsonpath-ng (>=1.6)"] lua = ["lupa (>=2.1)"] probabilistic = ["pyprobables (>=0.6)"] @@ -607,14 +608,14 @@ all = ["coverage (>=7.10.0)", "hypothesis (>=6.141.1)", "mypy (>=1.11.2)", "pyte [[package]] name = "iniconfig" -version = "2.3.0" +version = "2.3.1" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"}, - {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, + {file = "iniconfig-2.3.1-py3-none-any.whl", hash = "sha256:9121e2c1fdb355232495be3194c8dfe87ccc2d5dee45947b78e68f499790d7a7"}, + {file = "iniconfig-2.3.1.tar.gz", hash = "sha256:67f4b9c50da0dedf52af349e7749a80a9057a5031199791b906c3bb3ae878960"}, ] [[package]] @@ -696,184 +697,184 @@ files = [ [[package]] name = "multidict" -version = "6.9.1" +version = "7.1.0" description = "multidict implementation" optional = true python-versions = ">=3.10" groups = ["main"] markers = "extra == \"aiohttp\"" files = [ - {file = "multidict-6.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aef74e9beabbd6c4aafc091dabff86d046ccf013ce1e4396c0fbb01b4cad9de8"}, - {file = "multidict-6.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1ca5ebe6d454f1e5496cf052386a559f1080bf2de75bf327ebca0a6003b79f19"}, - {file = "multidict-6.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f6d0c4b70f783305e73f9944d8efe6be1022550f0974ba0ae9d8893c0350fa"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8050e75af7e4c6e2d5260b84eeedb618f3e452e66473432e085b5d1b81429299"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4736d350371337825cac1793c9f7c40701c32a03912548c2a7608e51679cbb96"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:02fe09dc197b8ae7e355371e51e5dce2f39060cd5a8badf94904527e23a3f188"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ad4528cdce058b684f75fad1faf4a6a6c992fe2f08376370ca66e4ce5916a84a"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8885e3808aedbd6725b921fb67dacaae0678933561ddd47c2b01315198c70e2e"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3b6e6840421c83ccb60398e333b44f910b0907bb409597685ab2eedd1e22eab"}, - {file = "multidict-6.9.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c9648ed33dc8179e4ec04bbc73bd7f0038e1e81217a69467f61f02a78bf07e88"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d9d6544790ba50438a9c1a903c3c4afb1ec8a7832db5518549275b40ef0dd4b1"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1c9f3c25df6c9d3bbae4f6fd3f514b1c5c740a2110f56ccf36069c85417e289c"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cf22b43f35b7dbb9f71e8ee2041b5c00029cdfc28ede3a2f31cf8906f9a6c126"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed78ccad4c7b421804f5d524b7740946a7ef75d89dc0dac52e9d7c24c472410"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3b1aa25f01238886a6baed9e13b9a9240ed344346c79ae280ae65e8603b21d5"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bc94a68ea5e18f8e85dc6b522bcb53093f692c8eb62b4837ac047da73956cbe4"}, - {file = "multidict-6.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73533644e1f69ea1164d56cc6505f564c6c44072b646b66d67df2d31fed0348c"}, - {file = "multidict-6.9.1-cp310-cp310-win32.whl", hash = "sha256:66987aa68b0f7c2a1cc5f388ca962b8ed92b10f79de38d6d0d8c716154f519d9"}, - {file = "multidict-6.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:a32b78c1e52ebd8e247bb68300b90b233300d8816faa008ed0713bc539fb6af0"}, - {file = "multidict-6.9.1-cp310-cp310-win_arm64.whl", hash = "sha256:ab64ace1a68682d191d9bedd9d4c939406ad86b1d9f628180410644249ad46c2"}, - {file = "multidict-6.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:910d4260512660484c0dc1588a316fbb35a40c081c36fc51d1225351af17cfe4"}, - {file = "multidict-6.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:33fa55b990f81c2927e01399ace0d18926c69d69baa8cdaa819424132fb97987"}, - {file = "multidict-6.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:369b5aa01b241cd3fea6890bdbb11a1425d87bf1515831500d518f4223e9d72c"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:803f8b575a71b1b299d677c28db0653459c79b5308874efec813f17b7457c7f1"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8a65621b98984a62e59403009591b8a5a7736273aefe1cab64cfb85b365cc07"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:13849a1d4f54c3809ae721e9e83ab28f5ea602f33660cb84eb6ef261eac706c1"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dd9a137a4a9becda3094f3831cd026380f75f6855e051eefe4c73ade524f1cc3"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9ae9614c317c50836689ce2dfde07c05fe0b16378562e2221746c3913ede3c80"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8f1e362c9352b50ed120f001046fdbb80810c9d56580f4c3fc13bbe30823387"}, - {file = "multidict-6.9.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dd655518f136febd96c05131a76a863e32fc2a1d7acd4e3c959e3ceb77d8345"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c5d675da8f1cb5650271c8ad5e95c0a3e5a183c105e72d953b12877b1c8d0fd"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:658f90f49cf5af2441cad0a2b801c3ef520471989a1ec55bcb25b255b2ca8d2f"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:43124fe172ada86d03ac3c8dc8179091341f6724d5e5d5b160e1587e4cd3761b"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f0adc22a4eb31e545221d93fc73a0f6a8cc2379d0f4309f71d1d17ba938b82"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7fc59e9ba821b220944ccfe0f89c9dc4745f6d097569992356eb03869f21e953"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:87cc632c88ee5dc80e12681047839304d98ee5c9a708d686505767001c9b8b9a"}, - {file = "multidict-6.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b828cf64d62dc09ac183f03c1aeedd164ade96a2ce4934109452edf29de1dd13"}, - {file = "multidict-6.9.1-cp311-cp311-win32.whl", hash = "sha256:2c1aeb92eea59d824f004341b26d5e4b47a8a441cf9726769b9a90abf9d0e08f"}, - {file = "multidict-6.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:5f89dad732280e7a10b74d40b91364f88e13c3f2c08c2ef83a8cd42f7a61af2e"}, - {file = "multidict-6.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:5800368526647146978389dfaa46da3356291e9f0fff9a4ef12e8c2bef964a0d"}, - {file = "multidict-6.9.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:29138fef49828542e859828107e42e50d0e587c513b7eb4b2d92bade2b0860fe"}, - {file = "multidict-6.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:19e31815d41cefc365489e591d105d2baceb2f65aa75d29471fbdbda8651e006"}, - {file = "multidict-6.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ed30be8918e18c8bed0a2e8b70639ecf02feb61ed00ca2e41cfcb2a50fa3f42"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:637f4ae36264bd7b8d9a60193acddc1d735ad52e8ed53a19931ea6d921fea8e5"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35fc236507fb1b3138f0af5ecd5f94ed752d4d6d826248eae425f86204013eea"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e58952f04772f59f11c6e007471449809a30165188669bca8fdb19dde40a8f24"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d35a4f1c63f07fbb8c8f9946dea98b21eddf6c57421585f71d91864be3ba2a24"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b5f8771aaaed7f80e84a4e471d2f29ab6721e4595075e54d03ae1ed951b2000a"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:976fd7689d69ec78d67d31d38d396d8adb562f7e8368279f76aed4aa451fa06d"}, - {file = "multidict-6.9.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:95052e8777a86bae87c0bd0b5ab22d809e3d1d02bf69e3e66ddda5ba75a05805"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1a8adfcaf96f587ab138476eaddef95f29b8a2a8a9afbfea8d2fd62180995d02"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1a53de2772cfb74559df2eb4456ec4eeb908435ec55a84b69370d9d745d62aa8"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f2ce963299d42fa3f22a90adc0fdf174792ffef5ff4c7ffb68260548fb05580"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5b30ddf7234e611ca877575b62840e6af5977f92f1f9d532eedbb05a44ff8004"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:63ada7ee2e9345695f9e9bc4c65d72222253f07b1ac94fd0e37555cc6f3c7f60"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3c95601ed98fad3f6e2f8fe809c3b526b0fab31ef525e00a155e227f3d17f58a"}, - {file = "multidict-6.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c148e8b596000dd3e4bfe206e70f3e666be18d72032e0012555f2373c52e35d6"}, - {file = "multidict-6.9.1-cp312-cp312-win32.whl", hash = "sha256:f9dad513626a33670f17cddc6078e30e311f444c957e8dbfc5b2b4603c8b4edb"}, - {file = "multidict-6.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:a16a1dc8529f9e734a41c3b856f3eae7ebacdc061dde3f8a844e0c7889c97203"}, - {file = "multidict-6.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:361f7206cf341ba94fb015688f5c8b480f8e63bd58a4c14a48aeca7851a241cc"}, - {file = "multidict-6.9.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:d7bf9e43282d69561618e8a0ea33368d532ebef42f15c096f427090521dd74f3"}, - {file = "multidict-6.9.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:03d47df72f084f757c1cb771188d5f4e3a805e4abc4d67e32509272343ae9382"}, - {file = "multidict-6.9.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6bc94fe17c3c56e5418f79515b786b101845f70609b0d19d0c1ba13448e5633a"}, - {file = "multidict-6.9.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8f2973bbd2bebd9d2e0cd6394c1292a1a19ccd56bdcbe1e174059f1a39be5b40"}, - {file = "multidict-6.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de7738b8c0bb74c4cc16bbd7fb49fc2bcf6430dba11b3432cd52768ae40933e8"}, - {file = "multidict-6.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e5ccad4b7bac125722f48d6f862bed3b514d8526deea06316bb72f152cd30a7c"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a49ff5cdb33654cb7d6a3c377aa2a83ddefaa1db31eb10bcf3c180aa84f9af8a"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b22ff30006a2f28f8bff878fb93413cbe3a4d1fd517c28081d848c90e9cfd2c8"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3adf06c66041aa21eeb8a71e82379b74773298c8e6d3d839b151aae441a99b94"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:963a8d8f97057082679523d0fd4c53a38f86bc58cabe4556faef682ae53fa2fa"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b66ccc5c2cdd26e74fa5d4c29ffae424cc6148bf93ce574821783fb3b6d452c5"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7fd79c521f6290c69125fa2b85fa65d9e657e6a8ffaf722dc881b926bef4aa5c"}, - {file = "multidict-6.9.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d804e4caf5d5da37d6dac1325da5629ebef1e27a294c2b568b295814aa36c7b"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb0d664505f4b112f384cffeee82e91e3f6448d8e574989479db4439b68cba05"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9e14d17773b1b3c758ff153659a1824608a0cb562c45f484b5ed8a433428444a"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:083735b7f395894e43adb278d5dae901448883a835ff8f1977e285fefdb10418"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b65121091567847a8cb520d364ab22ba90e00d3cc55fa9eb34bb439f0684bcd1"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:ea999ae6e80e66ad5eea287860951b033d0104ca34d6d87c7b5125ebe0e12721"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:095d900c242e00fbe5f321ee072e7278b4153e78c5ce9c1efde167d62c1e4771"}, - {file = "multidict-6.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6441cc837aea58be7d9baef1b2383eb8311ab9303f500f99ac90b584cd78bb14"}, - {file = "multidict-6.9.1-cp313-cp313-win32.whl", hash = "sha256:9c4880d017555d70dea367dd49271830842d48e3891c2da97da7ce8c4abcee40"}, - {file = "multidict-6.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:ac51cd64bae51c462ea58ad2492c9b8209667a4ef60c45c4a304518b67598d5d"}, - {file = "multidict-6.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:37a9ebe00c698279213d56e6c64e1962ab1e092918270649b397cac3dc196ca4"}, - {file = "multidict-6.9.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:fc0dcb22fa9aeabfe3fa4e0430099acff985ec5d77a851382f76cc6146e780e5"}, - {file = "multidict-6.9.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:024123f0ab402ab33828e24eb80fa8f25167d0d3783ba5f287e39ed741e6abf9"}, - {file = "multidict-6.9.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:af1b5a92315048c3e36bbebfa7d4760a9c3e910bc4166f11b20d77d20d6bcfca"}, - {file = "multidict-6.9.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b2483da477932ad1983d1d33c18bc3771c6fb00cfbaaed70a875fd547ef8e840"}, - {file = "multidict-6.9.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db4d697b18b6ef5528b1f36bfa25072cd2a421869f5963bc0e92c8a34b9e2800"}, - {file = "multidict-6.9.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:854fd2f1bc6e8a56b89910b5cd7261a8b40f13ebb31572da985ce59c7da0886d"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:03731f6fc036180700c9dc2308205a48e5ca6f3ff03087739ab746f294022201"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989261c5f1735a165f2e4e87cf6d5f17ab734fa18f9ad0383d5adfcdaefce701"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b4c9e5d05b126b267ac048a89a0e2d9b48b1b648add62d4872906304a8590610"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9d0a21cf76153de8f2d96a877991d6bc59b9ab5180b949e50db73cc193b4a694"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e7386aa18d98d6b8af44b92173654ec469237fda35f8e8523e43b581a86f476a"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b69651732c64afb691e50cdc3387cae305e0eeff8804fe3e3ce203876494932a"}, - {file = "multidict-6.9.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1fee9a16d88a1c4865610de31ef5c666671020d7a81d1f510eaf3c97d00ebeba"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7814bbee202acd3bd240204c17d8b87a4c48c81064fd8674dbe527d94d5a4290"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:95f273bea318a194f656527ee2ed19494327bc500b8e87d9358e3222579aa28d"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:73bcafa21a78d0776b3ee7cd2a63c66f968eb7db8e8d594e32d7329950f6e828"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1a938761c77e0e6edb0c93d02f4e988d44a69e5195e5a3b893e5553311347132"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:37245ca4105386194dd1d292a6f2aae09bfe1bd7ac6f9ec25093e3cf8e9b143b"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f0700527dd5bfa8b7204b08330542f4f388899d3c14d885d8a368992e0eb562d"}, - {file = "multidict-6.9.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6b7e54fd883671d1a8810704851c044b7173287c552b9f5c3d9e0eb9f00ae194"}, - {file = "multidict-6.9.1-cp314-cp314-win32.whl", hash = "sha256:e81ae656b9935ac4528a71f96bb7a14d949778ed1897c573d3e7ebb9187f8841"}, - {file = "multidict-6.9.1-cp314-cp314-win_amd64.whl", hash = "sha256:acddcac38adc8342ba48aba98896faa7928854bebb62542362138655b5367ee3"}, - {file = "multidict-6.9.1-cp314-cp314-win_arm64.whl", hash = "sha256:32217133dddc58c927805cf6c0731d8144584176b768042ee886d51e71860bc9"}, - {file = "multidict-6.9.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0b2fb8c349d1103863750b5d8cb5ace766917f4b35f3d883c8f778853eaa9f76"}, - {file = "multidict-6.9.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:56d834b74c993a7d7cb2b8ab33a0d55c3e0d4a3d2f2da2808a4ad3d79189711b"}, - {file = "multidict-6.9.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:783ba7d845d79ce976afd9c1e91a4e5714671defa198ee789e8b23316083a485"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4d718fa1b5f0d0dd75e86fbbc5b0c93ea3a5d65216c85c61cd5d7cdddfe08455"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a313bad717dde740959d50850c315b75fd4eb0c5e6b4dc8535db0f1c369be125"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ef01d29fca550ab871fd99154f82c6472aacf8e7def272dfb07b460123850390"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f3bd290711c6e9486173a6ee7cd4e7f00c3971c7908c1ec1b6e5437c5e4c6f9"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:81cdc537e0a42e3c0170752fcadbe450246d5c3b4b7231d6eb9672456605ac94"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8b193bf7a443c97d81c47052f60c486071a4bdef4a573fa2514f920089414d45"}, - {file = "multidict-6.9.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7a0c98f6a636adf0d7edd60c61589eaf52d149239af754d0bfeb0effedba53a8"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6e6b7e3a1520c39a2772f414cd9ddf5995f77e4e823dfa1522af383addd465a3"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:ca65cced0d67a9039e93bcd98a369920e499bf98296844ff56ead01c9085321f"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:372c063f37480f62c1ae32dc3a1a0a5942b180c883f99789075a8a8ec3c4e709"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:827c92145b3b976b39430129c89d213b250dacbe5fce678e9a03940e6e848983"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9b0124b9c17e9890f0819b2e7a5f65ec9a2f5aabd6c8e7ad090c1675cf70dee6"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:23136f5a564654eb61061ec6d5620a4c1ea32c8f552b65e9982a12b72bff601b"}, - {file = "multidict-6.9.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f2524ec55b3e65cbe235a8b3c36e2af3b635be02ed05e20c94e70c5c943c009e"}, - {file = "multidict-6.9.1-cp314-cp314t-win32.whl", hash = "sha256:35ba0263bae5dd3ad5aad767cc9afc01a8598c7dae30f1b3b2de98b1b32c28bd"}, - {file = "multidict-6.9.1-cp314-cp314t-win_amd64.whl", hash = "sha256:7c8d5882ba25ac0282258be435d8a05aa0cbcacfce15799154a338f847f159b9"}, - {file = "multidict-6.9.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ac348379cf4de5538a0a213be1532d289aa801ec5d267c5909446b9ea2f8e2c3"}, - {file = "multidict-6.9.1-cp315-cp315-android_24_x86_64.whl", hash = "sha256:f04551dce5a7db8c9659f2e4245494c182d0663b83661803e08d46bfcae5eda1"}, - {file = "multidict-6.9.1-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:c0c88085affd35c33e124e36930c5ad96aff9294ce195eaa0fd9cec962b64a82"}, - {file = "multidict-6.9.1-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a8b75dd3d3638d9a19f23e84af4ffab3b8940422c0df2da2a77005ef5aa3d7ea"}, - {file = "multidict-6.9.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:006c4478de0a1876f4834e14255776286f09b9846b505fe63f67f9d173a9487c"}, - {file = "multidict-6.9.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:2784090c30a586d5b45197bd9c32f87fb927216cde302f6cfd76d76577e90f08"}, - {file = "multidict-6.9.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:7c708566da8014b120a64b1eb6d200c6c0c8cb36296383723cdb6fc82038270b"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:042fb0196047e786936a730bd302de83143950da45f2c16078da8f35e1cf7919"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2212a0c842c723d919ea4a22a9296cb6b244b386e4e6ea92adfc7fbf3095519"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd882aa29bf402b62bf1fd7c19fd5df4b6528cf468a908864b39368572b662a9"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c57541034d12b215ab0a2bfa371d1a8a198da18176d0426c27105b9161a6862d"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d73fed4e37158ff00cd271871170b79e40138db51e625fd352fa17c6acb34f67"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:79da2491348b30810728050b4a8ec0416f85884125c2fd44655b3d01150d9c3e"}, - {file = "multidict-6.9.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b4da208a63434d21a3df64d29758e650fc4aa8cb05848554b76949c296539cca"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:877ca17fdcfdf5c397493a71e5ff97a87bb181417fe717fdadc77c08c09301ac"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:40aec5299e1ed71fbb988389059da381c3c1a60e0c649acceb2a35d9b128848e"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:4a409ccc42aefec904038695d5d7fd6d8f3af2721b7b6401d55135ec7d6d298e"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:0a5769559e3312dd96731fbe15b4abb6033368ac1cad5a98dadd21946a4c7d6c"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:03fac50ddfd8302175b77863a015eccfae76767cda5506eef86df559ba861e1f"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:5ecace251ccfa705bf3d7d35c5032cf750f5c629809740405697bce5c118c4a4"}, - {file = "multidict-6.9.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:ecc89dbd4155b2f8a47f4bbd89242a35ed15e8e0ec581cab5ac65fa38407329d"}, - {file = "multidict-6.9.1-cp315-cp315-win32.whl", hash = "sha256:a3ffe881246d28a862f1985824f484cb7361f44d6b99c4c620436ef56462f38d"}, - {file = "multidict-6.9.1-cp315-cp315-win_amd64.whl", hash = "sha256:59c123d0e948d760a5f930f316cfefa07e8d632ab84327c0693ee6a88171154f"}, - {file = "multidict-6.9.1-cp315-cp315-win_arm64.whl", hash = "sha256:31199204b3ced121ff5407a2c342326a5d27e3870abbf94bd80dbd2451b7bc8f"}, - {file = "multidict-6.9.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:8879510a76940670517ea1cb589978da44b86e286ec3e50d664ef330817afce7"}, - {file = "multidict-6.9.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:aec65b53a07f580606593f877eefbb29a45939bfc0d3fe6e6d9f42b41b749f68"}, - {file = "multidict-6.9.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:14c56f73e78faa1f68bbb826197cd5871994e70e841b8590829c35912ece5c64"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:38c9986f9ce50c459b10de216a05f4bd7ed5ac63887d56e500a52bb464b861ce"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15db6a102cbaf1949cf028ecf080aac76d20bcd29ad4e092574db6c6b7af78a5"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd82c4977196681a499bb6ca9e462afbc5c91c1c15b6a991dfbd72733fea4dd2"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bb58ba73a3f96f9a3e46b1fab69929d7edbbddb3133ee74b5c3c54074a53c4f1"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c6eecfab7ce4cd9487ff8ba936fe38cdfd68c04faf3d5c710363c6a8e695659"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c62e71e6289d78c0108d8aeb495f8bd3cad4bc1632fedddc9297ddf287ecc20"}, - {file = "multidict-6.9.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:539c2cd5fed0947c135cd7eabaaac55f48300dfa1de0f3ca4edb5efa6606f471"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:3100d169ceb7bc8f05f89a6db11d1b21f119975fc26f29dc45a472e3569f0879"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:696477ad71385c4795e3b8e4cf10b0d2c28c2a1ca6a955e031cb1e62993e9ee3"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:f5844e7befc707367807586f550fa97e23dcfef0728f02b98c7bc498a961a5df"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:abc7c2e4b47bfe6a9aea434d3fdebb9597ee636e914e92ba352f2068b9142f4c"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:7ab379f95caee071a37cbd8be86d4c65accc651d391f9f97748fef006f38769c"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:557a4e1708df428ebe6c3081c83a273d275dad2446ce0d81fc648ac71afdb18d"}, - {file = "multidict-6.9.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:475d04d5192eba487a3e2f935976340baa24529046e9c1c9c7a3b7bf80445ae1"}, - {file = "multidict-6.9.1-cp315-cp315t-win32.whl", hash = "sha256:10083a8a0f4e1b26b599889e90b9802504ce5d3f7722f925bbb7ca47dd22a7c1"}, - {file = "multidict-6.9.1-cp315-cp315t-win_amd64.whl", hash = "sha256:e96ca64383efa107262ee3949f047af5ee4f1845ba09463466c04d35a83bd3ec"}, - {file = "multidict-6.9.1-cp315-cp315t-win_arm64.whl", hash = "sha256:501ed8b02a5990c67a91c732843609d43a6be1f7576fcdfc867331239f37fbd3"}, - {file = "multidict-6.9.1-py3-none-any.whl", hash = "sha256:7bf6478188f4e47bf5686e8a33da4ae28bf43b1b2528d9ee144d28492bfac60b"}, - {file = "multidict-6.9.1.tar.gz", hash = "sha256:0f06e60fa190aa7abd0914c2a766736fdc8e9f34878c4346338534b73d1b20e2"}, + {file = "multidict-7.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:24ad4921135a1410d95b1f1504f4901e1c64cea680014ce2c3c7a825f4f259fc"}, + {file = "multidict-7.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8b8429361241da973e594d15344a0989f44fd288ea58d33a6221fb7cc0daf27e"}, + {file = "multidict-7.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5c6455f2c11daeee40665c67494cedb426f67dba7375710524071c0c56d739a6"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6120aab922bb3e15800b6655558cf8e0a5cc79518e954d457f064e5b3d5e9bf6"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14b1ce8579a43dfc0e592d93fb1d63dea693e4977980ac4166f26d494cc7a358"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:71acdc6eded0f4b86b5e16c96314887cf2572a8eb5d8038b78583d0c0eb3aa1c"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b7cd1cb0b363cd43ebf499beca26d201dd8b89eee49fae60205c82ba13ee03a"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dd8a6b3e8f9edb07fe671b02d8c3241c8b641fecce7eb1e36432db3e55e243da"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a8c826caeb7c08264e0a556df1267531c6ed90cc70506e7e5f4119e2d09f3d7"}, + {file = "multidict-7.1.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c44ced5e5168cdf677f0ae39900863bf2bda7d14a5e13502014005cfe040b8b4"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b57d4d7021bfd159db9f8f6f862a85a7a6027934643c512f028d6e5c60c4cbd2"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7fac4250b37d994e3fe42b46ba3c8bfa1614d1d7d8cf1cf23f303099082a9565"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:966ae0588ac9959a040220063733b33f321d04eaf4e60349b42cd855d232202f"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:50acd7ee7096949b04482cd7720cb6b85eb9cd9dd5d7ffb6704bfda250261a22"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ed6b7f402f3dabd1d72c798b96cf947005ddd796a5bea7b041bccbd517859a42"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fadcc96cd6155f35e6d85845fa4fcd37b35885dc8fda77b9f851cdfa538194c1"}, + {file = "multidict-7.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c6b67f08014bfc4aedc22cf6a21010c2530cd5fbeb655730406827fe196296be"}, + {file = "multidict-7.1.0-cp310-cp310-win32.whl", hash = "sha256:0604ff025497a050a2b2dcc4ae0e5cb6477c525e57b89825152c707e88d74d28"}, + {file = "multidict-7.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:36b14886aa3e0b8786ecdaa196374422c7b1c1dcc8764d02b2409f74d47914bc"}, + {file = "multidict-7.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a2e575129c048bc286d696ed8e49ca148591768b2d77debcc6569f6fb64d0668"}, + {file = "multidict-7.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:41ff3202cc23c800507777df5a4805b402f262b31008c60fdc652aeb6db2f278"}, + {file = "multidict-7.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e50f7775b66c7802f4cb697e986c5acf30ec07301efee95b396c08114e890d67"}, + {file = "multidict-7.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85cb3ced4fa84949cee12bfe78208b6ece7baf3cbd242b26dcaf773efff8d206"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2128f3358335e0c83688ecb40c19d9d6606cd60784dfbf2e24e980ac2ba87b0d"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2e718fa9d1d900decbc240a533d5d0baf0947ef464c78a8cd4fa32b4e8f590c"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ecc68f5e47bc6f6f889bbed5bc657b22bb2237ad9ccab8229cb5a0d64f4cb536"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5f21fda91bd6c34455bd5c312e42aa1334da46cdafb4c533ecd01e0f7f19250b"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a90453a79423cd7145cc08fc92322dcd7aca4862258f533e03f473226d4b835"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c54ae1b89e582aa25f213cd8b5eac0bda1724e79299f486baeb3f562bbf82ca5"}, + {file = "multidict-7.1.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7ff8dd079e7b5f3438332499233a2a5acfca0741fd0eb3d4ddba0c2d9bc04d19"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e4ef15d0a29fc2da67fe8ba2301ecabd6f8733696cc2bf0a0cf96a144a20328c"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5fa296f14068538fced53c6eec86520a2ef3d3d27a0fb134640d03e067986d5f"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6ab323f0c5490abaf35a78563e1043c7a772eb86d93f359ecc0fd286d1cd3807"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:88ec4d16e9f58071c9896ea01c4da97cce9d01418fe844ff06eebb00e0a1386a"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:9161eb81b8062da824426d3700d4b0d287f0cb0b05923713adfe3bd25e7937ac"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c564d0758748f38aec56a6b98c6801a427b3a63f39b7cac538b2b2d18ca32740"}, + {file = "multidict-7.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c5e4a362a95b85301d262ef6bed06cc8e4a144ac7e2be874cb4c3c46ae89d754"}, + {file = "multidict-7.1.0-cp311-cp311-win32.whl", hash = "sha256:5d19bb1ec12e385c09215d5d53a243c060c7e8a0aacdba16d933e22902ee380d"}, + {file = "multidict-7.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:396ba9917fe489ec3a5942ae3e29e91324c8b9956f371f7e124c971c71379e7a"}, + {file = "multidict-7.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:b5ed78742502b8d90ff2816688d407a097c8b5cc6af4343fc5ad7a98df53a7cd"}, + {file = "multidict-7.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ccfb950359a80de0fcd2030ad60ac1b1a861462de3e2ef746697c9256659af21"}, + {file = "multidict-7.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:939d8cd2d8c35e3956f6bc858390b6ccb611e6152b4920d64ab5e98f3fcf39e4"}, + {file = "multidict-7.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f8e95c95039eab6a2dad8c83c38ab87fc5431d28849e0c8a7e2a4e70ba38710d"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:05d12b4bac53abe0c65f3163af2b45894e2e1c0cc55493ac784d52a350047d88"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e79ed92b1dece6bb57e9b46effd74d7a5d3d00187c85466d880ed184239a698"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fab380fcff8b3555eb2bd04304fa4330909a771a9a9b0dc07666cfc23148a711"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b5c41e44da74383c924cc5d75ef0a268f301d69305b3c42bd17af685d55e412"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3dbaa7f7c2f0ca8578895fc61fb8c8e50ebb405dad8982f92f4343285c7a3fda"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed6b7705d49dd07e5e0dd5f5c873fc44047e92d714299b13245b5fecac49d01"}, + {file = "multidict-7.1.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53daa47dd176db64bb35170e3d5d0ae2388c060121201883696278f055a0e70c"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:542429c796430de924d03b68a6173bb6d79d5c4967d4e9a18de3e501cad55593"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c44ca6d3cdf4cfcbcd4f928fdcbe87af5fd7319f6ad4169617b7fd6b4527c33c"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eb0228c809b2e7eb47921876050af0bc4214b351bad8d8112f70b6ed4288763c"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6ad60de1f4c702448fc8f1449f05e810f6b7957c08a5b3950c8a792dfb13b50a"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:f79def86aee67b5ba01b2565f1610f262bf88ae53c379f93e5fa29c50fe793be"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:248dabb89b5aa90b2f7e43e045f048f7e5392ec77b6446d80853ba7117d7bbdf"}, + {file = "multidict-7.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0747a83e7ae617793181a4763ee8b84863cec5c0bbbde70c4394e4c0276c36de"}, + {file = "multidict-7.1.0-cp312-cp312-win32.whl", hash = "sha256:1df055e51fe7491120cc84f3362bd43db186be78d0e4c476acad45e435af9ffb"}, + {file = "multidict-7.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:10202ba98cfb3f7eb60da7ca87a2c458a69b7d0d6e4d4388cd6773ebbce89085"}, + {file = "multidict-7.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:0aa1ba3ff7cdda05a1242490612976b2ae1c90fc6200903ef8f53815dcb35c5d"}, + {file = "multidict-7.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:51d7f33be9a4a1a2801430846d72841deea0894eae8381a07e7d90e0f71b3c4b"}, + {file = "multidict-7.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:2a964dfeb2aba3663f0536c809aa1ff385f065e89fae57e883fb7edfb4067c2f"}, + {file = "multidict-7.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d02cd23b5af182a49d635ee72be38053767711987a9fd82625b16b93828a0d8c"}, + {file = "multidict-7.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0179698c3c913eb64f32397083747fad20ed0f0a2b7469a08cd1a8a95d14d90e"}, + {file = "multidict-7.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ccf98ee859fe29f874ddd8e637f14ba59108a333492b521acb885a9095244a9c"}, + {file = "multidict-7.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5fa1484f74d011addf2e5f5a0378ec41521989839a05d6051d8067d8ce732423"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1fed3d721f75c25a9fcdd0e362af53f4b20acbcdc63081112f85419ba0ce3444"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df03e392cae1e05462918abbae06d6100f1e53f67db971ff0ac6c07d9edf7321"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:379f477b98a1e9a77ddc3ccaa8c709d3fb4a288ff54b96e171e637b55b4adbae"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:40f586bc8a084a3671ddcae9e5fbd3228a596bfb63d9f0380f153f9a65b69f08"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6e7f70d912a589e30290ed926f90ddbc3160998359cbad7c9ede1bcee481748c"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5129cc1f5fec6888e2db0be936dab67242e32c738811c8769aeea93aab4257a8"}, + {file = "multidict-7.1.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1401caec21fd7f002e79ab6806bbfd1f54bb3de6d5e12bd91c6685dce16ad2be"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c81062e947f4b5a624135a843f6ac4b3c7fe6508300c9fb27347f022ba0c513d"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c53be0dd676484a660acc56e4f1cd0dd74bc1255d12fa285e86a3fa9d5f22bf9"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:41e0c3350d08994ee8640c39884e16514e282f70ba40f5b2299582509a327774"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:abeec7a89d698aa1c9b4c36bd5e3c746faef0867076e6a2ca27fa5077c4ece26"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:23f6d325241b0db006ca2841309ed17622137e134930a740a8f1331ec4404791"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:034b0dc1b7fb8279599c5d8563f86abb4d2454735b06544ecab23c54572ad2bd"}, + {file = "multidict-7.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5c8074ad4d67067c87bd0663dfda654f786336078c8fd7d2f6c1aa41de8494cc"}, + {file = "multidict-7.1.0-cp313-cp313-win32.whl", hash = "sha256:7b25c335fc53acf29d4d21dbc19fe39d2824201cdda0448623152cc5917bd259"}, + {file = "multidict-7.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:7de54b49e6da811b0321e412d14efdaa1ee0c0b6609296ea5b9022bc5b2bd843"}, + {file = "multidict-7.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:aeba2c750102051aa51e087c2ccbc79f2724a41c94168f8731e36f54c453551a"}, + {file = "multidict-7.1.0-cp314-cp314-android_24_x86_64.whl", hash = "sha256:128ea4142f81a79d430f3d0eb55206093e5eda03a12abbc7b03c34748ff6116b"}, + {file = "multidict-7.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:439a19f7fbbff232ce96682c57e27030b8ac3a4b8121484c94f04bf99d08bfff"}, + {file = "multidict-7.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8090c35199d6b7bc6426bb8bdaf341e64f295cc2624a1fda7860c0837f1acc03"}, + {file = "multidict-7.1.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b7cc5333fcbfb27327d12612ed72322f221b61c2b69deb1155078c964f86e1a1"}, + {file = "multidict-7.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:b0e0040b0d8dd89bd0af9ab18901981e344ffba68bb30b8eabb4eab6c303279b"}, + {file = "multidict-7.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:33376418ab2846b931a72b36cfa16810befc4f49485d0b3f4dc054a4d6d00038"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1101aea5c3eb1d26e090b931c693488af0db9f3d52e68be8d4cdd807dad9841d"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f996b19ac89e0dae65821ce65f788619e4286f78c62d005ecd3b75b5d9c0892b"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e0d91a4bcb59ac0d7af0d8e0da737332e1b7fe6831e53e47819b1b5349d431b2"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e96d67914ddbf5466e4476a1cd7ff30a332cbab85ed895207acc3e58c979b6a7"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:170ba61761f59ab92afcc86ce5534a3f3d0b07c38b339b950a83213f22dd86ec"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:33389fe084e5426d9fd85d7d9ca91a29cd0d88a83c7c96e411aca49a3f9967bc"}, + {file = "multidict-7.1.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:77024596b9046572c4e90b34c1ff212346756dc48933f90c53cf6e233660788d"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ff15531a376dc6f35984443fd1429e4b150c36ce27633e7cc52a9e5318546e20"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:544f2642a456fa264614e975d921540ee8c3b368b04d5aa1ddbec33241b13e08"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:08834fb8b20e1a985c70e8380a10940234b4162de62694458727330376e58b33"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b4908e17867930b7ac77f89a18dc67308c67c511f037d8580489be86fb585912"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:9b24e1f93b9b586ec03bc7bea1bf021ec90bf2528c729195028a3ca1c266b3f9"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5c93473d0d7cd9bbb370973a9679a62f381c7050d7dff4ad6aaa92e8650f5a79"}, + {file = "multidict-7.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:bf14cfcc30b097583d698a6e2b8b68c9bcffab277c485d481881958360c2938d"}, + {file = "multidict-7.1.0-cp314-cp314-win32.whl", hash = "sha256:86bc779a0896e59e4be30a5be5cd6eeffd0b40b6f0e75e730218736b7bfc6f5c"}, + {file = "multidict-7.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:6c9fd50f636a8fa9cb6324cd3eac962fec2bc5bb432452a3b583583a1059acfc"}, + {file = "multidict-7.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:e6906aa4bc62cde2c8aeb8a99a7b4401b241e274ae7b11df67d863d61ab3d5de"}, + {file = "multidict-7.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fabfdd4cf97db033196b51af46b8a681d4785c2a66347f2a5af1b4bbb1182629"}, + {file = "multidict-7.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a177a0ee5cf19931dcaeb3f662bc562754cfa4f4ace2351d9da24a954ef7db94"}, + {file = "multidict-7.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0ae91de396d5c4ac97cb24dbada3d5c91a51454781e0a70476b008f4e879e4f0"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:160bdb3520fdadcaa21e1b98aab2e011265070814ecab3804eb61674becbd400"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c2144785e42527404bbd5cfd11981fee4abe59a22aded0e498eb711a831d3f3"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7d0b4fec6a8d02d7e95de5cfa913261820f1ce04bd4c0381924de0da523179b8"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:943a9bce22180ad0f4d32d1b402a0949a4ecfe5a1257b47f54a1b51981d81b86"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f76ceb623f7ff50df46ac57e1587c479d87a5766319c4f43d0c0a5158896afab"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98beff85392ce435b28a0971ec21cade61ce8be8b632c9d855475a28ef92d31a"}, + {file = "multidict-7.1.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:71196ebb8d523148e5975396a444de02367f204b53b14e26794c96b2be0ed742"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:35534b366410a36bb3d6f788691e37a76e4d1da48326b0ada3e5032580dd76af"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b4674b12701c3fcbdf7f88b9e4479701c93bec5da9eb576140d5fcc0092990af"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0ead852a5e906a43fcb6784eeac480f6a67919a51d480c1f80d32ddf9d615475"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:afe36ca503c2ffe30fb6df82b20389fa3c4035b5d65888a61310921cf3ae91c5"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a5f0bebb10aae010d3c9ee3abaf83ab2069c718457aea09c15532355dd7e061f"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:b9d9b7d72975521434368fe8aed3f6b522060bf271adabaa5ca6c87c0c08e168"}, + {file = "multidict-7.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:274023bf952f849e0d05eba28a4c1f65f9796430d2b09ec16539386c0f76554c"}, + {file = "multidict-7.1.0-cp314-cp314t-win32.whl", hash = "sha256:7e0bfa161df365ba3c88899ee3b7c94755200967284bdedef8c1b8b43e2c0f2b"}, + {file = "multidict-7.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:34a35be8fb82d37087e8176aba907b9459f03d0e293c80f574c6337a436f4eaa"}, + {file = "multidict-7.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:d7dd46a8fcd7653c09ebe67eae9d4cb6636c7a905d9cbaf587dabcbd4eca6013"}, + {file = "multidict-7.1.0-cp315-cp315-android_24_x86_64.whl", hash = "sha256:852c921217f330b3e81a822647ebadeae7e42cf503ec1992d0bfbc90121c09fb"}, + {file = "multidict-7.1.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:cbec738d2ad551c6f70955d7eec95e339380ee1564e2afe86bfee05fed52ceec"}, + {file = "multidict-7.1.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a5f721a2437390ab69c10c6df5c142478d399af8dfb02e6d823cf2358e8a4748"}, + {file = "multidict-7.1.0-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:99cf27791129d37e191ff013bfc29bf6631c29edb21680c00978567b91fc5d6b"}, + {file = "multidict-7.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:2ba6611fc93c4b169d0e0ea376ebf4b8a529933d1f5f2c2ec7d8f8b93ef58ec2"}, + {file = "multidict-7.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:c45629c0049fbdef932dbe408ac2b271fdc8c7d9962ca31160f4a0fc3455fe4f"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cf606cfe3f67984b4064ac605d71e1eba12515fbabf5bd5a34a8952b8800dc66"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50fdfcb03be719d9573597b095b1175d2e9d0b30d065791dfd9fca727c499442"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a8bba9d1f6db4ef2a6ebfc937a65d36e80e3aada00b382eaf56fea8f639322d5"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:46d4af0afc6eb9867b3ae50605787c80b868e2f52eac3801246034925fe578b8"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5cc58ebb731200ddb64d55f1b345630fb5f7a8138cdbd242af9dce964a7cb03d"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b87ad54e8d4adeb0a1f04889504d6ec7f04fb02609220810f51f1b6c66bc1cc"}, + {file = "multidict-7.1.0-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:44f7e5dd83a615636b80182bdf446ece57ed61d5d51854acc5d9840631136d4e"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:9bc5e7f843d14a167cdc26fe2d22f6f3aa2feb57919cf3ff034262a57d8d95d0"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:0631eb5f49f67de10bbdc3f64141326dbc62e8d319900966648381ce0845d8ca"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:d1b1b32f3c32f734dde8f36ac1df8e275e768a7b333241cd637cb2538628a4b4"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:159976f9c40f96e3fe0952b708846a43a76bacb114e9cc828816f5080bddd5ec"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:81a0e08c64dfdad27dab687b96f572b23bafa1999a39d1b6f70b3ddbb73e8bd0"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:4e11e7299079718c78f8147e7206c22fe35bab4466d38992420795288a0b8096"}, + {file = "multidict-7.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:34d2ee98e15d5cfe782a431bc913fce3b58cf3fdb34fcb437aeb275cdf9007ab"}, + {file = "multidict-7.1.0-cp315-cp315-win32.whl", hash = "sha256:f376224572d1f5da1c871f969ab04765727f180e70d012d93e07bfc08442c64b"}, + {file = "multidict-7.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:67fcf28db77b385820881521db7435e9f1c607cfaf07db6eb78aa9d1146bde86"}, + {file = "multidict-7.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:c7aafa4dd2f702ee2198005d6cba4309c1e25ed1c201d77beddefa47411bead8"}, + {file = "multidict-7.1.0-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:1348ddc076251cd542f4a99ccda4b7c1f8444e8ab489d3541a978ca5901c7c1f"}, + {file = "multidict-7.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:9267bf8261a779abb2a6eab5f107f5db85b2d1745f2494081c731aaf28738ce3"}, + {file = "multidict-7.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:8a844b8b1685f38a2e8b2f3213b286e2a7abfe67508381780a0d4599ac337c1c"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:18a447d46a3a2f1e61b365cbf5627db7030fdb707dad70c4f2760e5144166ecc"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88811f890db240a1c82bf0bcd52973763707a552c8113ac3fcebca183afb2fa8"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a60b720c329c0007feae692b7bf91cf17b3f9bd3727be96cc6f9a3336651041b"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b117ed1cd1a23df0902461c38093408b95971833dcee629112acda25b603c8d0"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bbcae7a54050b7ad7bc7bf425ba63dea7d2cd31a92246ba787a2ce69a9b98dbc"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4cba2b0b9235fe10e12301d6b4cfba0f353fa668d635f6e988b03623c2cd42ba"}, + {file = "multidict-7.1.0-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:535173fbcc3933d84f9929d49d7a59a0faec259ee07d07c34c7d2a980b4e3683"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:ea027bdeca1d7e498237634ee4e3a852e2723eef39996dec0ff0f77dff8a2336"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:507151e1e3dee95e9e8159e329aed4f75aa5205ecd6505a4f6be546890eafbe1"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:9c10791e9f5ef132effc8fdce2009482c1cfb26618c5fc1b7952a47dd5eb632e"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:f16ac8af2804855d3cae5fc3c5ab609c9fd0fc8ecacd92579c05ed3c173396fd"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:b78de22bae456a976f33df34d598dfd16edc9a03df8f4cc8b7c17bdba4c97b4a"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:db77888081431aaa69f3fd3480891746ddce6c2a571f6201869a24e2f06cf423"}, + {file = "multidict-7.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:c39dfcaa0bf23443474c0cb58d8d8aea9529c1841d99654cb38e4dada7b1948a"}, + {file = "multidict-7.1.0-cp315-cp315t-win32.whl", hash = "sha256:16b21164797bde6f417066d02775975cc2e15ab8abf80efa55fe85e0b4894020"}, + {file = "multidict-7.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:55392202cb374dd1a1f89a8ce1586644870d9e936752059d053e576acc50bc89"}, + {file = "multidict-7.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:f979a077d1c0a9a36dd4fab0d3a36b8de7b593bf935e13df85a380395b2c11ad"}, + {file = "multidict-7.1.0-py3-none-any.whl", hash = "sha256:d9ef29cfd98e17085b4f91bba8fa1570bec6787d5c52ce653ed33a58785585d0"}, + {file = "multidict-7.1.0.tar.gz", hash = "sha256:61a4e5d81b8d4e4ad61964b230129e7a2b914793d96289029078fc9009f074ec"}, ] [package.dependencies] @@ -959,20 +960,16 @@ files = [ [[package]] name = "pluggy" -version = "1.6.0" +version = "1.7.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, - {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, + {file = "pluggy-1.7.0-py3-none-any.whl", hash = "sha256:7dd7b0d8832ba3cb632c306926ded123429211b83641b35dc5c41ad2d34f9bec"}, + {file = "pluggy-1.7.0.tar.gz", hash = "sha256:d1eaa46ebb595891b860ab086b4d09c8588af65ebd4361b8e8f4bb8920b90ba8"}, ] -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["coverage", "pytest", "pytest-benchmark"] - [[package]] name = "propcache" version = "0.5.4" @@ -1124,158 +1121,175 @@ files = [ [[package]] name = "pydantic" -version = "2.13.5" +version = "2.14.1" description = "Data validation using Python type hints" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "pydantic-2.13.5-py3-none-any.whl", hash = "sha256:346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73"}, - {file = "pydantic-2.13.5.tar.gz", hash = "sha256:51a9c5f7b2f8e636f04c6cada605d9b6a3bf1348fdf945a3d8869b19bba0ee08"}, + {file = "pydantic-2.14.1-py3-none-any.whl", hash = "sha256:9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454"}, + {file = "pydantic-2.14.1.tar.gz", hash = "sha256:94f478203dd03404682a1ada216965651dd74b1d2d5ffd62e00e0837caab5c26"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.46.5" -typing-extensions = ">=4.14.1" -typing-inspection = ">=0.4.2" +pydantic-core = "2.50.1" +typing-extensions = ">=4.16.0" +typing-inspection = ">=0.4.4" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] +timezone = ["tzdata ; platform_system == \"Windows\""] [[package]] name = "pydantic-core" -version = "2.46.5" +version = "2.50.1" description = "Core functionality for Pydantic validation and serialization" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "pydantic_core-2.46.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:657b40d6240c0a7b6a64b30f22d1e3aa631c7e846c621b0c0f6d1d75e2e15ea6"}, - {file = "pydantic_core-2.46.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ecb42011e12ee19cafbc312887cbf3546959fe02fbad44f272d4be5baa997615"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dedce55295becb61921e386b99d4f2706045306e7fa52249a33004c837379fb"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f47b8a949e60f027f0aa0a6f6c7b7e9c55cbf4380d10b344e282fa4e7ab1e1b"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:200aa3dc9f8d54f0754f43247c0bad0999fdcfbfd2488384dd44f37279271fe6"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d30e1a4f138b8951063e9a394752a9179b51da288ffa507b1e659222f4c1793"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:850a08d167dde16db8702c274f320c7be9d7da6f6dff2b58b18f9e815bd94f5b"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:c3471e5c4a949c26ec00a77f01df59096aa9495877de76fd60a980f8ee6be461"}, - {file = "pydantic_core-2.46.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a3e26b6a8274211bddee2d0e4d0d42778f17a34510f49d2ec44b58abfc41736"}, - {file = "pydantic_core-2.46.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fc5d783bd4a2387e97b8a2d5ec781cfb92b3d893bf82370548e99db5915935d3"}, - {file = "pydantic_core-2.46.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:356c8368cbc321050b169595683a2e1d63413b1e0e2868b330af9fc14c616d3f"}, - {file = "pydantic_core-2.46.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eb7d8d0e5886a89a55d2eef490e272fa965a9d57c6b29a5b5088a7997ec2cad1"}, - {file = "pydantic_core-2.46.5-cp310-cp310-win32.whl", hash = "sha256:4d44cf99ddebf875f9b68cc267aa684c99b7b44fe63ee1cac4ec163807290069"}, - {file = "pydantic_core-2.46.5-cp310-cp310-win_amd64.whl", hash = "sha256:1e5aad1220a1192c42341c8fd4a8686657e73ab2a920c970bdc4de334fe3193d"}, - {file = "pydantic_core-2.46.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a1dee1b804ff4d11c663636cf15d2ea47e9f79cd56c033fb1cbf08924842a48f"}, - {file = "pydantic_core-2.46.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d625a186a65201c23a9e3b8ed9c47e90a026e03256608cc91851c6709096844f"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f8507560a9284e1370bb048ed4282012fbef4e8d109875b95e884d228552061"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f93c5fe914d75fbec9a49209b00da5f08e9e467d69da2b1510c81940cfd10be"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aca6c767f552b21b10f774aeac128e828eafb796adfa1b666a18bf6321453c3a"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:701b2e04b560eeb4bddf7a25ab8ca476176e34fdbd9a0e18196f0d12d4685f0b"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49776eab08766a08dfff7012f8b422dcd7e25e43b316eedf0477c24fcfa84b7c"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:a2468d93d181667a7abd66e1b64bb9f76f361b0fef8faddf687456453576f5ee"}, - {file = "pydantic_core-2.46.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:53feb344243bb9510a9dec7bf3cf1b64d88a98af5dc7872a5160465f8b198c8e"}, - {file = "pydantic_core-2.46.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:cd5214352ae68f3b5e9af7768bdc5253695ee069675db3480518420b3be881f2"}, - {file = "pydantic_core-2.46.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:9432f3598db432cb51c5b37fdbf29a60fcccc79e30d37a05022776a6bc4ab689"}, - {file = "pydantic_core-2.46.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8feeac04b5794e513e710af2f9c87d49f31a6dc47967bb264a1fed61a8989bec"}, - {file = "pydantic_core-2.46.5-cp311-cp311-win32.whl", hash = "sha256:892a881d5f68c2b9ea304b7a6c2c60d9343df578a311b0f86b94bc8f1ffe8129"}, - {file = "pydantic_core-2.46.5-cp311-cp311-win_amd64.whl", hash = "sha256:40375c2d05acec10323e45dfe2077ac44bc74659008614af5069034e2cfc781c"}, - {file = "pydantic_core-2.46.5-cp311-cp311-win_arm64.whl", hash = "sha256:28a6a556cd3b6066bea827857f9d9cce027c96f776e512f544a581f9e42161f8"}, - {file = "pydantic_core-2.46.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b9fe6fb92520e3fd61f2e49000b6911b188824f089b75973ea06d6267f0b476d"}, - {file = "pydantic_core-2.46.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a39ac25a9a2fa4072efdb429833c4a4c8009a51ff9eea3eeae131713cd27991e"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fdc8b93a41521988916eeaa271173fcca7fa0803d62f87675aac8dcec1c8e29"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b98134087d9de723658d17a42c7d0da8d6e2ef08015dee7dc93889047315f5e4"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e652ab17569c94bff5475520f907b7148b8c24036a8ebbe5cf7cf7493d28579a"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d925f3d9afd05a8c0fb3a1031463a8d59ebe5e2afad297e29c78be19e13b4e62"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fc5be0abd4a407e200d844b404e33639a554e7bd0d448e7b9ae181be4789ac2"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:816ff0a6550ffc06c098ccd2e0698600f9aa7da192a79eaa6f9af504a35db869"}, - {file = "pydantic_core-2.46.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c7ea57fc63aa7da93a1bd2d644e6577befae10c52c4e36377635eea1056a74f5"}, - {file = "pydantic_core-2.46.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:efd62a42486f1bda5d24cb4f63d15a3c7768375fe83d36f9417b4ad7a2fb20b3"}, - {file = "pydantic_core-2.46.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:2bc9419666990c06d7397831f2126a1ecc3594aaa3ff7de5bf2d066802f4e07b"}, - {file = "pydantic_core-2.46.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:18a09e1e1011b462f2e32774f25859ef1223d5c2b0546a633cf56654710721e0"}, - {file = "pydantic_core-2.46.5-cp312-cp312-win32.whl", hash = "sha256:5cb482e9e84c851f4e623fe4acc1ced89168cf1fe18f7089db4548c8f5bbb65b"}, - {file = "pydantic_core-2.46.5-cp312-cp312-win_amd64.whl", hash = "sha256:5e81740c09e310f5aa5cbd3e434a01c154d4bef93241c7877b39f211d2b78ba8"}, - {file = "pydantic_core-2.46.5-cp312-cp312-win_arm64.whl", hash = "sha256:f7b0ec93a2893de856652154d73b7ba622f26fa97726487dcac373de5f4c6084"}, - {file = "pydantic_core-2.46.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:b7ca9034437b6022f941f4857459562ee00a560b97e7cce8a0ec5a74fc6766e0"}, - {file = "pydantic_core-2.46.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f332f0e72a5a0400141f830744e141bf9f97917878dbe968669e8a7fefea78ff"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:193375f3548919d3f0b60936ca113ada3e38f264f91b9b8e0508efaad57be931"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:79bdfa52f843137045b2d081cc05c120ba6665d29b7559c2c47690906f39279f"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:24922243639cbdac66c75fcb6fd6495a9cb52b213d62f9a0d16f0310b1ff8038"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c76fe65e607be28c7fd4d56fc3c42b1583aa058ce3408b7ad0fd540171d31f9f"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f7b393a8b3da82f5c1fc0751e6d01ac6c55b93c18226a60bdfba4a724efafd1"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:7ac031912d54f3d83ef3b3eb98dfabc1608802e2202263d25957eeed40b94761"}, - {file = "pydantic_core-2.46.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:837b396ca3d7b74091ca623f6cbd8351bd42d670a79c2683e79fb089f06a2de5"}, - {file = "pydantic_core-2.46.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:5ee239d575f80b08eca11f6e20f90c4c695de7825c67eefe6091fbf20dda648e"}, - {file = "pydantic_core-2.46.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:e80675d75ae2cd14372cb65cad5400d9347a3d3f6c13000183f22dfd027283ed"}, - {file = "pydantic_core-2.46.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:9c4b71f10dd532fb7a5cbc8f58707779e64f03a258c2bf8bfbaecfcd9970b519"}, - {file = "pydantic_core-2.46.5-cp313-cp313-win32.whl", hash = "sha256:97bf8de4d541598c94a59344eeb988a94c08ff76b5723c41f6567ec18c7892ea"}, - {file = "pydantic_core-2.46.5-cp313-cp313-win_amd64.whl", hash = "sha256:15f4a94963c95accac15b7b657bb177d3ad82bb90b0d0526d9a9b85079925db5"}, - {file = "pydantic_core-2.46.5-cp313-cp313-win_arm64.whl", hash = "sha256:d22a945598fb91236b4dd793a6e42e4f3dd7740bb5aace5ebd7d4c08d13bb575"}, - {file = "pydantic_core-2.46.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c1c43ad4339643d70ebb8124e1305a7dab423001eff58bb41a0f731adbc98355"}, - {file = "pydantic_core-2.46.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1a353f84de772f423b5ffb11d7ae352fbbef0f446f3c0b0af0f8236d7233606e"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5086029a57366b8cf81b130a43908738095c270c21a8d7f0e8bdfdb89718e2f3"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46c25dda9d092a06c08db76ffe0a197107904d0dfac653f7d5306bbcd6d6119c"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:37ea7b83c935e5b0d68c9449b82651accf78a10828b2c02b2f2d9e9496446c21"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64e88d5585bea9ce95861079de72006c7fa6d3df4e3a3b65ba31eb979c15c9f"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54d510bac3ee52247af28ed4bb18a1e799f040ac60fd2bf5ccd4c92f1fbe786f"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:a2a5e1d0ff29adddc9f6d6821a66302e4493f8ca898b715b6b1182c2c201ea0a"}, - {file = "pydantic_core-2.46.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:03b9666e41e35d8909852ba191a0607520f81b74eaf12ccf8737005dbb313821"}, - {file = "pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:a91c17edf6eea2402cb5457b4c89e99bc5ed1004aa34c4adf1d4258c1a5c22c2"}, - {file = "pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b49924c73a235e969511bf2aabdff3beebf9820931f646c80274d5d780010c47"}, - {file = "pydantic_core-2.46.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:2cbd9a5eff05e51c447c34dfa4632145b26b09120cf04bd0c871e44c1a5e1c9a"}, - {file = "pydantic_core-2.46.5-cp314-cp314-win32.whl", hash = "sha256:2d5d76654becf5efd62c9e51c3756c67b49498b0c9a40884934c40807adbd074"}, - {file = "pydantic_core-2.46.5-cp314-cp314-win_amd64.whl", hash = "sha256:fa10ef4112775900e7a0661068635eb67b2ab824fbde764de6e0e21982a93db0"}, - {file = "pydantic_core-2.46.5-cp314-cp314-win_arm64.whl", hash = "sha256:045ab3b6d308439e32b81cc173bba5b9018bc6ed896afd0c65b3b009b1699af5"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8816f3d218beb4b787de5c9759c259b8fa61f9dec42dc7811f320a33771778b7"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:bce57638e08ac148e5778cce7feb968307a727d66f8e2274a543d0cf0c9ad6a3"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:976e1128455aa595ea04c79ccfedff1aaeab96ee013fcc916bed120c4f0ad94f"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b891faeedeafba41b2983e5001a81b6a915b69544c7e7570d1989ce1c36ac7"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f194189415698233dd1114a093a9b56e61e2c57e11b469be3b0506f46f0771c"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82a36973cf8a2ef5406f4fe2edbf8ed0c99629535d959e0b100c76a32535a111"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbb78909f52b981d3b2d56b97328d71eb0b974c36bd77c920123a7ebb192829"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:52e24eacdb536cade636aa90fb851835222becff8484b7001fdc78cb0290f2aa"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:37ae34309d7bd8c0d61ab839668058f2a7962ea1fc51d105d2db228fe0618034"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:0cdbada856a1c69a7624a64d3d9aefe79300bd6ef827b43a4f265010b9b55184"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:545f26c504b27c3758439a5e6d9349931f0a04f855668d5fe323c89e82300a38"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:ff218293c9c806138dca139765e3b067621be52bcd93cdc14c7711be7ddc90a9"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-win32.whl", hash = "sha256:97cf3eb53a8cccacf9d46686a0926186c9bfb5574f2ed66d3639d5fe117cd3a9"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-win_amd64.whl", hash = "sha256:d2f9fc07a8042a8f95925b35c4f04f469707c981fc33245b6ca187cf5d2dd290"}, - {file = "pydantic_core-2.46.5-cp314-cp314t-win_arm64.whl", hash = "sha256:acf8a67ba51f4ca9ddbd0e6b3000a65ac51ab734661778b3e7ba64d99a710f2f"}, - {file = "pydantic_core-2.46.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c583b927a8838dab890706a6fa7573fbb8b70e24000ef9f7238e2d6f6435a5ed"}, - {file = "pydantic_core-2.46.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cdc8b74ecc48c0cb1e9607a05ec4e9e88db60a19ffcc9a1d5f9088ede40c8dc0"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b10e3e8fd7ddc2bd915848a2768e44c15b22936f1cc54c462ad1164deb02655"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f077d0b97ab11fa7dcc633fca53515f290bca8a8a633e966d5b6d1879d9ed01a"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b0fc826b16c55e561e5d2a0c5c77b051ba1d92808118c4e4b5390f5e0cf191d"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef3fbbf161dc9351a2fe0422e51b129f9e97e42385bd0320b309c15f7d287dd8"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:978e7b97d4824b5be09c69fb70507cbde3b0323fc147332ca40a94d9a6a0ebbf"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:9b68938dd5b0c783d88ff8e2dcc69451b5eb936fe212d516b21b9d5567f6d464"}, - {file = "pydantic_core-2.46.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:771cf63ae0b1b50dd22e5f3e3549fab5f3f4ff1635d352a9e1a97fe01c7b2e64"}, - {file = "pydantic_core-2.46.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7c6be839a5a8312626b32029a415644a0846b420bc8b52b95b28cd92da162168"}, - {file = "pydantic_core-2.46.5-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:895395f8918627b04efb1ad2a4cf605387143300ba03304cd1dfa6d03f5e095e"}, - {file = "pydantic_core-2.46.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fc8515076c11f3cfdf4fb142dcca0fe384b1230a3b5415458ac84f3e0903ec13"}, - {file = "pydantic_core-2.46.5-cp39-cp39-win32.whl", hash = "sha256:3d2652072b2d774947ba5cf78a9e59644ac62ee572daf6dd2e1dfe905e15b2b7"}, - {file = "pydantic_core-2.46.5-cp39-cp39-win_amd64.whl", hash = "sha256:3aa166e99c4f2985407fb8714aebede877ecb5455cf321b606adca926d30d5a0"}, - {file = "pydantic_core-2.46.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:c14ad3bdc85ee7f318742c457ca3968a92126d144b15721c759033bfb06296c2"}, - {file = "pydantic_core-2.46.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0bddb4020d8f04175865ccd17eff3040874fc11fb593f424edb452653b4b947c"}, - {file = "pydantic_core-2.46.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2471fd51c61c610e1dcf7de44d7299283661654d11264ab4802b303368d69c47"}, - {file = "pydantic_core-2.46.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b10ec717381bdbfafef34607824db4c91de69ff085e4fca3b2af91b4fa17e68a"}, - {file = "pydantic_core-2.46.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:013d6f3483d81e02e7c328831808f336c8596ee33b4bd4026b9ffb1e960b8942"}, - {file = "pydantic_core-2.46.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:e9c134bb666dd54b778b9fc0d2b50cbb7f979b9e3716f26a88c9ab3b6fc1dd0f"}, - {file = "pydantic_core-2.46.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:347ec774390c87326a2e4929d58d3f7e8763a104d5d35f4cd595a4c952366433"}, - {file = "pydantic_core-2.46.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e24d8f05fa2d28513d94e877e9c75ad66175376209b3977f916e240e623193c"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ab4b66edffb32d9e951efb3814bd104b8367a7501b81b955cacb5726d897389f"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:337639ba62a11acde6ef3aeb08c8ea755f8ef1fe5e513356c0f36a2b0d7568b0"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:413a717a410d0c817ef5b786a059415550b3794e1d0c2abffd9efb93a3d9f7b4"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1e449def1945a462c464331254e5a44fca7c3b4f9aedf59ec2f50f8066dd8e25"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:a445486499897b88a7d6c310c88ed64dd37b1b59bfd7ae9107490bbb362f47d6"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2d330aaba8621b1edcec8ae2c4050f63b84ccf6d98723a8f212e9684713abf0e"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b6acfb46a814762367fb7ba0828b0a17d441b92ce249a0e007474c9072662dda"}, - {file = "pydantic_core-2.46.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d0a24b40877af2de4950252be9d21eaf7fb07660f3c2cae1f56c6b599ada5266"}, - {file = "pydantic_core-2.46.5.tar.gz", hash = "sha256:10416c15b8839ecc4ef4d0885da76da6fd0f67333a0eb8aff6d93c4b8f2910fc"}, + {file = "pydantic_core-2.50.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b281a3b0f0822618fe5e3e0d8a2048b6356b14388505dc9374ccffeb69989713"}, + {file = "pydantic_core-2.50.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fa4c8bc12c1354c5550c0c35c1852c8c1901e89e06561724e03f8d0342e1f87"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa9de446b793de2beb6fa2d9d0961803126c4e2a99c2f25ab59b9fd6ea125c0"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de531ce1e2a3364e8767878b58f4ff728a434b4fde089781fe30b1e08e2396e0"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7c58106de36ac6a56314182958de20db8d3a29dfd5db527192cc754e4f8e7fb"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b4c3df25bd323bf1d36a648d563cf1fc69d717451569927151bdad7cad07a77"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f77ac30b19221cd9bd3fcfa3d4614eff93140d0572ab730cded17b64adca05f3"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:d939de9c82e2126f7f48a7e658f8a85ed46d57662d53f44c49b8895fe94a3eb7"}, + {file = "pydantic_core-2.50.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:30ddf019d082c117b5d309e5b86710c2a78909907ec1a9381feec3eec02eca0b"}, + {file = "pydantic_core-2.50.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2ab756b72bd5054e4c7ef3ded331b35786cbd3cf931531a508f79a9537517064"}, + {file = "pydantic_core-2.50.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:b087b1c5be7ac687cf22eabfe4b6b608d40df23610651e93611e1f49118baf84"}, + {file = "pydantic_core-2.50.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a44101320cfe99432db74237545a63057dc7a88dfe792cbcad0647f2af56cb81"}, + {file = "pydantic_core-2.50.1-cp310-cp310-win32.whl", hash = "sha256:a4aaaa791bdae1c972a7e81765f4f3571c926b8e0b9b6e47346499fb80079665"}, + {file = "pydantic_core-2.50.1-cp310-cp310-win_amd64.whl", hash = "sha256:2eedf82ee4753cdab8e50044c6bd569577eebc3859b11fecf4eb9223761ff966"}, + {file = "pydantic_core-2.50.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c531166c42ea7bdfecc8c50049581f05dd1993b09cc7c52bb36a14e96deaec7d"}, + {file = "pydantic_core-2.50.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6d0c2183008c188e19f4906d426b293bdc4f67ab17df8e180fe16cda208fa71"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94be440c03fede26969a5ce75468e0e6a9927a1b46d9b679ee8adc1b057b0350"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:36c426eac0af8d1529ff8467e612b933346caec1fdc0d774f78f67a1a11e16c1"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:028e2f212273d4a39b1ec1e0de8166b1165a65fc0f1111452a9d94fc7c625c63"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6f0cc1bb9900dc558960894adeb30b0c083366fc1d69b856209fb2ca5c36fe5"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8812592c85d0edf423f10eadcef42716d71e8219085ad9e85b775057b7306133"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:bbce99252ba3167b2b6277f1829d5bf4b43b754524bddf7f944707c3db7d2253"}, + {file = "pydantic_core-2.50.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:476f6ed8e43cd1e0b460920e23571700872b284e77331cb30c4faf459cf48a4b"}, + {file = "pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2cbd1b75b09e976ed0d6b6ca297675632ca35df86130088457cdc60ef36970ae"}, + {file = "pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:5958c72adb417c39b12ac87525ac60b0d73315fcdc59e21f44ee4a5e2512c9ef"}, + {file = "pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f9e8a6c4ab04b78d61f78627370d834eb004b2869dcb28cfffa647b4ea1980"}, + {file = "pydantic_core-2.50.1-cp311-cp311-win32.whl", hash = "sha256:4be846f55c9477f5f3ddde8f2ce941137e16862a56d018ed885d422bb6ae02f2"}, + {file = "pydantic_core-2.50.1-cp311-cp311-win_amd64.whl", hash = "sha256:0048b6dddc8ef4b64fccaad878bd143b0c3882ea9936279dc11d613f6b7dd1bc"}, + {file = "pydantic_core-2.50.1-cp311-cp311-win_arm64.whl", hash = "sha256:6a733778df2f7087ec1100ed0b41533e4f3001976e99570fa34f57c66e7f8e3e"}, + {file = "pydantic_core-2.50.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:704075d10b74f2f3c6e15407c696d88701df35fc8953f434a431add0d0074db0"}, + {file = "pydantic_core-2.50.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e8e1d6ce820aa23317e8209a86bd65a540973c12dc7552b48a4f6c8e9926815e"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c18db21573bd2c6489f9a544b7499f0df2853958c568e5e783536ee1f690af41"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb57f304525a5e3c13333b772bf9a473f36326e9c821b2e8e1b2fd36f80ae2c3"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a27c09d86600f1bf2fe3f37e1ae697faf3143931c09322cd799da94deee923b5"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46b3301d3b5c886f77de7546e47274a5842c622ea2020b8c6524c6b66913b4a6"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ba4e9d8210d941c200431a56b2c0400b131865947903937ed3ec5404307d2e"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:e5faeaee74a57d32b3ab3aebad2e348f06d3ba946fc5d28c1728455f00a3d13a"}, + {file = "pydantic_core-2.50.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3cda0e538208e5d722bbf3698b24f19c0a7d05bc8d5f8a7f9b121ea7fa243d9"}, + {file = "pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:57f51b31ff826e2859120cf4737c5a758a48d96f3e97da40ccee1796d58078ff"}, + {file = "pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8daa7ee75245d43ad7d747e5c9ecc1b1d06552f72b14887e9276f787d57375f4"}, + {file = "pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:acbf31f37c53a5ac0c34706c80b4f5107ba20b05fdd3816124bf236ef0c57dd2"}, + {file = "pydantic_core-2.50.1-cp312-cp312-win32.whl", hash = "sha256:45b11cac094aa25725581d9304eee93c9028516b9ea80dd9e175e13a5a2c840e"}, + {file = "pydantic_core-2.50.1-cp312-cp312-win_amd64.whl", hash = "sha256:132529c83901437ff642f585216831bf5fd7a91df66829907e155192ead62498"}, + {file = "pydantic_core-2.50.1-cp312-cp312-win_arm64.whl", hash = "sha256:4e834f6a8e4ff772dcc34f58ef5504147a3ea5b0f4eeb13b0f8eb2ca75ac57f1"}, + {file = "pydantic_core-2.50.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d5e062c01286d861fd6a1c4ff6e063547b3e713067f2df033c0ff97ac2ca006b"}, + {file = "pydantic_core-2.50.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c003c3b7f49debb893d2d85ae099ac5959c9839e2f330fadb1fcdf7a6594482"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:409e0ea40ec30d9158f33574fd758e689f6045a0f2596701828c27816ca9687d"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:131059670f1d2444269b8585cb888963994871932447c08b39ac6a51fcfef658"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dbcbee53bf17196a7f745aa9bf5a9603953a1e365b1f020be3207c676a3e7c4"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:325c23f3e35cfbf0fe3486fa5f7260d1e45885173002d30a28ca019994124255"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17e722e156d0444ecaefbe640bdb60928752bf2013e2b7a11cdb099aaae19bec"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:aa8224f10880d9bf1b5993988ba153d42a8b4f3f4f511f93b1f09c93ff613c72"}, + {file = "pydantic_core-2.50.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:41bc8237121bd8dc8d888dfd6279fc166ffc88c1f1bf3a8bf00869680533ca4c"}, + {file = "pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:45c6266d071c241f2a168d45bf8c54344f0effce35e7e6b73afdec11f3687568"}, + {file = "pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:1deeacb112d14d3f4fcb16b165f7dbaf76c70ba6e82f37ba042bdab51970a0b8"}, + {file = "pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c96fd793b73d1b92e65570132505498fe7b21eaef73cdf74e67e5dfba7ac9e4"}, + {file = "pydantic_core-2.50.1-cp313-cp313-win32.whl", hash = "sha256:06ead20d39ffd6f2f6f2a8f8a6de67ff8bb1b4f14a8a30e058502514ee2ac685"}, + {file = "pydantic_core-2.50.1-cp313-cp313-win_amd64.whl", hash = "sha256:7816e98acc08119dc0f340ab167048ecc54126316330c1f0caf7c6756c88e28f"}, + {file = "pydantic_core-2.50.1-cp313-cp313-win_arm64.whl", hash = "sha256:c17799a62c142d61b8a3c51752a7cbc87fe2ad4ccfab10e628a77b405075c662"}, + {file = "pydantic_core-2.50.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:1cf41f1ae3fa155cf167a72689ad044bcc1e3c97e064123677149bdfb5dafc4a"}, + {file = "pydantic_core-2.50.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4df197990c15b5a37c5a277d131d9f2c67de6133f2e5dafd80d9bba4b99f46f9"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0036473f5583e6a60e50b8b21651511564277a3f05cc5dab8cf579f552cd5f6c"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:992c3514ec891fa7858099183e4d64e6bd5a5d4ff452fae29df22faa77a006bb"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:739dc730e6be3bd5ec2f4ab5cfc7eb047cc45fc1497b3bafec74ff2ed07df597"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32fad3a91e51b6d2039c572db04a5a873260b399f6bd62c3552671fa7a4a2899"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42b54c2c90ad348b5e3a85e03e715d572c1fde357ef104cdfe3b03b697a404ea"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:2df1ff41884de2bc4b307bafd7c40a691094fad2ff8e767e5b45a319257bcf4e"}, + {file = "pydantic_core-2.50.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe90228920fd8ff2be62622b6bb8a2b11acd65046d50c6b130614b5879605a20"}, + {file = "pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:844b869f118e22a41a091bdcedda8a71bc1b0f62c38d1a0c3211cece47e1d8fc"}, + {file = "pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:2eb75304506894a281d346220a4f7481a1b8729577c5ed2a05395991966a8396"}, + {file = "pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6b20a4bffabdad0db2927ac034ae3b8a681b1f7a0182f3e60b479ad2fde21ebb"}, + {file = "pydantic_core-2.50.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:99ba9bc2b8062ea0c326a990f7f00e6530c23579de66dd246e72c4cafef950a5"}, + {file = "pydantic_core-2.50.1-cp314-cp314-win32.whl", hash = "sha256:cf356f70551d40374eaffb1aa63f1eb6d2006681cbd7a9faea173ce0f4dd7cd2"}, + {file = "pydantic_core-2.50.1-cp314-cp314-win_amd64.whl", hash = "sha256:d32f3acc081cc3923386d88f422cde8892335e95f034e0104bb4cf9310d9915f"}, + {file = "pydantic_core-2.50.1-cp314-cp314-win_arm64.whl", hash = "sha256:bed5163e03b98bc1fa2eb05d74c63d9c5c95d8ed6254985481640fbf5e237dea"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:9572c1369e9c9da2d64a7b7992c786d90ff295abc93964cfe3125e4290768070"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2005207aafe1231315718bf6ed5d064a7300fb4772754af35ee72fc68159492e"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f6047f62a6c5ae08d0a6afb035667aa2d97c3d20d69762e034c5ea144d92a5"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ef800dd7d85bcdadf4c3076e4c94e43939493558a3b69a1ea830c706d4617bb"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0135bcdcaa0f23573f286e4cb5e0fd2962700964ed13df085b85f2b97aeab9e"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b3a6f334c6a2345ca15318ff894502a90012536404b37c844a976c76c846e0b"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06e01fbbfdb9be777b316a71b6c49efaf4a08b615d0a98d678cda3023f79d019"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a29a061fec0b4e2d714f277e70a3a18125ecff803f2fea6eade2f2e53711d112"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f5187624823423e1d1b82b1072ac41dc837389e18d3d0572cc19bbee46cd550a"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3e46a9eb0a0901dd6275e6b06ac3a464885ef350ec4121fe486869de8053e4bb"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:756d669f04e62ec4148ecfe22be6a4484d9b1181a6ef32e205ebfd200540858b"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:c516cc5367ca3448995d42cb994bf3f4c9002d2a7c22eac9622551269ad1b807"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-win32.whl", hash = "sha256:9d1bed94af6a63835461f3cf7502058eb166c58c4778e11d0f433cfb1bd69e19"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c8dce1f1e0e5358b682a6ad3fa5e31b31d4560997b8e61417e9217c8d60f8a0c"}, + {file = "pydantic_core-2.50.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ceff0acc940be2715bd6ad17b24c0e5304abf44f6efd0f81ee8499e640f9dc86"}, + {file = "pydantic_core-2.50.1-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:8a6791afa2245e6c6b180122d105941644f5bd410bb18623b408808cc41a3102"}, + {file = "pydantic_core-2.50.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:84f34323a61a365b4e9295de6028474754829aaddd59c7bf1a040e7487ef8f3c"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23edad659e8dbd8ca7e4e877fe6c81573abbdf215bd25a68b53e1272f58b80c7"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a5fce22f1e87d181e924e12da7d81cfe031fb3881a5ddf26ad28f141756ca43"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c73622ef819328873b53109ee4f77ceb598bffedd02daf916102be3228866b78"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce8c25ca38cc0e3d7753ba180808de2c0c8cb24eae0df64491e40921454e9831"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7689580e72a642ab5ec64d5f55b2e33636fa43b4ebe63c0c2c965ef307c7d1aa"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:d5c0e32fdbce7f1e8ef4d11f655694bf5f4175c757a9f1dc2be09b8864e5bcf5"}, + {file = "pydantic_core-2.50.1-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40f523349960fa30f3ea51404308ff50f9997a90df639590f47a057c1f32b415"}, + {file = "pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:d4193206b6587047437f6f11d7e776df23e1c1e23af2a54d9347275614791e10"}, + {file = "pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:84bc765b282a9d5b7fe0348b8648904f25a6a04b2139da52b1dd30c8ac3a2c8f"}, + {file = "pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:ed1e728b39a383c81035b2459cfcb35d99dfb01f7d6ebe3a913bc1cc5b81e459"}, + {file = "pydantic_core-2.50.1-cp315-cp315-win32.whl", hash = "sha256:bc94f474417604bd383d2cd445d071b07dd55fedceed3ce33407bf1fcc107290"}, + {file = "pydantic_core-2.50.1-cp315-cp315-win_amd64.whl", hash = "sha256:983a662de2571cb2502fc8ff47b6770b03d025d2eb314c92f77b3f07c74720ed"}, + {file = "pydantic_core-2.50.1-cp315-cp315-win_arm64.whl", hash = "sha256:94845ff54dc5193f228cab81b2662a04bfbb892e95bdc15edf7399000ce57d54"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:4a53d13cdfbedbfa87f08b83c1a0a5efcc767d785a4b41934fa9cb672670493a"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:efbecf43d321f7b9281441f1f213f7c21c66988b0e06c2730ba13ed47a46bb08"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1f08f68dac9f9e83845a8039880aba2ab553eb9b2259c3243a313182c253fe"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5dfe41f232befddb9c4377f6cfc702b51595e2d78ed082672adf8758d2c4619f"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adc06d218a1cadfd2ec4628424d7d79ce4eba69c2965e7e7b55106f0da5208c8"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cf91809d0721ab81592ba67bea7694821679c10b1a2e3c3460082b286c1918a"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23923ab9292c40da026330b1ecf4dc2618c8e86e0422e5d1fbf50d94d64ca4f8"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:f3377c8c2b3ce898423c5e5dd94c7982e30aa7717a7e6ab2470b9de364963709"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:455a773617b5913bf5c20d0692e5787b119e52c4d40ea644ca31f5758fd31be2"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:1a9006395dece0e32e704c315eff8a00bede494f6108546cfc5539c89fef4f9a"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:d2d82aa62521c55ddfb000ae70f88cdd8de974078f6024e821dfe5addd0c818f"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:009634b83993777ddcd69cad0ffcace43dabde692109528e35f0fde91e386a8b"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-win32.whl", hash = "sha256:3fde4fdc6487a58d944ca87cf5adc95d5f266e872c19599f5f4c0a8a1b1f9f9f"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-win_amd64.whl", hash = "sha256:1c8632d4ac04e6f91128fca584b3a8a507d81604c24eeaaad00d4be42765c32b"}, + {file = "pydantic_core-2.50.1-cp315-cp315t-win_arm64.whl", hash = "sha256:c3ede305158e75510be50869b319550ab072008c13d64d4ab1e094fb286b6f44"}, + {file = "pydantic_core-2.50.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:062e891facce5ca296a1c37098e5e466780457f86413894b399f0cf22934f769"}, + {file = "pydantic_core-2.50.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:49c2cbb2397fe4d0987e84606e691af6cb87bc0ee1bd3e7b737f7e10b4c142f9"}, + {file = "pydantic_core-2.50.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e4472072de0137ee0d8e72d6620e85939c271d2f90f6bbb4b15c24638b79f92"}, + {file = "pydantic_core-2.50.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ed4f3cef55164b026fefb41341b7754cc6b624c75dfe7142d2ecceb5ad21c87"}, + {file = "pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:76e2e83fa6ec8cdc972d438dafc2522b3a47bee4ec0ae668b29cfb1977ab5242"}, + {file = "pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a51eee75939cf811ac09b278745a6cee7dc873ccfbc8b9af3cc88fe4b7ce25b5"}, + {file = "pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae28183297fb0d2b8dc46a1f01d51f5e45825fc5afe76a835a6cb7fb34821295"}, + {file = "pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88e492e8b9d0312e7dc13667c30222abf284dc3b79b5302b3607b41a5784ce61"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7456d699b13954e9c0164dcb267250a10ae0dfb03e6e26d6796ab0d46e189c84"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0d955195bbbe489ad343fcc956eacea9357b79cb22192c66cacdefcbc14b32f"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2c634642694e6a0dad2ab1d375589fa671fd442edd5caf7d9737b8f6ca22906"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ee6db2fbed51a7991302e8fac498cd67e336246026d0dfa84cf5166ce1412760"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:79490e33c4c0fcb933bbbcfc3a62184d8803b99f535863dfbb925e1bcb6945ad"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:48569b0ade9edfbe065cad1d700175546592aebbb42f02adcebcc26e75b896fe"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5f3cae32fc46121f787cb2486de9cf95a8bf72aec5cc78f64c606fa1735a6ef5"}, + {file = "pydantic_core-2.50.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:7f476456ac2bb0d937f75191494a09c83a30765fea4f70f3b404942fe25f6cdf"}, + {file = "pydantic_core-2.50.1.tar.gz", hash = "sha256:e50d7b94baac6c7d09927fa5ca5800a0c7ee5015c7fcff65beb3a1931b5a6e09"}, ] [package.dependencies] -typing-extensions = ">=4.14.1" +typing-extensions = ">=4.16.0" [[package]] name = "pygments" @@ -1336,14 +1350,14 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests [[package]] name = "pytest-asyncio" -version = "1.4.0" +version = "1.4.1" description = "Pytest support for asyncio" optional = false python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1"}, - {file = "pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42"}, + {file = "pytest_asyncio-1.4.1-py3-none-any.whl", hash = "sha256:507afa78ec77c6661164ef1a2368bc7820383fd1a14b2a7f813de8b5a92949cc"}, + {file = "pytest_asyncio-1.4.1.tar.gz", hash = "sha256:e8266eb094e5ee9ffdb2068c9836f33e209ea77a970eb846933d416b5602669b"}, ] [package.dependencies] @@ -1465,72 +1479,90 @@ files = [ [[package]] name = "tomli" -version = "2.4.1" +version = "2.5.0" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] markers = "python_version == \"3.10\"" files = [ - {file = "tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30"}, - {file = "tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a"}, - {file = "tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076"}, - {file = "tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9"}, - {file = "tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c"}, - {file = "tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc"}, - {file = "tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049"}, - {file = "tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e"}, - {file = "tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece"}, - {file = "tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a"}, - {file = "tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085"}, - {file = "tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9"}, - {file = "tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5"}, - {file = "tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585"}, - {file = "tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1"}, - {file = "tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917"}, - {file = "tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9"}, - {file = "tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257"}, - {file = "tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54"}, - {file = "tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a"}, - {file = "tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897"}, - {file = "tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f"}, - {file = "tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d"}, - {file = "tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5"}, - {file = "tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd"}, - {file = "tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36"}, - {file = "tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd"}, - {file = "tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf"}, - {file = "tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac"}, - {file = "tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662"}, - {file = "tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853"}, - {file = "tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15"}, - {file = "tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba"}, - {file = "tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6"}, - {file = "tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7"}, - {file = "tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232"}, - {file = "tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4"}, - {file = "tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c"}, - {file = "tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d"}, - {file = "tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41"}, - {file = "tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c"}, - {file = "tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f"}, - {file = "tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8"}, - {file = "tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26"}, - {file = "tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396"}, - {file = "tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe"}, - {file = "tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f"}, + {file = "tomli-2.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c4dc1c1781f2f716de763d1e9a7b34c6a894e167e291c7c5d16c72f7a9538545"}, + {file = "tomli-2.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eff8babca5a7999bc137acbc7482a8b7e17ffca5075ab41f5d770ab408c7bfef"}, + {file = "tomli-2.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:86665cee9c4835b7a7f1e8ec2c719b5258d4dc782887aded5a8ae7352a96843b"}, + {file = "tomli-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e369fd63331746182360977b1892bfc215476a30d61612d732425311639f56"}, + {file = "tomli-2.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ad1ea345759240d6463efa0ed1c704402752e49aa21476620738d74d72d8aa1"}, + {file = "tomli-2.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:96243987194634bd411066ce40c952e108f86af04db533ecd8ac3ff2a85b1885"}, + {file = "tomli-2.5.0-cp311-cp311-win32.whl", hash = "sha256:610b27d99f28ec5f191c7064a48f3ddb179a1fe6ca73d571483ae859f57b605e"}, + {file = "tomli-2.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:c804ae44fe7b4bab5da295e4f980a1ff04670bca9d23fe0a4e887e08ebd741a8"}, + {file = "tomli-2.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:cfac177ebd6236003846ea339981f71457cb6eb748f23381eb257e45092e3980"}, + {file = "tomli-2.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f4a40d03fb9f63424f0979855bdeaf44dd7696b8d59501822c10ed30ba532df"}, + {file = "tomli-2.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ebf8d19b17bd0daeb7b7dec81a946a439b753942fd0210d6e96c532249eea6b"}, + {file = "tomli-2.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf0b5e8e0f68ebb494356e577c06c139161efd8d3b9050f93b39b7c26cc54ff0"}, + {file = "tomli-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cf74416bdc94ae458b14e37286c1073081850ac8459a00d0c5efef5d44294c6"}, + {file = "tomli-2.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:61ea1ebe1e55a34ea8199cc8dbff398d35027b82271c8ac4802fd3a1fd5b1bcc"}, + {file = "tomli-2.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed53f7e89bb04f6d9e8e7799112360b0c4d5cbff067de0814c98c37c39b920f7"}, + {file = "tomli-2.5.0-cp312-cp312-win32.whl", hash = "sha256:e7ad033e27a516a233bea839cdb77b80146facb3b4f40bf02cd0cac165cdd5c2"}, + {file = "tomli-2.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:bd05de8c1698f8413dd7d869492693a0bf2211543b787ac78cd5e7536af1a6d7"}, + {file = "tomli-2.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:069435bd5480429b98c5e5afb02ab21c219b6f0064680671c6dc0d46817346ea"}, + {file = "tomli-2.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:943276cf269e0071948d9ff697159c1735e623c1151d88abb09b74659ef0cbea"}, + {file = "tomli-2.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:463b16086865b97facd8d0b3fb4cb7c544e3f58d2a69dc3113d6db9653fdb043"}, + {file = "tomli-2.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1245a6638fc4bb0a60af38a7d45413db34a13842027c77597c712c998c62fdf0"}, + {file = "tomli-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5d8bac3d603c97e6854424e5b2b5b741bdbde387e09f162fb0446812b4a8362b"}, + {file = "tomli-2.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:21e4cae4114aba25aa0d4f85cdf486d290fb35c0954d7bba536248da64d43066"}, + {file = "tomli-2.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bbaefc84548d754be821bba7c4141c4787dda182f9e77f2f87b71213529efa7b"}, + {file = "tomli-2.5.0-cp313-cp313-win32.whl", hash = "sha256:abdbf6313b8d9efe157edeb7ab6eae4de064b1300ad31abf73755154b30abe68"}, + {file = "tomli-2.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd4dc129784e0c5335bd4e61dfcc4487499a013419e655cf2da1d091b7e0efdc"}, + {file = "tomli-2.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:69491c143d2fe063046e0301e62a810bed338fa4d1ce0fd870c27dc1e09b0d84"}, + {file = "tomli-2.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d3182ee2d887e507bd67319a0a61105d1dd33facc111329559a233b772c1a105"}, + {file = "tomli-2.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:521345fd1f19d45b8df87657aaa38b6f2ca3800059fadf428e7ebf479a383646"}, + {file = "tomli-2.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e95c7614e705bfe2b04b27aa124adec59752d15813df37e2156747cab3a006b"}, + {file = "tomli-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ac2027d37c3afbdf4bdd377f2676f6f1d2122a5be1f1137b49dced590b37e75"}, + {file = "tomli-2.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c414be4ed9d3cac80c42e348fa5a956117d1a48227f48026e31f59cb4a7671eb"}, + {file = "tomli-2.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9b03d7dc168353b4132965bde20feceabaa470e570c6f59660dfae59b1f9eeb3"}, + {file = "tomli-2.5.0-cp314-cp314-win32.whl", hash = "sha256:6f041843c4d3a37245c0c056fd955b186bf8b1fb85690cbe40b81230891dc34b"}, + {file = "tomli-2.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:f4b653094e18f9031102d3a1da5c729c8f222d85225b18037dac621695e46e1a"}, + {file = "tomli-2.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:3f89d10c1ff6a38d992c27fc8a4816af71a909e08a40ec66934240b1e74347c3"}, + {file = "tomli-2.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:e9e15b4a6c7dd6b85b5fbab29488a73f1f70de516942308daa266bf0e0aeb0d4"}, + {file = "tomli-2.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e12bbcd32897272fb05929110362ae9ff4c1b9bb26bd9e971e71dcd3275b4c3d"}, + {file = "tomli-2.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20aa36de8f2cf87237143bc1fa1aae8d6612c09118f4da21c6a684db5dd1f6f9"}, + {file = "tomli-2.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22185fad8a1e622f064e78008018a0dd3323550dcb479cb7a1d296888d74024f"}, + {file = "tomli-2.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:984012f71908165449a951de2050d52f276bfe3aa5d5f570f63ddad814370374"}, + {file = "tomli-2.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f79203b3965b4000e91808aaa7c040206093f2b8bf86f455982f2274c9ccf442"}, + {file = "tomli-2.5.0-cp314-cp314t-win32.whl", hash = "sha256:91294a9fb94a75542f6e46e4a2ae709bd8d9b51134098cae5cf3bea5478b6d03"}, + {file = "tomli-2.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f15e3e0b835a6d68b10c86bf80a3149780498d6911c93c3ffd1861d19f9200f1"}, + {file = "tomli-2.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:6664b7ae7af7294256c53960a6103077f4914cec8ff98479c352f622c6f6b2f0"}, + {file = "tomli-2.5.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:a525685c2f97da40762b8695eb7aa0af4c8344ca1905c73e4e29cb04d34607dc"}, + {file = "tomli-2.5.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:9dbb18c1cfb2f6517942fc9314437f66aa06d94436ffb1f06102ef3572f35276"}, + {file = "tomli-2.5.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:752e8b1aa6a4367ef8bf6a1a1e005540f7ed055ba36d7193796812ca5404eb52"}, + {file = "tomli-2.5.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47300f9bf791808f77d82747691c4bb09cb14bdf3060cca99b42cdc4361d5a7"}, + {file = "tomli-2.5.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:19b0dd8749f4ea2f112c5fcfb3c5248390c899d7e2e173f1d91abee1fa0ff391"}, + {file = "tomli-2.5.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:57b1c3b01fab802e2899bc3d168dca320e14165e2fd9fd584760fb4ca5826859"}, + {file = "tomli-2.5.0-cp315-cp315-win32.whl", hash = "sha256:667e521b37a6c5ccaa044202c235b530f90177ffe2cd4a64ecc213c7dd535feb"}, + {file = "tomli-2.5.0-cp315-cp315-win_amd64.whl", hash = "sha256:d747252933c8a65ef6bd8da0fbb7ce28a90eb6119d8cd00772cd528aa07b68d5"}, + {file = "tomli-2.5.0-cp315-cp315-win_arm64.whl", hash = "sha256:75dbcde8751b0a960aa3de173aa5e894d590755c6d7758b7e774c06f1dc3cbdd"}, + {file = "tomli-2.5.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:2419c2a189551987b59d80e63ec355671283336f41c6b9b89462df679c7d0c57"}, + {file = "tomli-2.5.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:0dc598040da8d42cf20f0be588ed7004f46db12a0ac6c32e03a59dccedaaadcd"}, + {file = "tomli-2.5.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49096930c8d886c9bbdab62d2d0d17ce823ddeea522309a190b36245d5b49e01"}, + {file = "tomli-2.5.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8ade5023067f99fe72b88accd30d0ea05a158e9e32a11f124e731ea9695313f"}, + {file = "tomli-2.5.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:b69564772b5c8f22ea5f498dff08cfa825045b4d4c4400529000bdf818aa3b2a"}, + {file = "tomli-2.5.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:8ff3a2ca028c7eee0c777f9a092038d0a594a9fa04e215f929a22c329e2cb142"}, + {file = "tomli-2.5.0-cp315-cp315t-win32.whl", hash = "sha256:62fc1bc8eb03e3a9cadfca713d65614ed8e09d974a283295ffe3a831976b4dc5"}, + {file = "tomli-2.5.0-cp315-cp315t-win_amd64.whl", hash = "sha256:f3fcbc57b1791fa6cbe5d8434179d51de12be1a4811469529f47f6e7487a2571"}, + {file = "tomli-2.5.0-cp315-cp315t-win_arm64.whl", hash = "sha256:d2ba24db8a9376921b5e87b4762b9adb0f3f1deaea68f2b8b0bb2c11efb9c3e7"}, + {file = "tomli-2.5.0-py3-none-any.whl", hash = "sha256:32a7b79ac57a2e83670ce329ccf675798bc5a2094783a63676866b70503f2e2b"}, + {file = "tomli-2.5.0.tar.gz", hash = "sha256:264507556cd8b8c8e7c6ee037cdf443a463f03f4c958e57195e3d369711b8ff6"}, ] [[package]] name = "types-python-dateutil" -version = "2.9.0.20260807" +version = "2.9.0.20261021" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "types_python_dateutil-2.9.0.20260807-py3-none-any.whl", hash = "sha256:54aa3707350ed7a9cc0776fd2f6739679d6967d11b40150985e81edcb86df4db"}, - {file = "types_python_dateutil-2.9.0.20260807.tar.gz", hash = "sha256:e0b8a90d464c8684c66b7b8e4556d9074afdddcc56ca45323f0987134f9e7034"}, + {file = "types_python_dateutil-2.9.0.20261021-py3-none-any.whl", hash = "sha256:12aab3bdfe55e1d9de7f54301e025d6276ce17e6a08e31644f2202d59c8d1fca"}, + {file = "types_python_dateutil-2.9.0.20261021.tar.gz", hash = "sha256:62d66fcdd293e38745eae644e5da4cb399b98799c0ae61f03a54896fb51b3140"}, ] [[package]] @@ -1580,25 +1612,25 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "wasmtime" -version = "49.0.0" +version = "50.0.1" description = "A WebAssembly runtime powered by Wasmtime" optional = true python-versions = ">=3.9" groups = ["main"] markers = "extra == \"datastream\" or extra == \"rulesengine\"" files = [ - {file = "wasmtime-49.0.0-py3-none-android_26_arm64_v8a.whl", hash = "sha256:376c60e195b22bbe07b10d517ed4a83bbcc1896df0065e523dd4801b22570a8c"}, - {file = "wasmtime-49.0.0-py3-none-android_26_x86_64.whl", hash = "sha256:0153c9d5fe061dd21e761f47cd65be36bf6656970c52df034e4db4871ad2b11a"}, - {file = "wasmtime-49.0.0-py3-none-any.whl", hash = "sha256:3afc071340d9bb0cdf0fc0213e670c6c06ac193f2d73caf9b92d928496e49a51"}, - {file = "wasmtime-49.0.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:839225359e01360974795bd7869c25d4305da96627df0af360b0668e20ecf1fb"}, - {file = "wasmtime-49.0.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:de98d6282c61d5dd4dc1ff1b410936ceb6fff3a27439e9cab51a375b8da2ec2f"}, - {file = "wasmtime-49.0.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:94f0288f9e1c33924995a72bb769f4c4e2885002391589dd6992cdaa35d1990a"}, - {file = "wasmtime-49.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:263b924576d9519c43d5a1acff50a03ab03209d16d26c53543c9ab9a409fb93f"}, - {file = "wasmtime-49.0.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:8ab7e74c730bdda9613a8cd28b54aafa9e7f5d64aaff1a808751ccb142a76994"}, - {file = "wasmtime-49.0.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7198903d53c63673acdbe4753594703d090842c4c9e050d2d4ff14ecfebed00f"}, - {file = "wasmtime-49.0.0-py3-none-win_amd64.whl", hash = "sha256:46a4e4220fd1bee45ad9c29a73cadad54373dad840eff104726490527bc7ef89"}, - {file = "wasmtime-49.0.0-py3-none-win_arm64.whl", hash = "sha256:95ab8d3da870f38202f11c0933650cbdf014885335fcd407d6ae1a6b3d647599"}, - {file = "wasmtime-49.0.0.tar.gz", hash = "sha256:fe0bf510ebdaf9432b756e320d2da2347f159e241f468c961b95164ab06cfdc1"}, + {file = "wasmtime-50.0.1-py3-none-android_26_arm64_v8a.whl", hash = "sha256:62e4d9b9371b4766a3deb044618c17adad3983ab3333d1598df0e981ec88206f"}, + {file = "wasmtime-50.0.1-py3-none-android_26_x86_64.whl", hash = "sha256:612ebd1874eeab5f3eb3f18e529ab8af4bff885b7450c58593e3c3889868406b"}, + {file = "wasmtime-50.0.1-py3-none-any.whl", hash = "sha256:d174cad86f66dd819b0c3a77f27e375ca1f106d3858be221ce924d57d3856050"}, + {file = "wasmtime-50.0.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:13fe813b922712a9e10fe0f48b2c56da06432eea4b24269bb7cd3a6b2720560b"}, + {file = "wasmtime-50.0.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ff4fc58ed3cbdb919d056accd4d280be13962a542754aaefd8a9b4654efa9bd9"}, + {file = "wasmtime-50.0.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:cc14c3a17654e0394e0225b11813532ef0cd7bd1e222a0c5494cdedaabeddac4"}, + {file = "wasmtime-50.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:675484e525c028dc02762b777f1db4477ea70caa3fec6775426daff4d64edfb1"}, + {file = "wasmtime-50.0.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f9c6973ae735946b3387b7a8e812ecd350eac3152c4b73998a57899dd9c4345c"}, + {file = "wasmtime-50.0.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e3e2051b02b8a47e2418f569e380843e87c1d74c40cd843bfa14c223245d420b"}, + {file = "wasmtime-50.0.1-py3-none-win_amd64.whl", hash = "sha256:a8999581230471f4ff62073b1111eff3a01d45ccec0a908da3f2ae3a499d459c"}, + {file = "wasmtime-50.0.1-py3-none-win_arm64.whl", hash = "sha256:83ddab2358ebde392a065581f2c66995a711ccc25ad0aee7b1d20f8c688075d2"}, + {file = "wasmtime-50.0.1.tar.gz", hash = "sha256:d9a1eb530e5c4a55853784ae6bff0053db3cad89299097ad00e352e3d48c3cc1"}, ] [package.extras] diff --git a/pyproject.toml b/pyproject.toml index 944dfaad..b1359d27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ license-files = ["LICENSE"] [tool.poetry] name = "schematichq" -version = "1.4.5" +version = "1.4.6" description = "" readme = "README.md" authors = [] diff --git a/reference.md b/reference.md index 7a5960fa..74cc6e05 100644 --- a/reference.md +++ b/reference.md @@ -1,5 +1,5 @@ # Reference -
client.get_credit_ledger() +
client.post_api_keys()
@@ -20,7 +20,7 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.get_credit_ledger() +client.post_api_keys() ```
@@ -48,8 +48,7 @@ client.get_credit_ledger()
-## accounts -
client.accounts.list_account_members(...) -> ListAccountMembersResponse +
client.put_api_keys_api_key_id(...)
@@ -70,14 +69,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.list_account_members( - ids=[ - "ids" - ], - q="q", - role="admin", - limit=1000000, - offset=1000000, +client.put_api_keys_api_key_id( + api_key_id="api_key_id", ) ``` @@ -94,39 +87,7 @@ client.accounts.list_account_members(
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` - -
-
- -
-
- -**q:** `typing.Optional[str]` — Search filter - -
-
- -
-
- -**role:** `typing.Optional[AccountMemberRole]` — Filter by member role - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - -
-
- -
-
- -**offset:** `typing.Optional[int]` — Page offset (default 0) +**api_key_id:** `str`
@@ -146,7 +107,7 @@ client.accounts.list_account_members(
-
client.accounts.get_account_member(...) -> GetAccountMemberResponse +
client.delete_api_keys_api_key_id(...)
@@ -167,8 +128,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.get_account_member( - account_member_id="account_member_id", +client.delete_api_keys_api_key_id( + api_key_id="api_key_id", ) ``` @@ -185,7 +146,7 @@ client.accounts.get_account_member(
-**account_member_id:** `str` — account_member_id +**api_key_id:** `str`
@@ -205,7 +166,7 @@ client.accounts.get_account_member(
-
client.accounts.count_account_members(...) -> CountAccountMembersResponse +
client.post_environments()
@@ -226,15 +187,7 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.count_account_members( - ids=[ - "ids" - ], - q="q", - role="admin", - limit=1000000, - offset=1000000, -) +client.post_environments() ```
@@ -250,46 +203,6 @@ client.accounts.count_account_members(
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` - -
-
- -
-
- -**q:** `typing.Optional[str]` — Search filter - -
-
- -
-
- -**role:** `typing.Optional[AccountMemberRole]` — Filter by member role - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - -
-
- -
-
- -**offset:** `typing.Optional[int]` — Page offset (default 0) - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -302,7 +215,7 @@ client.accounts.count_account_members(
-
client.accounts.list_api_keys(...) -> ListApiKeysResponse +
client.put_environments_environment_id(...)
@@ -323,11 +236,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.list_api_keys( +client.put_environments_environment_id( environment_id="environment_id", - require_environment=True, - limit=1000000, - offset=1000000, ) ``` @@ -344,31 +254,7 @@ client.accounts.list_api_keys(
-**require_environment:** `bool` - -
-
- -
-
- -**environment_id:** `typing.Optional[str]` - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - -
-
- -
-
- -**offset:** `typing.Optional[int]` — Page offset (default 0) +**environment_id:** `str`
@@ -388,7 +274,7 @@ client.accounts.list_api_keys(
-
client.accounts.create_api_key(...) -> CreateApiKeyResponse +
client.delete_environments_environment_id(...)
@@ -409,8 +295,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.create_api_key( - name="name", +client.delete_environments_environment_id( + environment_id="environment_id", ) ``` @@ -427,39 +313,7 @@ client.accounts.create_api_key(
-**name:** `str` - -
-
- -
-
- -**description:** `typing.Optional[str]` - -
-
- -
-
- -**environment_id:** `typing.Optional[str]` - -
-
- -
-
- -**rate_limit_percent:** `typing.Optional[int]` - -
-
- -
-
- -**readonly:** `typing.Optional[bool]` +**environment_id:** `str`
@@ -479,7 +333,7 @@ client.accounts.create_api_key(
-
client.accounts.get_api_key(...) -> GetApiKeyResponse +
client.get_credit_ledger()
@@ -500,9 +354,7 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.get_api_key( - api_key_id="api_key_id", -) +client.get_credit_ledger() ```
@@ -518,14 +370,6 @@ client.accounts.get_api_key(
-**api_key_id:** `str` — api_key_id - -
-
- -
-
- **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -538,7 +382,8 @@ client.accounts.get_api_key(
-
client.accounts.update_api_key(...) -> UpdateApiKeyResponse +## accounts +
client.accounts.list_account_members(...) -> ListAccountMembersResponse
@@ -559,8 +404,14 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.update_api_key( - api_key_id="api_key_id", +client.accounts.list_account_members( + ids=[ + "ids" + ], + q="q", + role="admin", + limit=1000000, + offset=1000000, ) ``` @@ -577,7 +428,7 @@ client.accounts.update_api_key(
-**api_key_id:** `str` — api_key_id +**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
@@ -585,7 +436,7 @@ client.accounts.update_api_key(
-**description:** `typing.Optional[str]` +**q:** `typing.Optional[str]` — Search filter
@@ -593,7 +444,7 @@ client.accounts.update_api_key(
-**name:** `typing.Optional[str]` +**role:** `typing.Optional[AccountMemberRole]` — Filter by member role
@@ -601,7 +452,15 @@ client.accounts.update_api_key(
-**rate_limit_percent:** `typing.Optional[int]` +**limit:** `typing.Optional[int]` — Page limit (default 100) + +
+
+ +
+
+ +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -621,7 +480,7 @@ client.accounts.update_api_key(
-
client.accounts.delete_api_key(...) -> DeleteApiKeyResponse +
client.accounts.get_account_member(...) -> GetAccountMemberResponse
@@ -642,8 +501,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.delete_api_key( - api_key_id="api_key_id", +client.accounts.get_account_member( + account_member_id="account_member_id", ) ``` @@ -660,7 +519,7 @@ client.accounts.delete_api_key(
-**api_key_id:** `str` — api_key_id +**account_member_id:** `str` — account_member_id
@@ -680,7 +539,7 @@ client.accounts.delete_api_key(
-
client.accounts.count_api_keys(...) -> CountApiKeysResponse +
client.accounts.count_account_members(...) -> CountAccountMembersResponse
@@ -701,9 +560,12 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.count_api_keys( - environment_id="environment_id", - require_environment=True, +client.accounts.count_account_members( + ids=[ + "ids" + ], + q="q", + role="admin", limit=1000000, offset=1000000, ) @@ -722,7 +584,7 @@ client.accounts.count_api_keys(
-**require_environment:** `bool` +**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
@@ -730,7 +592,15 @@ client.accounts.count_api_keys(
-**environment_id:** `typing.Optional[str]` +**q:** `typing.Optional[str]` — Search filter + +
+
+ +
+
+ +**role:** `typing.Optional[AccountMemberRole]` — Filter by member role
@@ -766,7 +636,7 @@ client.accounts.count_api_keys(
-
client.accounts.list_audit_logs(...) -> ListAuditLogsResponse +
client.accounts.list_api_keys(...) -> ListApiKeysResponse
@@ -781,19 +651,15 @@ client.accounts.count_api_keys( ```python from schematic import Schematic from schematic.environment import SchematicEnvironment -import datetime client = Schematic( api_key="", environment=SchematicEnvironment.DEFAULT, ) -client.accounts.list_audit_logs( - actor_type="api_key", - end_time=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), +client.accounts.list_api_keys( environment_id="environment_id", - q="q", - start_time=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + require_environment=True, limit=1000000, offset=1000000, ) @@ -812,7 +678,7 @@ client.accounts.list_audit_logs(
-**actor_type:** `typing.Optional[ActorType]` +**require_environment:** `bool`
@@ -820,7 +686,7 @@ client.accounts.list_audit_logs(
-**end_time:** `typing.Optional[datetime.datetime]` +**environment_id:** `typing.Optional[str]`
@@ -828,7 +694,7 @@ client.accounts.list_audit_logs(
-**environment_id:** `typing.Optional[str]` +**limit:** `typing.Optional[int]` — Page limit (default 100)
@@ -836,7 +702,7 @@ client.accounts.list_audit_logs(
-**q:** `typing.Optional[str]` +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -844,23 +710,58 @@ client.accounts.list_audit_logs(
-**start_time:** `typing.Optional[datetime.datetime]` +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+
+
+ + + +
+ +
client.accounts.get_api_key(...) -> GetApiKeyResponse
-**limit:** `typing.Optional[int]` — Page limit (default 100) - +#### 🔌 Usage + +
+
+ +
+
+ +```python +from schematic import Schematic +from schematic.environment import SchematicEnvironment + +client = Schematic( + api_key="", + environment=SchematicEnvironment.DEFAULT, +) + +client.accounts.get_api_key( + api_key_id="api_key_id", +) + +``` +
+
+#### ⚙️ Parameters +
-**offset:** `typing.Optional[int]` — Page offset (default 0) +
+
+ +**api_key_id:** `str` — api_key_id
@@ -880,7 +781,7 @@ client.accounts.list_audit_logs(
-
client.accounts.get_audit_log(...) -> GetAuditLogResponse +
client.accounts.count_api_keys(...) -> CountApiKeysResponse
@@ -901,8 +802,11 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.get_audit_log( - audit_log_id="audit_log_id", +client.accounts.count_api_keys( + environment_id="environment_id", + require_environment=True, + limit=1000000, + offset=1000000, ) ``` @@ -919,7 +823,31 @@ client.accounts.get_audit_log(
-**audit_log_id:** `str` — audit_log_id +**require_environment:** `bool` + +
+
+ +
+
+ +**environment_id:** `typing.Optional[str]` + +
+
+ +
+
+ +**limit:** `typing.Optional[int]` — Page limit (default 100) + +
+
+ +
+
+ +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -939,7 +867,7 @@ client.accounts.get_audit_log(
-
client.accounts.count_audit_logs(...) -> CountAuditLogsResponse +
client.accounts.list_audit_logs(...) -> ListAuditLogsResponse
@@ -961,7 +889,7 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.count_audit_logs( +client.accounts.list_audit_logs( actor_type="api_key", end_time=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), environment_id="environment_id", @@ -1053,7 +981,7 @@ client.accounts.count_audit_logs(
-
client.accounts.list_environments(...) -> ListEnvironmentsResponse +
client.accounts.get_audit_log(...) -> GetAuditLogResponse
@@ -1074,12 +1002,8 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.list_environments( - ids=[ - "ids" - ], - limit=1000000, - offset=1000000, +client.accounts.get_audit_log( + audit_log_id="audit_log_id", ) ``` @@ -1096,23 +1020,7 @@ client.accounts.list_environments(
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` - -
-
- -
-
- -**limit:** `typing.Optional[int]` — Page limit (default 100) - -
-
- -
-
- -**offset:** `typing.Optional[int]` — Page offset (default 0) +**audit_log_id:** `str` — audit_log_id
@@ -1132,7 +1040,7 @@ client.accounts.list_environments(
-
client.accounts.create_environment(...) -> CreateEnvironmentResponse +
client.accounts.count_audit_logs(...) -> CountAuditLogsResponse
@@ -1147,15 +1055,21 @@ client.accounts.list_environments( ```python from schematic import Schematic from schematic.environment import SchematicEnvironment +import datetime client = Schematic( api_key="", environment=SchematicEnvironment.DEFAULT, ) -client.accounts.create_environment( - environment_type="development", - name="name", +client.accounts.count_audit_logs( + actor_type="api_key", + end_time=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + environment_id="environment_id", + q="q", + start_time=datetime.datetime.fromisoformat("2024-01-15T09:30:00+00:00"), + limit=1000000, + offset=1000000, ) ``` @@ -1172,7 +1086,7 @@ client.accounts.create_environment(
-**environment_type:** `EnvironmentType` +**actor_type:** `typing.Optional[ActorType]`
@@ -1180,7 +1094,7 @@ client.accounts.create_environment(
-**name:** `str` +**end_time:** `typing.Optional[datetime.datetime]`
@@ -1188,58 +1102,39 @@ client.accounts.create_environment(
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. +**environment_id:** `typing.Optional[str]`
-
-
+
+
+**q:** `typing.Optional[str]` +
-
-
client.accounts.get_environment(...) -> GetEnvironmentResponse
-#### 🔌 Usage - -
-
+**start_time:** `typing.Optional[datetime.datetime]` + +
+
-```python -from schematic import Schematic -from schematic.environment import SchematicEnvironment - -client = Schematic( - api_key="", - environment=SchematicEnvironment.DEFAULT, -) - -client.accounts.get_environment( - environment_id="environment_id", -) - -``` -
-
+**limit:** `typing.Optional[int]` — Page limit (default 100) +
-#### ⚙️ Parameters - -
-
-
-**environment_id:** `str` — environment_id +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -1259,7 +1154,7 @@ client.accounts.get_environment(
-
client.accounts.update_environment(...) -> UpdateEnvironmentResponse +
client.accounts.list_environments(...) -> ListEnvironmentsResponse
@@ -1280,8 +1175,12 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.update_environment( - environment_id="environment_id", +client.accounts.list_environments( + ids=[ + "ids" + ], + limit=1000000, + offset=1000000, ) ``` @@ -1298,15 +1197,7 @@ client.accounts.update_environment(
-**environment_id:** `str` — environment_id - -
-
- -
-
- -**environment_type:** `typing.Optional[EnvironmentType]` +**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]`
@@ -1314,7 +1205,7 @@ client.accounts.update_environment(
-**name:** `typing.Optional[str]` +**limit:** `typing.Optional[int]` — Page limit (default 100)
@@ -1322,7 +1213,7 @@ client.accounts.update_environment(
-**require_context_signature:** `typing.Optional[bool]` +**offset:** `typing.Optional[int]` — Page offset (default 0)
@@ -1342,7 +1233,7 @@ client.accounts.update_environment(
-
client.accounts.delete_environment(...) -> DeleteEnvironmentResponse +
client.accounts.get_environment(...) -> GetEnvironmentResponse
@@ -1363,7 +1254,7 @@ client = Schematic( environment=SchematicEnvironment.DEFAULT, ) -client.accounts.delete_environment( +client.accounts.get_environment( environment_id="environment_id", ) @@ -3037,6 +2928,14 @@ client.billing.upsert_payment_method(
+**customer_billing_details:** `typing.Optional[PaymentMethodBillingDetailsRequestBody]` + +
+
+ +
+
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -10379,6 +10278,114 @@ client.catalogs.remove_plan(
+
+
+
+ +
client.catalogs.get_public_catalog() -> GetPublicCatalogResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from schematic import Schematic +from schematic.environment import SchematicEnvironment + +client = Schematic( + api_key="", + environment=SchematicEnvironment.DEFAULT, +) + +client.catalogs.get_public_catalog() + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ + +
+
+
+ +
client.catalogs.get_public_catalog_by_id(...) -> GetPublicCatalogByIdResponse +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```python +from schematic import Schematic +from schematic.environment import SchematicEnvironment + +client = Schematic( + api_key="", + environment=SchematicEnvironment.DEFAULT, +) + +client.catalogs.get_public_catalog_by_id( + catalog_id="catalog_id", +) + +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**catalog_id:** `str` — catalog_id + +
+
+ +
+
+ +**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration. + +
+
+
+
+ +
diff --git a/src/schematic/__init__.py b/src/schematic/__init__.py index 8742d491..03662bfb 100644 --- a/src/schematic/__init__.py +++ b/src/schematic/__init__.py @@ -15,7 +15,6 @@ ActorType, AmendmentProrationLandsOn, ApiError, - ApiKeyCreateResponseData, ApiKeyIntegrationResponseData, ApiKeyResponseData, ApiKeyScope, @@ -45,10 +44,13 @@ BillingCustomerResponseData, BillingCustomerSubscription, BillingCustomerWithSubscriptionsResponseData, + BillingInvoiceAddressResponseData, + BillingInvoiceBillingDetailsResponseData, BillingInvoiceDetailResponseData, BillingInvoiceLineResponseData, BillingInvoiceResponseData, BillingInvoiceSettlementResponseData, + BillingInvoiceTaxIdResponseData, BillingInvoiceTermsResponseData, BillingLinkedResourceResponseData, BillingMeterResponseData, @@ -88,6 +90,8 @@ BillingTiersMode, CaptureRawEvent, CaptureRawEventBatch, + CatalogBundleCurrencyPriceResponseData, + CatalogCapabilitiesResponseData, CatalogConfigOrderedBundle, CatalogConfigOrderedBundleResponseData, CatalogConfigOrderedEntitlement, @@ -98,9 +102,19 @@ CatalogConfigPlanCreditResponseData, CatalogConfigurationResponseData, CatalogCreditBundleIDsResponseData, + CatalogCreditBundleResponseData, + CatalogCreditGrantResponseData, + CatalogCurrencyPricesResponseData, + CatalogCustomPlanCtaResponseData, CatalogDerivedFeatureResponseData, CatalogDerivedFeaturesResponseData, + CatalogDetailResponseData, + CatalogEntitlementResponseData, + CatalogPlanEntitlementResponseData, CatalogPlanIDsResponseData, + CatalogPlanResponseData, + CatalogPriceResponseData, + CatalogPriceTierResponseData, CatalogResponseData, ChangeSubscriptionInternalRequestBody, ChangeSubscriptionRequestBody, @@ -112,6 +126,7 @@ CheckFlagsBulkResponseData, CheckFlagsResponseData, CheckoutBundlePurchaseBehavior, + CheckoutChargeTiming, CheckoutDataResponseData, CheckoutFieldInput, CheckoutFieldResponseData, @@ -269,7 +284,6 @@ EntityTraitResponseData, EntityTraitValue, EntityType, - EnvironmentDetailResponseData, EnvironmentFeatureUsageTimeSeriesResponseData, EnvironmentResponseData, EnvironmentTraitUsageTimeSeriesResponseData, @@ -366,6 +380,7 @@ OrderedPlansInGroup, OtlpEnvironmentSettingsResponseData, PaymentGating, + PaymentMethodBillingDetailsRequestBody, PaymentMethodRequestBody, PaymentMethodResponseData, PendingMigrationResponseData, @@ -415,6 +430,7 @@ PlanVersionEntitlementChangeResponseData, PlanVersionFieldChangeResponseData, PlanVersionMigrationPreviewCompanyResponseData, + PlanVersionMigrationPreviewNoteResponseData, PlanVersionMigrationPreviewResponseData, PlanVersionMigrationResponseData, PlanVersionMigrationStatus, @@ -432,8 +448,12 @@ PreviewSubscriptionChangeResponseData, PreviewSubscriptionDiscountResponseData, PreviewSubscriptionFinanceResponseData, + PreviewSubscriptionProrationLineResponseData, + PreviewSubscriptionProrationResponseData, PreviewSubscriptionUpcomingInvoiceLineItems, ProrationBehavior, + ProrationLineKind, + PublicCatalogResponseData, PublicPlansResponseData, PublishPlanVersionRequestBody, PublishPreviewPayInAdvanceResponseData, @@ -597,10 +617,6 @@ CountApiKeysResponse, CountAuditLogsParams, CountAuditLogsResponse, - CreateApiKeyResponse, - CreateEnvironmentResponse, - DeleteApiKeyResponse, - DeleteEnvironmentResponse, GetAccountMemberResponse, GetApiKeyResponse, GetAuditLogResponse, @@ -616,8 +632,6 @@ ListEnvironmentsParams, ListEnvironmentsResponse, QuickstartResponse, - UpdateApiKeyResponse, - UpdateEnvironmentResponse, UpdateOnboardingStateResponse, ) from .billing import ( @@ -678,6 +692,8 @@ GetCreditBundlesInCatalogResponse, GetDerivedFeaturesResponse, GetPlansInCatalogResponse, + GetPublicCatalogByIdResponse, + GetPublicCatalogResponse, ListCatalogsParams, ListCatalogsResponse, UpdateCatalogResponse, @@ -1049,7 +1065,6 @@ "ActorType": ".types", "AmendmentProrationLandsOn": ".types", "ApiError": ".types", - "ApiKeyCreateResponseData": ".types", "ApiKeyIntegrationResponseData": ".types", "ApiKeyResponseData": ".types", "ApiKeyScope": ".types", @@ -1083,10 +1098,13 @@ "BillingCustomerResponseData": ".types", "BillingCustomerSubscription": ".types", "BillingCustomerWithSubscriptionsResponseData": ".types", + "BillingInvoiceAddressResponseData": ".types", + "BillingInvoiceBillingDetailsResponseData": ".types", "BillingInvoiceDetailResponseData": ".types", "BillingInvoiceLineResponseData": ".types", "BillingInvoiceResponseData": ".types", "BillingInvoiceSettlementResponseData": ".types", + "BillingInvoiceTaxIdResponseData": ".types", "BillingInvoiceTermsResponseData": ".types", "BillingLinkedResourceResponseData": ".types", "BillingMeterResponseData": ".types", @@ -1129,6 +1147,8 @@ "CancelSubscriptionResponse": ".checkout", "CaptureRawEvent": ".types", "CaptureRawEventBatch": ".types", + "CatalogBundleCurrencyPriceResponseData": ".types", + "CatalogCapabilitiesResponseData": ".types", "CatalogConfigOrderedBundle": ".types", "CatalogConfigOrderedBundleResponseData": ".types", "CatalogConfigOrderedEntitlement": ".types", @@ -1139,9 +1159,19 @@ "CatalogConfigPlanCreditResponseData": ".types", "CatalogConfigurationResponseData": ".types", "CatalogCreditBundleIDsResponseData": ".types", + "CatalogCreditBundleResponseData": ".types", + "CatalogCreditGrantResponseData": ".types", + "CatalogCurrencyPricesResponseData": ".types", + "CatalogCustomPlanCtaResponseData": ".types", "CatalogDerivedFeatureResponseData": ".types", "CatalogDerivedFeaturesResponseData": ".types", + "CatalogDetailResponseData": ".types", + "CatalogEntitlementResponseData": ".types", + "CatalogPlanEntitlementResponseData": ".types", "CatalogPlanIDsResponseData": ".types", + "CatalogPlanResponseData": ".types", + "CatalogPriceResponseData": ".types", + "CatalogPriceTierResponseData": ".types", "CatalogResponseData": ".types", "ChangeSubscriptionInternalRequestBody": ".types", "ChangeSubscriptionRequestBody": ".types", @@ -1157,6 +1187,7 @@ "CheckFlagsResponse": ".features", "CheckFlagsResponseData": ".types", "CheckoutBundlePurchaseBehavior": ".types", + "CheckoutChargeTiming": ".types", "CheckoutDataResponseData": ".types", "CheckoutFieldInput": ".types", "CheckoutFieldResponseData": ".types", @@ -1296,7 +1327,6 @@ "CountWebhooksParams": ".webhooks", "CountWebhooksResponse": ".webhooks", "CouponRequestBody": ".types", - "CreateApiKeyResponse": ".accounts", "CreateBillingCreditResponse": ".credits", "CreateBillingPlanCreditGrantRequestBody": ".types", "CreateBillingPlanCreditGrantResponse": ".credits", @@ -1313,7 +1343,6 @@ "CreateDataExportResponse": ".dataexports", "CreateEntitlementInBundleRequestBody": ".types", "CreateEntitlementReqCommon": ".types", - "CreateEnvironmentResponse": ".accounts", "CreateEventBatchResponse": ".events", "CreateEventRequestBody": ".types", "CreateEventResponse": ".events", @@ -1398,7 +1427,6 @@ "DatastreamCompanyPlan": ".types", "DefaultAioHttpClient": "._default_clients", "DefaultAsyncHttpxClient": "._default_clients", - "DeleteApiKeyResponse": ".accounts", "DeleteBillingCouponResponse": ".billing", "DeleteBillingCustomerResponse": ".billing", "DeleteBillingInvoiceResponse": ".billing", @@ -1417,7 +1445,6 @@ "DeleteCreditSpendPolicyResponse": ".credits", "DeleteEntityKeyDefinitionResponse": ".companies", "DeleteEntityTraitDefinitionResponse": ".companies", - "DeleteEnvironmentResponse": ".accounts", "DeleteFeatureResponse": ".features", "DeleteFlagResponse": ".features", "DeleteOtlpEnvironmentSettingsResponse": ".events", @@ -1448,7 +1475,6 @@ "EntityTraitResponseData": ".types", "EntityTraitValue": ".types", "EntityType": ".types", - "EnvironmentDetailResponseData": ".types", "EnvironmentFeatureUsageTimeSeriesResponseData": ".types", "EnvironmentResponseData": ".types", "EnvironmentTraitUsageTimeSeriesResponseData": ".types", @@ -1564,6 +1590,8 @@ "GetPlanVersionDiffParams": ".plans", "GetPlanVersionDiffResponse": ".plans", "GetPlansInCatalogResponse": ".catalogs", + "GetPublicCatalogByIdResponse": ".catalogs", + "GetPublicCatalogResponse": ".catalogs", "GetPublicPlansResponse": ".componentspublic", "GetScheduledCheckoutResponse": ".scheduledcheckout", "GetSegmentIntegrationStatusResponse": ".events", @@ -1759,6 +1787,7 @@ "OrderedPlansInGroup": ".types", "OtlpEnvironmentSettingsResponseData": ".types", "PaymentGating": ".types", + "PaymentMethodBillingDetailsRequestBody": ".types", "PaymentMethodRequestBody": ".types", "PaymentMethodResponseData": ".types", "PaymentRequiredError": ".errors", @@ -1809,6 +1838,7 @@ "PlanVersionEntitlementChangeResponseData": ".types", "PlanVersionFieldChangeResponseData": ".types", "PlanVersionMigrationPreviewCompanyResponseData": ".types", + "PlanVersionMigrationPreviewNoteResponseData": ".types", "PlanVersionMigrationPreviewResponseData": ".types", "PlanVersionMigrationResponseData": ".types", "PlanVersionMigrationStatus": ".types", @@ -1832,8 +1862,12 @@ "PreviewSubscriptionChangeResponseData": ".types", "PreviewSubscriptionDiscountResponseData": ".types", "PreviewSubscriptionFinanceResponseData": ".types", + "PreviewSubscriptionProrationLineResponseData": ".types", + "PreviewSubscriptionProrationResponseData": ".types", "PreviewSubscriptionUpcomingInvoiceLineItems": ".types", "ProrationBehavior": ".types", + "ProrationLineKind": ".types", + "PublicCatalogResponseData": ".types", "PublicPlansResponseData": ".types", "PublishPlanVersionRequestBody": ".types", "PublishPlanVersionResponse": ".plans", @@ -1933,7 +1967,6 @@ "UninstallIntegrationResponse": ".integrationsapi", "UpcomingInvoiceResponseData": ".types", "UpdateAddOnRequestBody": ".types", - "UpdateApiKeyResponse": ".accounts", "UpdateAutoTopupOverrideRequestBody": ".types", "UpdateBillingCreditResponse": ".credits", "UpdateBillingPlanCreditGrantRequestBody": ".types", @@ -1952,7 +1985,6 @@ "UpdateCustomerSubscriptionTrialEndResponse": ".checkout", "UpdateEntitlementReqCommon": ".types", "UpdateEntityTraitDefinitionResponse": ".companies", - "UpdateEnvironmentResponse": ".accounts", "UpdateFeatureResponse": ".features", "UpdateFlagResponse": ".features", "UpdateFlagRulesResponse": ".features", @@ -2075,7 +2107,6 @@ def __dir__(): "ActorType", "AmendmentProrationLandsOn", "ApiError", - "ApiKeyCreateResponseData", "ApiKeyIntegrationResponseData", "ApiKeyResponseData", "ApiKeyScope", @@ -2109,10 +2140,13 @@ def __dir__(): "BillingCustomerResponseData", "BillingCustomerSubscription", "BillingCustomerWithSubscriptionsResponseData", + "BillingInvoiceAddressResponseData", + "BillingInvoiceBillingDetailsResponseData", "BillingInvoiceDetailResponseData", "BillingInvoiceLineResponseData", "BillingInvoiceResponseData", "BillingInvoiceSettlementResponseData", + "BillingInvoiceTaxIdResponseData", "BillingInvoiceTermsResponseData", "BillingLinkedResourceResponseData", "BillingMeterResponseData", @@ -2155,6 +2189,8 @@ def __dir__(): "CancelSubscriptionResponse", "CaptureRawEvent", "CaptureRawEventBatch", + "CatalogBundleCurrencyPriceResponseData", + "CatalogCapabilitiesResponseData", "CatalogConfigOrderedBundle", "CatalogConfigOrderedBundleResponseData", "CatalogConfigOrderedEntitlement", @@ -2165,9 +2201,19 @@ def __dir__(): "CatalogConfigPlanCreditResponseData", "CatalogConfigurationResponseData", "CatalogCreditBundleIDsResponseData", + "CatalogCreditBundleResponseData", + "CatalogCreditGrantResponseData", + "CatalogCurrencyPricesResponseData", + "CatalogCustomPlanCtaResponseData", "CatalogDerivedFeatureResponseData", "CatalogDerivedFeaturesResponseData", + "CatalogDetailResponseData", + "CatalogEntitlementResponseData", + "CatalogPlanEntitlementResponseData", "CatalogPlanIDsResponseData", + "CatalogPlanResponseData", + "CatalogPriceResponseData", + "CatalogPriceTierResponseData", "CatalogResponseData", "ChangeSubscriptionInternalRequestBody", "ChangeSubscriptionRequestBody", @@ -2183,6 +2229,7 @@ def __dir__(): "CheckFlagsResponse", "CheckFlagsResponseData", "CheckoutBundlePurchaseBehavior", + "CheckoutChargeTiming", "CheckoutDataResponseData", "CheckoutFieldInput", "CheckoutFieldResponseData", @@ -2322,7 +2369,6 @@ def __dir__(): "CountWebhooksParams", "CountWebhooksResponse", "CouponRequestBody", - "CreateApiKeyResponse", "CreateBillingCreditResponse", "CreateBillingPlanCreditGrantRequestBody", "CreateBillingPlanCreditGrantResponse", @@ -2339,7 +2385,6 @@ def __dir__(): "CreateDataExportResponse", "CreateEntitlementInBundleRequestBody", "CreateEntitlementReqCommon", - "CreateEnvironmentResponse", "CreateEventBatchResponse", "CreateEventRequestBody", "CreateEventResponse", @@ -2424,7 +2469,6 @@ def __dir__(): "DatastreamCompanyPlan", "DefaultAioHttpClient", "DefaultAsyncHttpxClient", - "DeleteApiKeyResponse", "DeleteBillingCouponResponse", "DeleteBillingCustomerResponse", "DeleteBillingInvoiceResponse", @@ -2443,7 +2487,6 @@ def __dir__(): "DeleteCreditSpendPolicyResponse", "DeleteEntityKeyDefinitionResponse", "DeleteEntityTraitDefinitionResponse", - "DeleteEnvironmentResponse", "DeleteFeatureResponse", "DeleteFlagResponse", "DeleteOtlpEnvironmentSettingsResponse", @@ -2474,7 +2517,6 @@ def __dir__(): "EntityTraitResponseData", "EntityTraitValue", "EntityType", - "EnvironmentDetailResponseData", "EnvironmentFeatureUsageTimeSeriesResponseData", "EnvironmentResponseData", "EnvironmentTraitUsageTimeSeriesResponseData", @@ -2590,6 +2632,8 @@ def __dir__(): "GetPlanVersionDiffParams", "GetPlanVersionDiffResponse", "GetPlansInCatalogResponse", + "GetPublicCatalogByIdResponse", + "GetPublicCatalogResponse", "GetPublicPlansResponse", "GetScheduledCheckoutResponse", "GetSegmentIntegrationStatusResponse", @@ -2785,6 +2829,7 @@ def __dir__(): "OrderedPlansInGroup", "OtlpEnvironmentSettingsResponseData", "PaymentGating", + "PaymentMethodBillingDetailsRequestBody", "PaymentMethodRequestBody", "PaymentMethodResponseData", "PaymentRequiredError", @@ -2835,6 +2880,7 @@ def __dir__(): "PlanVersionEntitlementChangeResponseData", "PlanVersionFieldChangeResponseData", "PlanVersionMigrationPreviewCompanyResponseData", + "PlanVersionMigrationPreviewNoteResponseData", "PlanVersionMigrationPreviewResponseData", "PlanVersionMigrationResponseData", "PlanVersionMigrationStatus", @@ -2858,8 +2904,12 @@ def __dir__(): "PreviewSubscriptionChangeResponseData", "PreviewSubscriptionDiscountResponseData", "PreviewSubscriptionFinanceResponseData", + "PreviewSubscriptionProrationLineResponseData", + "PreviewSubscriptionProrationResponseData", "PreviewSubscriptionUpcomingInvoiceLineItems", "ProrationBehavior", + "ProrationLineKind", + "PublicCatalogResponseData", "PublicPlansResponseData", "PublishPlanVersionRequestBody", "PublishPlanVersionResponse", @@ -2959,7 +3009,6 @@ def __dir__(): "UninstallIntegrationResponse", "UpcomingInvoiceResponseData", "UpdateAddOnRequestBody", - "UpdateApiKeyResponse", "UpdateAutoTopupOverrideRequestBody", "UpdateBillingCreditResponse", "UpdateBillingPlanCreditGrantRequestBody", @@ -2978,7 +3027,6 @@ def __dir__(): "UpdateCustomerSubscriptionTrialEndResponse", "UpdateEntitlementReqCommon", "UpdateEntityTraitDefinitionResponse", - "UpdateEnvironmentResponse", "UpdateFeatureResponse", "UpdateFlagResponse", "UpdateFlagRulesResponse", diff --git a/src/schematic/accounts/__init__.py b/src/schematic/accounts/__init__.py index 7e1d4050..8f712844 100644 --- a/src/schematic/accounts/__init__.py +++ b/src/schematic/accounts/__init__.py @@ -13,10 +13,6 @@ CountApiKeysResponse, CountAuditLogsParams, CountAuditLogsResponse, - CreateApiKeyResponse, - CreateEnvironmentResponse, - DeleteApiKeyResponse, - DeleteEnvironmentResponse, GetAccountMemberResponse, GetApiKeyResponse, GetAuditLogResponse, @@ -32,8 +28,6 @@ ListEnvironmentsParams, ListEnvironmentsResponse, QuickstartResponse, - UpdateApiKeyResponse, - UpdateEnvironmentResponse, UpdateOnboardingStateResponse, ) _dynamic_imports: typing.Dict[str, str] = { @@ -43,10 +37,6 @@ "CountApiKeysResponse": ".types", "CountAuditLogsParams": ".types", "CountAuditLogsResponse": ".types", - "CreateApiKeyResponse": ".types", - "CreateEnvironmentResponse": ".types", - "DeleteApiKeyResponse": ".types", - "DeleteEnvironmentResponse": ".types", "GetAccountMemberResponse": ".types", "GetApiKeyResponse": ".types", "GetAuditLogResponse": ".types", @@ -62,8 +52,6 @@ "ListEnvironmentsParams": ".types", "ListEnvironmentsResponse": ".types", "QuickstartResponse": ".types", - "UpdateApiKeyResponse": ".types", - "UpdateEnvironmentResponse": ".types", "UpdateOnboardingStateResponse": ".types", } @@ -96,10 +84,6 @@ def __dir__(): "CountApiKeysResponse", "CountAuditLogsParams", "CountAuditLogsResponse", - "CreateApiKeyResponse", - "CreateEnvironmentResponse", - "DeleteApiKeyResponse", - "DeleteEnvironmentResponse", "GetAccountMemberResponse", "GetApiKeyResponse", "GetAuditLogResponse", @@ -115,7 +99,5 @@ def __dir__(): "ListEnvironmentsParams", "ListEnvironmentsResponse", "QuickstartResponse", - "UpdateApiKeyResponse", - "UpdateEnvironmentResponse", "UpdateOnboardingStateResponse", ] diff --git a/src/schematic/accounts/client.py b/src/schematic/accounts/client.py index 047ea3a0..f3b61719 100644 --- a/src/schematic/accounts/client.py +++ b/src/schematic/accounts/client.py @@ -7,17 +7,12 @@ from ..core.request_options import RequestOptions from ..types.account_member_role import AccountMemberRole from ..types.actor_type import ActorType -from ..types.environment_type import EnvironmentType from ..types.onboarding_path import OnboardingPath from ..types.onboarding_track import OnboardingTrack from .raw_client import AsyncRawAccountsClient, RawAccountsClient from .types.count_account_members_response import CountAccountMembersResponse from .types.count_api_keys_response import CountApiKeysResponse from .types.count_audit_logs_response import CountAuditLogsResponse -from .types.create_api_key_response import CreateApiKeyResponse -from .types.create_environment_response import CreateEnvironmentResponse -from .types.delete_api_key_response import DeleteApiKeyResponse -from .types.delete_environment_response import DeleteEnvironmentResponse from .types.get_account_member_response import GetAccountMemberResponse from .types.get_api_key_response import GetApiKeyResponse from .types.get_audit_log_response import GetAuditLogResponse @@ -29,8 +24,6 @@ from .types.list_audit_logs_response import ListAuditLogsResponse from .types.list_environments_response import ListEnvironmentsResponse from .types.quickstart_response import QuickstartResponse -from .types.update_api_key_response import UpdateApiKeyResponse -from .types.update_environment_response import UpdateEnvironmentResponse from .types.update_onboarding_state_response import UpdateOnboardingStateResponse # this is used as the default value for optional parameters @@ -246,58 +239,6 @@ def list_api_keys( ) return _response.data - def create_api_key( - self, - *, - name: str, - description: typing.Optional[str] = OMIT, - environment_id: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - readonly: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> CreateApiKeyResponse: - """ - Parameters - ---------- - name : str - - description : typing.Optional[str] - - environment_id : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - readonly : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreateApiKeyResponse - Created - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.create_api_key( - name="name", - ) - """ - _response = self._raw_client.create_api_key( - name=name, - description=description, - environment_id=environment_id, - rate_limit_percent=rate_limit_percent, - readonly=readonly, - request_options=request_options, - ) - return _response.data - def get_api_key( self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetApiKeyResponse: @@ -329,86 +270,6 @@ def get_api_key( _response = self._raw_client.get_api_key(api_key_id, request_options=request_options) return _response.data - def update_api_key( - self, - api_key_id: str, - *, - description: typing.Optional[str] = OMIT, - name: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdateApiKeyResponse: - """ - Parameters - ---------- - api_key_id : str - api_key_id - - description : typing.Optional[str] - - name : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdateApiKeyResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.update_api_key( - api_key_id="api_key_id", - ) - """ - _response = self._raw_client.update_api_key( - api_key_id, - description=description, - name=name, - rate_limit_percent=rate_limit_percent, - request_options=request_options, - ) - return _response.data - - def delete_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeleteApiKeyResponse: - """ - Parameters - ---------- - api_key_id : str - api_key_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeleteApiKeyResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.delete_api_key( - api_key_id="api_key_id", - ) - """ - _response = self._raw_client.delete_api_key(api_key_id, request_options=request_options) - return _response.data - def count_api_keys( self, *, @@ -686,41 +547,6 @@ def list_environments( ) return _response.data - def create_environment( - self, *, environment_type: EnvironmentType, name: str, request_options: typing.Optional[RequestOptions] = None - ) -> CreateEnvironmentResponse: - """ - Parameters - ---------- - environment_type : EnvironmentType - - name : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreateEnvironmentResponse - Created - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.create_environment( - environment_type="development", - name="name", - ) - """ - _response = self._raw_client.create_environment( - environment_type=environment_type, name=name, request_options=request_options - ) - return _response.data - def get_environment( self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetEnvironmentResponse: @@ -752,86 +578,6 @@ def get_environment( _response = self._raw_client.get_environment(environment_id, request_options=request_options) return _response.data - def update_environment( - self, - environment_id: str, - *, - environment_type: typing.Optional[EnvironmentType] = OMIT, - name: typing.Optional[str] = OMIT, - require_context_signature: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdateEnvironmentResponse: - """ - Parameters - ---------- - environment_id : str - environment_id - - environment_type : typing.Optional[EnvironmentType] - - name : typing.Optional[str] - - require_context_signature : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdateEnvironmentResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.update_environment( - environment_id="environment_id", - ) - """ - _response = self._raw_client.update_environment( - environment_id, - environment_type=environment_type, - name=name, - require_context_signature=require_context_signature, - request_options=request_options, - ) - return _response.data - - def delete_environment( - self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeleteEnvironmentResponse: - """ - Parameters - ---------- - environment_id : str - environment_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeleteEnvironmentResponse - OK - - Examples - -------- - from schematic import Schematic - - client = Schematic( - api_key="YOUR_API_KEY", - ) - client.accounts.delete_environment( - environment_id="environment_id", - ) - """ - _response = self._raw_client.delete_environment(environment_id, request_options=request_options) - return _response.data - def get_onboarding_state( self, *, request_options: typing.Optional[RequestOptions] = None ) -> GetOnboardingStateResponse: @@ -1202,66 +948,6 @@ async def main() -> None: ) return _response.data - async def create_api_key( - self, - *, - name: str, - description: typing.Optional[str] = OMIT, - environment_id: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - readonly: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> CreateApiKeyResponse: - """ - Parameters - ---------- - name : str - - description : typing.Optional[str] - - environment_id : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - readonly : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreateApiKeyResponse - Created - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.create_api_key( - name="name", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.create_api_key( - name=name, - description=description, - environment_id=environment_id, - rate_limit_percent=rate_limit_percent, - readonly=readonly, - request_options=request_options, - ) - return _response.data - async def get_api_key( self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetApiKeyResponse: @@ -1301,102 +987,6 @@ async def main() -> None: _response = await self._raw_client.get_api_key(api_key_id, request_options=request_options) return _response.data - async def update_api_key( - self, - api_key_id: str, - *, - description: typing.Optional[str] = OMIT, - name: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdateApiKeyResponse: - """ - Parameters - ---------- - api_key_id : str - api_key_id - - description : typing.Optional[str] - - name : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdateApiKeyResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.update_api_key( - api_key_id="api_key_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.update_api_key( - api_key_id, - description=description, - name=name, - rate_limit_percent=rate_limit_percent, - request_options=request_options, - ) - return _response.data - - async def delete_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeleteApiKeyResponse: - """ - Parameters - ---------- - api_key_id : str - api_key_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeleteApiKeyResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.delete_api_key( - api_key_id="api_key_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.delete_api_key(api_key_id, request_options=request_options) - return _response.data - async def count_api_keys( self, *, @@ -1712,49 +1302,6 @@ async def main() -> None: ) return _response.data - async def create_environment( - self, *, environment_type: EnvironmentType, name: str, request_options: typing.Optional[RequestOptions] = None - ) -> CreateEnvironmentResponse: - """ - Parameters - ---------- - environment_type : EnvironmentType - - name : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - CreateEnvironmentResponse - Created - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.create_environment( - environment_type="development", - name="name", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.create_environment( - environment_type=environment_type, name=name, request_options=request_options - ) - return _response.data - async def get_environment( self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None ) -> GetEnvironmentResponse: @@ -1794,102 +1341,6 @@ async def main() -> None: _response = await self._raw_client.get_environment(environment_id, request_options=request_options) return _response.data - async def update_environment( - self, - environment_id: str, - *, - environment_type: typing.Optional[EnvironmentType] = OMIT, - name: typing.Optional[str] = OMIT, - require_context_signature: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> UpdateEnvironmentResponse: - """ - Parameters - ---------- - environment_id : str - environment_id - - environment_type : typing.Optional[EnvironmentType] - - name : typing.Optional[str] - - require_context_signature : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UpdateEnvironmentResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.update_environment( - environment_id="environment_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.update_environment( - environment_id, - environment_type=environment_type, - name=name, - require_context_signature=require_context_signature, - request_options=request_options, - ) - return _response.data - - async def delete_environment( - self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> DeleteEnvironmentResponse: - """ - Parameters - ---------- - environment_id : str - environment_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - DeleteEnvironmentResponse - OK - - Examples - -------- - import asyncio - - from schematic import AsyncSchematic - - client = AsyncSchematic( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.accounts.delete_environment( - environment_id="environment_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.delete_environment(environment_id, request_options=request_options) - return _response.data - async def get_onboarding_state( self, *, request_options: typing.Optional[RequestOptions] = None ) -> GetOnboardingStateResponse: diff --git a/src/schematic/accounts/raw_client.py b/src/schematic/accounts/raw_client.py index b068b1b2..aa2db284 100644 --- a/src/schematic/accounts/raw_client.py +++ b/src/schematic/accounts/raw_client.py @@ -20,16 +20,11 @@ from ..types.account_member_role import AccountMemberRole from ..types.actor_type import ActorType from ..types.api_error import ApiError as types_api_error_ApiError -from ..types.environment_type import EnvironmentType from ..types.onboarding_path import OnboardingPath from ..types.onboarding_track import OnboardingTrack from .types.count_account_members_response import CountAccountMembersResponse from .types.count_api_keys_response import CountApiKeysResponse from .types.count_audit_logs_response import CountAuditLogsResponse -from .types.create_api_key_response import CreateApiKeyResponse -from .types.create_environment_response import CreateEnvironmentResponse -from .types.delete_api_key_response import DeleteApiKeyResponse -from .types.delete_environment_response import DeleteEnvironmentResponse from .types.get_account_member_response import GetAccountMemberResponse from .types.get_api_key_response import GetApiKeyResponse from .types.get_audit_log_response import GetAuditLogResponse @@ -41,8 +36,6 @@ from .types.list_audit_logs_response import ListAuditLogsResponse from .types.list_environments_response import ListEnvironmentsResponse from .types.quickstart_response import QuickstartResponse -from .types.update_api_key_response import UpdateApiKeyResponse -from .types.update_environment_response import UpdateEnvironmentResponse from .types.update_onboarding_state_response import UpdateOnboardingStateResponse from pydantic import ValidationError @@ -512,74 +505,38 @@ def list_api_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def create_api_key( - self, - *, - name: str, - description: typing.Optional[str] = OMIT, - environment_id: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - readonly: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CreateApiKeyResponse]: + def get_api_key( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetApiKeyResponse]: """ Parameters ---------- - name : str - - description : typing.Optional[str] - - environment_id : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - readonly : typing.Optional[bool] + api_key_id : str + api_key_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[CreateApiKeyResponse] - Created + HttpResponse[GetApiKeyResponse] + OK """ _response = self._client_wrapper.httpx_client.request( - "api-keys", - method="POST", - json={ - "description": description, - "environment_id": environment_id, - "name": name, - "rate_limit_percent": rate_limit_percent, - "readonly": readonly, - }, - headers={ - "content-type": "application/json", - }, + f"api-keys/{encode_path_param(api_key_id)}", + method="GET", request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateApiKeyResponse, + GetApiKeyResponse, parse_obj_as( - type_=CreateApiKeyResponse, # type: ignore + type_=GetApiKeyResponse, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -637,38 +594,68 @@ def create_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def get_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetApiKeyResponse]: + def count_api_keys( + self, + *, + require_environment: bool, + environment_id: typing.Optional[str] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> HttpResponse[CountApiKeysResponse]: """ Parameters ---------- - api_key_id : str - api_key_id + require_environment : bool + + environment_id : typing.Optional[str] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[GetApiKeyResponse] + HttpResponse[CountApiKeysResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", + "api-keys/count", method="GET", + params={ + "environment_id": environment_id, + "require_environment": require_environment, + "limit": limit, + "offset": offset, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetApiKeyResponse, + CountApiKeysResponse, parse_obj_as( - type_=GetApiKeyResponse, # type: ignore + type_=CountApiKeysResponse, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -726,55 +713,65 @@ def get_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def update_api_key( + def list_audit_logs( self, - api_key_id: str, *, - description: typing.Optional[str] = OMIT, - name: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, + actor_type: typing.Optional[ActorType] = None, + end_time: typing.Optional[dt.datetime] = None, + environment_id: typing.Optional[str] = None, + q: typing.Optional[str] = None, + start_time: typing.Optional[dt.datetime] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpdateApiKeyResponse]: + ) -> HttpResponse[ListAuditLogsResponse]: """ Parameters ---------- - api_key_id : str - api_key_id + actor_type : typing.Optional[ActorType] + + end_time : typing.Optional[dt.datetime] + + environment_id : typing.Optional[str] - description : typing.Optional[str] + q : typing.Optional[str] + + start_time : typing.Optional[dt.datetime] - name : typing.Optional[str] + limit : typing.Optional[int] + Page limit (default 100) - rate_limit_percent : typing.Optional[int] + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[UpdateApiKeyResponse] + HttpResponse[ListAuditLogsResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", - method="PUT", - json={ - "description": description, - "name": name, - "rate_limit_percent": rate_limit_percent, - }, - headers={ - "content-type": "application/json", + "audit-log", + method="GET", + params={ + "actor_type": actor_type, + "end_time": serialize_datetime(end_time) if end_time is not None else None, + "environment_id": environment_id, + "q": q, + "start_time": serialize_datetime(start_time) if start_time is not None else None, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdateApiKeyResponse, + ListAuditLogsResponse, parse_obj_as( - type_=UpdateApiKeyResponse, # type: ignore + type_=ListAuditLogsResponse, # type: ignore object_=_response.json(), ), ) @@ -847,49 +844,38 @@ def update_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def delete_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[DeleteApiKeyResponse]: + def get_audit_log( + self, audit_log_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetAuditLogResponse]: """ Parameters ---------- - api_key_id : str - api_key_id + audit_log_id : str + audit_log_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[DeleteApiKeyResponse] + HttpResponse[GetAuditLogResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", - method="DELETE", + f"audit-log/{encode_path_param(audit_log_id)}", + method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteApiKeyResponse, + GetAuditLogResponse, parse_obj_as( - type_=DeleteApiKeyResponse, # type: ignore + type_=GetAuditLogResponse, # type: ignore object_=_response.json(), ), ) return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -947,22 +933,31 @@ def delete_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def count_api_keys( + def count_audit_logs( self, *, - require_environment: bool, + actor_type: typing.Optional[ActorType] = None, + end_time: typing.Optional[dt.datetime] = None, environment_id: typing.Optional[str] = None, + q: typing.Optional[str] = None, + start_time: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CountApiKeysResponse]: + ) -> HttpResponse[CountAuditLogsResponse]: """ Parameters ---------- - require_environment : bool + actor_type : typing.Optional[ActorType] + + end_time : typing.Optional[dt.datetime] environment_id : typing.Optional[str] + q : typing.Optional[str] + + start_time : typing.Optional[dt.datetime] + limit : typing.Optional[int] Page limit (default 100) @@ -974,15 +969,18 @@ def count_api_keys( Returns ------- - HttpResponse[CountApiKeysResponse] + HttpResponse[CountAuditLogsResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "api-keys/count", + "audit-log/count", method="GET", params={ + "actor_type": actor_type, + "end_time": serialize_datetime(end_time) if end_time is not None else None, "environment_id": environment_id, - "require_environment": require_environment, + "q": q, + "start_time": serialize_datetime(start_time) if start_time is not None else None, "limit": limit, "offset": offset, }, @@ -991,9 +989,9 @@ def count_api_keys( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountApiKeysResponse, + CountAuditLogsResponse, parse_obj_as( - type_=CountApiKeysResponse, # type: ignore + type_=CountAuditLogsResponse, # type: ignore object_=_response.json(), ), ) @@ -1066,30 +1064,18 @@ def count_api_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def list_audit_logs( + def list_environments( self, *, - actor_type: typing.Optional[ActorType] = None, - end_time: typing.Optional[dt.datetime] = None, - environment_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - start_time: typing.Optional[dt.datetime] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[ListAuditLogsResponse]: + ) -> HttpResponse[ListEnvironmentsResponse]: """ Parameters ---------- - actor_type : typing.Optional[ActorType] - - end_time : typing.Optional[dt.datetime] - - environment_id : typing.Optional[str] - - q : typing.Optional[str] - - start_time : typing.Optional[dt.datetime] + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] limit : typing.Optional[int] Page limit (default 100) @@ -1102,18 +1088,14 @@ def list_audit_logs( Returns ------- - HttpResponse[ListAuditLogsResponse] + HttpResponse[ListEnvironmentsResponse] OK """ _response = self._client_wrapper.httpx_client.request( - "audit-log", + "environments", method="GET", params={ - "actor_type": actor_type, - "end_time": serialize_datetime(end_time) if end_time is not None else None, - "environment_id": environment_id, - "q": q, - "start_time": serialize_datetime(start_time) if start_time is not None else None, + "ids": ids, "limit": limit, "offset": offset, }, @@ -1122,9 +1104,9 @@ def list_audit_logs( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListAuditLogsResponse, + ListEnvironmentsResponse, parse_obj_as( - type_=ListAuditLogsResponse, # type: ignore + type_=ListEnvironmentsResponse, # type: ignore object_=_response.json(), ), ) @@ -1197,34 +1179,34 @@ def list_audit_logs( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def get_audit_log( - self, audit_log_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetAuditLogResponse]: + def get_environment( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetEnvironmentResponse]: """ Parameters ---------- - audit_log_id : str - audit_log_id + environment_id : str + environment_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - HttpResponse[GetAuditLogResponse] + HttpResponse[GetEnvironmentResponse] OK """ _response = self._client_wrapper.httpx_client.request( - f"audit-log/{encode_path_param(audit_log_id)}", + f"environments/{encode_path_param(environment_id)}", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetAuditLogResponse, + GetEnvironmentResponse, parse_obj_as( - type_=GetAuditLogResponse, # type: ignore + type_=GetEnvironmentResponse, # type: ignore object_=_response.json(), ), ) @@ -1286,1356 +1268,35 @@ def get_audit_log( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - def count_audit_logs( - self, - *, - actor_type: typing.Optional[ActorType] = None, - end_time: typing.Optional[dt.datetime] = None, - environment_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - start_time: typing.Optional[dt.datetime] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[CountAuditLogsResponse]: + def get_onboarding_state( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetOnboardingStateResponse]: """ Parameters ---------- - actor_type : typing.Optional[ActorType] - - end_time : typing.Optional[dt.datetime] - - environment_id : typing.Optional[str] - - q : typing.Optional[str] - - start_time : typing.Optional[dt.datetime] - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[CountAuditLogsResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "audit-log/count", - method="GET", - params={ - "actor_type": actor_type, - "end_time": serialize_datetime(end_time) if end_time is not None else None, - "environment_id": environment_id, - "q": q, - "start_time": serialize_datetime(start_time) if start_time is not None else None, - "limit": limit, - "offset": offset, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - CountAuditLogsResponse, - parse_obj_as( - type_=CountAuditLogsResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def list_environments( - self, - *, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[ListEnvironmentsResponse]: - """ - Parameters - ---------- - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[ListEnvironmentsResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "environments", - method="GET", - params={ - "ids": ids, - "limit": limit, - "offset": offset, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - ListEnvironmentsResponse, - parse_obj_as( - type_=ListEnvironmentsResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def create_environment( - self, *, environment_type: EnvironmentType, name: str, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[CreateEnvironmentResponse]: - """ - Parameters - ---------- - environment_type : EnvironmentType - - name : str - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[CreateEnvironmentResponse] - Created - """ - _response = self._client_wrapper.httpx_client.request( - "environments", - method="POST", - json={ - "environment_type": environment_type, - "name": name, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - CreateEnvironmentResponse, - parse_obj_as( - type_=CreateEnvironmentResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def get_environment( - self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetEnvironmentResponse]: - """ - Parameters - ---------- - environment_id : str - environment_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[GetEnvironmentResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - f"environments/{encode_path_param(environment_id)}", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - GetEnvironmentResponse, - parse_obj_as( - type_=GetEnvironmentResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def update_environment( - self, - environment_id: str, - *, - environment_type: typing.Optional[EnvironmentType] = OMIT, - name: typing.Optional[str] = OMIT, - require_context_signature: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpdateEnvironmentResponse]: - """ - Parameters - ---------- - environment_id : str - environment_id - - environment_type : typing.Optional[EnvironmentType] - - name : typing.Optional[str] - - require_context_signature : typing.Optional[bool] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[UpdateEnvironmentResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - f"environments/{encode_path_param(environment_id)}", - method="PUT", - json={ - "environment_type": environment_type, - "name": name, - "require_context_signature": require_context_signature, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UpdateEnvironmentResponse, - parse_obj_as( - type_=UpdateEnvironmentResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def delete_environment( - self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[DeleteEnvironmentResponse]: - """ - Parameters - ---------- - environment_id : str - environment_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[DeleteEnvironmentResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - f"environments/{encode_path_param(environment_id)}", - method="DELETE", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - DeleteEnvironmentResponse, - parse_obj_as( - type_=DeleteEnvironmentResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def get_onboarding_state( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetOnboardingStateResponse]: - """ - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[GetOnboardingStateResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "onboarding-state", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - GetOnboardingStateResponse, - parse_obj_as( - type_=GetOnboardingStateResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def update_onboarding_state( - self, - *, - country: typing.Optional[str] = OMIT, - dismissed: typing.Optional[bool] = OMIT, - path: typing.Optional[OnboardingPath] = OMIT, - pricing_page_url: typing.Optional[str] = OMIT, - track: typing.Optional[OnboardingTrack] = OMIT, - website_url: typing.Optional[str] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[UpdateOnboardingStateResponse]: - """ - Parameters - ---------- - country : typing.Optional[str] - - dismissed : typing.Optional[bool] - - path : typing.Optional[OnboardingPath] - - pricing_page_url : typing.Optional[str] - - track : typing.Optional[OnboardingTrack] - - website_url : typing.Optional[str] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[UpdateOnboardingStateResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "onboarding-state", - method="POST", - json={ - "country": country, - "dismissed": dismissed, - "path": path, - "pricing_page_url": pricing_page_url, - "track": track, - "website_url": website_url, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UpdateOnboardingStateResponse, - parse_obj_as( - type_=UpdateOnboardingStateResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def quickstart( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[QuickstartResponse]: - """ - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[QuickstartResponse] - Created - """ - _response = self._client_wrapper.httpx_client.request( - "quickstart", - method="POST", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - QuickstartResponse, - parse_obj_as( - type_=QuickstartResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - def get_who_am_i( - self, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[GetWhoAmIResponse]: - """ - Parameters - ---------- - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[GetWhoAmIResponse] - OK - """ - _response = self._client_wrapper.httpx_client.request( - "whoami", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - GetWhoAmIResponse, - parse_obj_as( - type_=GetWhoAmIResponse, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - -class AsyncRawAccountsClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - async def list_account_members( - self, - *, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, - role: typing.Optional[AccountMemberRole] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListAccountMembersResponse]: - """ - Parameters - ---------- - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - q : typing.Optional[str] - Search filter - - role : typing.Optional[AccountMemberRole] - Filter by member role - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[ListAccountMembersResponse] - OK - """ - _response = await self._client_wrapper.httpx_client.request( - "account-members", - method="GET", - params={ - "ids": ids, - "q": q, - "role": role, - "limit": limit, - "offset": offset, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - ListAccountMembersResponse, - parse_obj_as( - type_=ListAccountMembersResponse, # type: ignore - object_=_response.json(), - ), - ) - return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - async def get_account_member( - self, account_member_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetAccountMemberResponse]: - """ - Parameters - ---------- - account_member_id : str - account_member_id - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[GetAccountMemberResponse] - OK - """ - _response = await self._client_wrapper.httpx_client.request( - f"account-members/{encode_path_param(account_member_id)}", - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - GetAccountMemberResponse, - parse_obj_as( - type_=GetAccountMemberResponse, # type: ignore - object_=_response.json(), - ), - ) - return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 401: - raise UnauthorizedError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 403: - raise ForbiddenError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 404: - raise NotFoundError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - if _response.status_code == 500: - raise InternalServerError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) - _response_json = _response.json() - except JSONDecodeError: - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - except ValidationError as e: - raise ParsingError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e - ) - raise core_api_error_ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response_json - ) - - async def count_account_members( - self, - *, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, - q: typing.Optional[str] = None, - role: typing.Optional[AccountMemberRole] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountAccountMembersResponse]: - """ - Parameters - ---------- - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - - q : typing.Optional[str] - Search filter - - role : typing.Optional[AccountMemberRole] - Filter by member role - - limit : typing.Optional[int] - Page limit (default 100) - - offset : typing.Optional[int] - Page offset (default 0) - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. + request_options : typing.Optional[RequestOptions] + Request-specific configuration. Returns ------- - AsyncHttpResponse[CountAccountMembersResponse] + HttpResponse[GetOnboardingStateResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - "account-members/count", + _response = self._client_wrapper.httpx_client.request( + "onboarding-state", method="GET", - params={ - "ids": ids, - "q": q, - "role": role, - "limit": limit, - "offset": offset, - }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountAccountMembersResponse, + GetOnboardingStateResponse, parse_obj_as( - type_=CountAccountMembersResponse, # type: ignore + type_=GetOnboardingStateResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) + return HttpResponse(response=_response, data=_data) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -2693,57 +1354,67 @@ async def count_account_members( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_api_keys( + def update_onboarding_state( self, *, - require_environment: bool, - environment_id: typing.Optional[str] = None, - limit: typing.Optional[int] = None, - offset: typing.Optional[int] = None, + country: typing.Optional[str] = OMIT, + dismissed: typing.Optional[bool] = OMIT, + path: typing.Optional[OnboardingPath] = OMIT, + pricing_page_url: typing.Optional[str] = OMIT, + track: typing.Optional[OnboardingTrack] = OMIT, + website_url: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListApiKeysResponse]: + ) -> HttpResponse[UpdateOnboardingStateResponse]: """ Parameters ---------- - require_environment : bool + country : typing.Optional[str] - environment_id : typing.Optional[str] + dismissed : typing.Optional[bool] - limit : typing.Optional[int] - Page limit (default 100) + path : typing.Optional[OnboardingPath] - offset : typing.Optional[int] - Page offset (default 0) + pricing_page_url : typing.Optional[str] + + track : typing.Optional[OnboardingTrack] + + website_url : typing.Optional[str] request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[ListApiKeysResponse] + HttpResponse[UpdateOnboardingStateResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - "api-keys", - method="GET", - params={ - "environment_id": environment_id, - "require_environment": require_environment, - "limit": limit, - "offset": offset, + _response = self._client_wrapper.httpx_client.request( + "onboarding-state", + method="POST", + json={ + "country": country, + "dismissed": dismissed, + "path": path, + "pricing_page_url": pricing_page_url, + "track": track, + "website_url": website_url, + }, + headers={ + "content-type": "application/json", }, request_options=request_options, + omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListApiKeysResponse, + UpdateOnboardingStateResponse, parse_obj_as( - type_=ListApiKeysResponse, # type: ignore + type_=UpdateOnboardingStateResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) if _response.status_code == 400: raise BadRequestError( headers=dict(_response.headers), @@ -2812,63 +1483,35 @@ async def list_api_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def create_api_key( - self, - *, - name: str, - description: typing.Optional[str] = OMIT, - environment_id: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, - readonly: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CreateApiKeyResponse]: + def quickstart( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[QuickstartResponse]: """ Parameters ---------- - name : str - - description : typing.Optional[str] - - environment_id : typing.Optional[str] - - rate_limit_percent : typing.Optional[int] - - readonly : typing.Optional[bool] - request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[CreateApiKeyResponse] + HttpResponse[QuickstartResponse] Created """ - _response = await self._client_wrapper.httpx_client.request( - "api-keys", + _response = self._client_wrapper.httpx_client.request( + "quickstart", method="POST", - json={ - "description": description, - "environment_id": environment_id, - "name": name, - "rate_limit_percent": rate_limit_percent, - "readonly": readonly, - }, - headers={ - "content-type": "application/json", - }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateApiKeyResponse, + QuickstartResponse, parse_obj_as( - type_=CreateApiKeyResponse, # type: ignore + type_=QuickstartResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) if _response.status_code == 400: raise BadRequestError( headers=dict(_response.headers), @@ -2937,38 +1580,35 @@ async def create_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetApiKeyResponse]: + def get_who_am_i( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetWhoAmIResponse]: """ Parameters ---------- - api_key_id : str - api_key_id - request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetApiKeyResponse] + HttpResponse[GetWhoAmIResponse] OK """ - _response = await self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", + _response = self._client_wrapper.httpx_client.request( + "whoami", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetApiKeyResponse, + GetWhoAmIResponse, parse_obj_as( - type_=GetApiKeyResponse, # type: ignore + type_=GetWhoAmIResponse, # type: ignore object_=_response.json(), ), ) - return AsyncHttpResponse(response=_response, data=_data) + return HttpResponse(response=_response, data=_data) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -3026,55 +1666,64 @@ async def get_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def update_api_key( + +class AsyncRawAccountsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def list_account_members( self, - api_key_id: str, *, - description: typing.Optional[str] = OMIT, - name: typing.Optional[str] = OMIT, - rate_limit_percent: typing.Optional[int] = OMIT, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + role: typing.Optional[AccountMemberRole] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpdateApiKeyResponse]: + ) -> AsyncHttpResponse[ListAccountMembersResponse]: """ Parameters ---------- - api_key_id : str - api_key_id + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + + q : typing.Optional[str] + Search filter - description : typing.Optional[str] + role : typing.Optional[AccountMemberRole] + Filter by member role - name : typing.Optional[str] + limit : typing.Optional[int] + Page limit (default 100) - rate_limit_percent : typing.Optional[int] + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[UpdateApiKeyResponse] + AsyncHttpResponse[ListAccountMembersResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", - method="PUT", - json={ - "description": description, - "name": name, - "rate_limit_percent": rate_limit_percent, - }, - headers={ - "content-type": "application/json", + "account-members", + method="GET", + params={ + "ids": ids, + "q": q, + "role": role, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdateApiKeyResponse, + ListAccountMembersResponse, parse_obj_as( - type_=UpdateApiKeyResponse, # type: ignore + type_=ListAccountMembersResponse, # type: ignore object_=_response.json(), ), ) @@ -3147,49 +1796,38 @@ async def update_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_api_key( - self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[DeleteApiKeyResponse]: + async def get_account_member( + self, account_member_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetAccountMemberResponse]: """ Parameters ---------- - api_key_id : str - api_key_id + account_member_id : str + account_member_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[DeleteApiKeyResponse] + AsyncHttpResponse[GetAccountMemberResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"api-keys/{encode_path_param(api_key_id)}", - method="DELETE", + f"account-members/{encode_path_param(account_member_id)}", + method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteApiKeyResponse, + GetAccountMemberResponse, parse_obj_as( - type_=DeleteApiKeyResponse, # type: ignore + type_=GetAccountMemberResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -3247,21 +1885,26 @@ async def delete_api_key( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def count_api_keys( + async def count_account_members( self, *, - require_environment: bool, - environment_id: typing.Optional[str] = None, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + q: typing.Optional[str] = None, + role: typing.Optional[AccountMemberRole] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountApiKeysResponse]: + ) -> AsyncHttpResponse[CountAccountMembersResponse]: """ Parameters ---------- - require_environment : bool + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - environment_id : typing.Optional[str] + q : typing.Optional[str] + Search filter + + role : typing.Optional[AccountMemberRole] + Filter by member role limit : typing.Optional[int] Page limit (default 100) @@ -3274,15 +1917,16 @@ async def count_api_keys( Returns ------- - AsyncHttpResponse[CountApiKeysResponse] + AsyncHttpResponse[CountAccountMembersResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "api-keys/count", + "account-members/count", method="GET", params={ - "environment_id": environment_id, - "require_environment": require_environment, + "ids": ids, + "q": q, + "role": role, "limit": limit, "offset": offset, }, @@ -3291,9 +1935,9 @@ async def count_api_keys( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountApiKeysResponse, + CountAccountMembersResponse, parse_obj_as( - type_=CountApiKeysResponse, # type: ignore + type_=CountAccountMembersResponse, # type: ignore object_=_response.json(), ), ) @@ -3366,31 +2010,22 @@ async def count_api_keys( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_audit_logs( + async def list_api_keys( self, *, - actor_type: typing.Optional[ActorType] = None, - end_time: typing.Optional[dt.datetime] = None, + require_environment: bool, environment_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - start_time: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListAuditLogsResponse]: + ) -> AsyncHttpResponse[ListApiKeysResponse]: """ Parameters ---------- - actor_type : typing.Optional[ActorType] - - end_time : typing.Optional[dt.datetime] + require_environment : bool environment_id : typing.Optional[str] - q : typing.Optional[str] - - start_time : typing.Optional[dt.datetime] - limit : typing.Optional[int] Page limit (default 100) @@ -3402,18 +2037,15 @@ async def list_audit_logs( Returns ------- - AsyncHttpResponse[ListAuditLogsResponse] + AsyncHttpResponse[ListApiKeysResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "audit-log", + "api-keys", method="GET", params={ - "actor_type": actor_type, - "end_time": serialize_datetime(end_time) if end_time is not None else None, "environment_id": environment_id, - "q": q, - "start_time": serialize_datetime(start_time) if start_time is not None else None, + "require_environment": require_environment, "limit": limit, "offset": offset, }, @@ -3422,9 +2054,9 @@ async def list_audit_logs( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListAuditLogsResponse, + ListApiKeysResponse, parse_obj_as( - type_=ListAuditLogsResponse, # type: ignore + type_=ListApiKeysResponse, # type: ignore object_=_response.json(), ), ) @@ -3497,34 +2129,34 @@ async def list_audit_logs( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_audit_log( - self, audit_log_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetAuditLogResponse]: + async def get_api_key( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetApiKeyResponse]: """ Parameters ---------- - audit_log_id : str - audit_log_id + api_key_id : str + api_key_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetAuditLogResponse] + AsyncHttpResponse[GetApiKeyResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"audit-log/{encode_path_param(audit_log_id)}", + f"api-keys/{encode_path_param(api_key_id)}", method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetAuditLogResponse, + GetApiKeyResponse, parse_obj_as( - type_=GetAuditLogResponse, # type: ignore + type_=GetApiKeyResponse, # type: ignore object_=_response.json(), ), ) @@ -3586,31 +2218,22 @@ async def get_audit_log( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def count_audit_logs( + async def count_api_keys( self, *, - actor_type: typing.Optional[ActorType] = None, - end_time: typing.Optional[dt.datetime] = None, + require_environment: bool, environment_id: typing.Optional[str] = None, - q: typing.Optional[str] = None, - start_time: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[CountAuditLogsResponse]: + ) -> AsyncHttpResponse[CountApiKeysResponse]: """ Parameters ---------- - actor_type : typing.Optional[ActorType] - - end_time : typing.Optional[dt.datetime] + require_environment : bool environment_id : typing.Optional[str] - q : typing.Optional[str] - - start_time : typing.Optional[dt.datetime] - limit : typing.Optional[int] Page limit (default 100) @@ -3622,18 +2245,15 @@ async def count_audit_logs( Returns ------- - AsyncHttpResponse[CountAuditLogsResponse] + AsyncHttpResponse[CountApiKeysResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "audit-log/count", + "api-keys/count", method="GET", params={ - "actor_type": actor_type, - "end_time": serialize_datetime(end_time) if end_time is not None else None, "environment_id": environment_id, - "q": q, - "start_time": serialize_datetime(start_time) if start_time is not None else None, + "require_environment": require_environment, "limit": limit, "offset": offset, }, @@ -3642,9 +2262,9 @@ async def count_audit_logs( try: if 200 <= _response.status_code < 300: _data = typing.cast( - CountAuditLogsResponse, + CountApiKeysResponse, parse_obj_as( - type_=CountAuditLogsResponse, # type: ignore + type_=CountApiKeysResponse, # type: ignore object_=_response.json(), ), ) @@ -3717,18 +2337,30 @@ async def count_audit_logs( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def list_environments( + async def list_audit_logs( self, *, - ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + actor_type: typing.Optional[ActorType] = None, + end_time: typing.Optional[dt.datetime] = None, + environment_id: typing.Optional[str] = None, + q: typing.Optional[str] = None, + start_time: typing.Optional[dt.datetime] = None, limit: typing.Optional[int] = None, offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[ListEnvironmentsResponse]: + ) -> AsyncHttpResponse[ListAuditLogsResponse]: """ Parameters ---------- - ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] + actor_type : typing.Optional[ActorType] + + end_time : typing.Optional[dt.datetime] + + environment_id : typing.Optional[str] + + q : typing.Optional[str] + + start_time : typing.Optional[dt.datetime] limit : typing.Optional[int] Page limit (default 100) @@ -3741,14 +2373,18 @@ async def list_environments( Returns ------- - AsyncHttpResponse[ListEnvironmentsResponse] + AsyncHttpResponse[ListAuditLogsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - "environments", + "audit-log", method="GET", params={ - "ids": ids, + "actor_type": actor_type, + "end_time": serialize_datetime(end_time) if end_time is not None else None, + "environment_id": environment_id, + "q": q, + "start_time": serialize_datetime(start_time) if start_time is not None else None, "limit": limit, "offset": offset, }, @@ -3757,9 +2393,9 @@ async def list_environments( try: if 200 <= _response.status_code < 300: _data = typing.cast( - ListEnvironmentsResponse, + ListAuditLogsResponse, parse_obj_as( - type_=ListEnvironmentsResponse, # type: ignore + type_=ListAuditLogsResponse, # type: ignore object_=_response.json(), ), ) @@ -3832,58 +2468,38 @@ async def list_environments( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def create_environment( - self, *, environment_type: EnvironmentType, name: str, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[CreateEnvironmentResponse]: + async def get_audit_log( + self, audit_log_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetAuditLogResponse]: """ Parameters ---------- - environment_type : EnvironmentType - - name : str + audit_log_id : str + audit_log_id request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[CreateEnvironmentResponse] - Created + AsyncHttpResponse[GetAuditLogResponse] + OK """ _response = await self._client_wrapper.httpx_client.request( - "environments", - method="POST", - json={ - "environment_type": environment_type, - "name": name, - }, - headers={ - "content-type": "application/json", - }, + f"audit-log/{encode_path_param(audit_log_id)}", + method="GET", request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - CreateEnvironmentResponse, + GetAuditLogResponse, parse_obj_as( - type_=CreateEnvironmentResponse, # type: ignore + type_=GetAuditLogResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -3941,38 +2557,80 @@ async def create_environment( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def get_environment( - self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[GetEnvironmentResponse]: + async def count_audit_logs( + self, + *, + actor_type: typing.Optional[ActorType] = None, + end_time: typing.Optional[dt.datetime] = None, + environment_id: typing.Optional[str] = None, + q: typing.Optional[str] = None, + start_time: typing.Optional[dt.datetime] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> AsyncHttpResponse[CountAuditLogsResponse]: """ Parameters ---------- - environment_id : str - environment_id + actor_type : typing.Optional[ActorType] + + end_time : typing.Optional[dt.datetime] + + environment_id : typing.Optional[str] + + q : typing.Optional[str] + + start_time : typing.Optional[dt.datetime] + + limit : typing.Optional[int] + Page limit (default 100) + + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[GetEnvironmentResponse] + AsyncHttpResponse[CountAuditLogsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"environments/{encode_path_param(environment_id)}", + "audit-log/count", method="GET", + params={ + "actor_type": actor_type, + "end_time": serialize_datetime(end_time) if end_time is not None else None, + "environment_id": environment_id, + "q": q, + "start_time": serialize_datetime(start_time) if start_time is not None else None, + "limit": limit, + "offset": offset, + }, request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - GetEnvironmentResponse, + CountAuditLogsResponse, parse_obj_as( - type_=GetEnvironmentResponse, # type: ignore + type_=CountAuditLogsResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 400: + raise BadRequestError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), @@ -4030,55 +2688,49 @@ async def get_environment( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def update_environment( + async def list_environments( self, - environment_id: str, *, - environment_type: typing.Optional[EnvironmentType] = OMIT, - name: typing.Optional[str] = OMIT, - require_context_signature: typing.Optional[bool] = OMIT, + ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[UpdateEnvironmentResponse]: + ) -> AsyncHttpResponse[ListEnvironmentsResponse]: """ Parameters ---------- - environment_id : str - environment_id - - environment_type : typing.Optional[EnvironmentType] + ids : typing.Optional[typing.Union[str, typing.Sequence[str]]] - name : typing.Optional[str] + limit : typing.Optional[int] + Page limit (default 100) - require_context_signature : typing.Optional[bool] + offset : typing.Optional[int] + Page offset (default 0) request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- - AsyncHttpResponse[UpdateEnvironmentResponse] + AsyncHttpResponse[ListEnvironmentsResponse] OK """ _response = await self._client_wrapper.httpx_client.request( - f"environments/{encode_path_param(environment_id)}", - method="PUT", - json={ - "environment_type": environment_type, - "name": name, - "require_context_signature": require_context_signature, - }, - headers={ - "content-type": "application/json", + "environments", + method="GET", + params={ + "ids": ids, + "limit": limit, + "offset": offset, }, request_options=request_options, - omit=OMIT, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - UpdateEnvironmentResponse, + ListEnvironmentsResponse, parse_obj_as( - type_=UpdateEnvironmentResponse, # type: ignore + type_=ListEnvironmentsResponse, # type: ignore object_=_response.json(), ), ) @@ -4151,9 +2803,9 @@ async def update_environment( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) - async def delete_environment( + async def get_environment( self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[DeleteEnvironmentResponse]: + ) -> AsyncHttpResponse[GetEnvironmentResponse]: """ Parameters ---------- @@ -4165,35 +2817,24 @@ async def delete_environment( Returns ------- - AsyncHttpResponse[DeleteEnvironmentResponse] + AsyncHttpResponse[GetEnvironmentResponse] OK """ _response = await self._client_wrapper.httpx_client.request( f"environments/{encode_path_param(environment_id)}", - method="DELETE", + method="GET", request_options=request_options, ) try: if 200 <= _response.status_code < 300: _data = typing.cast( - DeleteEnvironmentResponse, + GetEnvironmentResponse, parse_obj_as( - type_=DeleteEnvironmentResponse, # type: ignore + type_=GetEnvironmentResponse, # type: ignore object_=_response.json(), ), ) return AsyncHttpResponse(response=_response, data=_data) - if _response.status_code == 400: - raise BadRequestError( - headers=dict(_response.headers), - body=typing.cast( - types_api_error_ApiError, - parse_obj_as( - type_=types_api_error_ApiError, # type: ignore - object_=_response.json(), - ), - ), - ) if _response.status_code == 401: raise UnauthorizedError( headers=dict(_response.headers), diff --git a/src/schematic/accounts/types/__init__.py b/src/schematic/accounts/types/__init__.py index 9216ff8c..f012770f 100644 --- a/src/schematic/accounts/types/__init__.py +++ b/src/schematic/accounts/types/__init__.py @@ -12,10 +12,6 @@ from .count_api_keys_response import CountApiKeysResponse from .count_audit_logs_params import CountAuditLogsParams from .count_audit_logs_response import CountAuditLogsResponse - from .create_api_key_response import CreateApiKeyResponse - from .create_environment_response import CreateEnvironmentResponse - from .delete_api_key_response import DeleteApiKeyResponse - from .delete_environment_response import DeleteEnvironmentResponse from .get_account_member_response import GetAccountMemberResponse from .get_api_key_response import GetApiKeyResponse from .get_audit_log_response import GetAuditLogResponse @@ -31,8 +27,6 @@ from .list_environments_params import ListEnvironmentsParams from .list_environments_response import ListEnvironmentsResponse from .quickstart_response import QuickstartResponse - from .update_api_key_response import UpdateApiKeyResponse - from .update_environment_response import UpdateEnvironmentResponse from .update_onboarding_state_response import UpdateOnboardingStateResponse _dynamic_imports: typing.Dict[str, str] = { "CountAccountMembersParams": ".count_account_members_params", @@ -41,10 +35,6 @@ "CountApiKeysResponse": ".count_api_keys_response", "CountAuditLogsParams": ".count_audit_logs_params", "CountAuditLogsResponse": ".count_audit_logs_response", - "CreateApiKeyResponse": ".create_api_key_response", - "CreateEnvironmentResponse": ".create_environment_response", - "DeleteApiKeyResponse": ".delete_api_key_response", - "DeleteEnvironmentResponse": ".delete_environment_response", "GetAccountMemberResponse": ".get_account_member_response", "GetApiKeyResponse": ".get_api_key_response", "GetAuditLogResponse": ".get_audit_log_response", @@ -60,8 +50,6 @@ "ListEnvironmentsParams": ".list_environments_params", "ListEnvironmentsResponse": ".list_environments_response", "QuickstartResponse": ".quickstart_response", - "UpdateApiKeyResponse": ".update_api_key_response", - "UpdateEnvironmentResponse": ".update_environment_response", "UpdateOnboardingStateResponse": ".update_onboarding_state_response", } @@ -94,10 +82,6 @@ def __dir__(): "CountApiKeysResponse", "CountAuditLogsParams", "CountAuditLogsResponse", - "CreateApiKeyResponse", - "CreateEnvironmentResponse", - "DeleteApiKeyResponse", - "DeleteEnvironmentResponse", "GetAccountMemberResponse", "GetApiKeyResponse", "GetAuditLogResponse", @@ -113,7 +97,5 @@ def __dir__(): "ListEnvironmentsParams", "ListEnvironmentsResponse", "QuickstartResponse", - "UpdateApiKeyResponse", - "UpdateEnvironmentResponse", "UpdateOnboardingStateResponse", ] diff --git a/src/schematic/accounts/types/update_environment_response.py b/src/schematic/accounts/types/update_environment_response.py deleted file mode 100644 index e149576f..00000000 --- a/src/schematic/accounts/types/update_environment_response.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.environment_response_data import EnvironmentResponseData - - -class UpdateEnvironmentResponse(UniversalBaseModel): - data: EnvironmentResponseData - params: typing.Dict[str, typing.Any] = pydantic.Field() - """ - Input parameters - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/schematic/base_client.py b/src/schematic/base_client.py index cead9cea..4a38261c 100644 --- a/src/schematic/base_client.py +++ b/src/schematic/base_client.py @@ -155,6 +155,168 @@ def with_raw_response(self) -> RawBaseSchematic: """ return self._raw_client + def post_api_keys(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.post_api_keys() + """ + _response = self._raw_client.post_api_keys(request_options=request_options) + return _response.data + + def put_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.put_api_keys_api_key_id( + api_key_id="api_key_id", + ) + """ + _response = self._raw_client.put_api_keys_api_key_id(api_key_id, request_options=request_options) + return _response.data + + def delete_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.delete_api_keys_api_key_id( + api_key_id="api_key_id", + ) + """ + _response = self._raw_client.delete_api_keys_api_key_id(api_key_id, request_options=request_options) + return _response.data + + def post_environments(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.post_environments() + """ + _response = self._raw_client.post_environments(request_options=request_options) + return _response.data + + def put_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.put_environments_environment_id( + environment_id="environment_id", + ) + """ + _response = self._raw_client.put_environments_environment_id(environment_id, request_options=request_options) + return _response.data + + def delete_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.delete_environments_environment_id( + environment_id="environment_id", + ) + """ + _response = self._raw_client.delete_environments_environment_id(environment_id, request_options=request_options) + return _response.data + def get_credit_ledger(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: """ Parameters @@ -490,6 +652,220 @@ def with_raw_response(self) -> AsyncRawBaseSchematic: """ return self._raw_client + async def post_api_keys(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.post_api_keys() + + + asyncio.run(main()) + """ + _response = await self._raw_client.post_api_keys(request_options=request_options) + return _response.data + + async def put_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.put_api_keys_api_key_id( + api_key_id="api_key_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.put_api_keys_api_key_id(api_key_id, request_options=request_options) + return _response.data + + async def delete_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.delete_api_keys_api_key_id( + api_key_id="api_key_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.delete_api_keys_api_key_id(api_key_id, request_options=request_options) + return _response.data + + async def post_environments(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.post_environments() + + + asyncio.run(main()) + """ + _response = await self._raw_client.post_environments(request_options=request_options) + return _response.data + + async def put_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.put_environments_environment_id( + environment_id="environment_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.put_environments_environment_id( + environment_id, request_options=request_options + ) + return _response.data + + async def delete_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> None: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + None + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.delete_environments_environment_id( + environment_id="environment_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.delete_environments_environment_id( + environment_id, request_options=request_options + ) + return _response.data + async def get_credit_ledger(self, *, request_options: typing.Optional[RequestOptions] = None) -> None: """ Parameters diff --git a/src/schematic/billing/client.py b/src/schematic/billing/client.py index e10bfc90..2e01b1a6 100644 --- a/src/schematic/billing/client.py +++ b/src/schematic/billing/client.py @@ -17,6 +17,7 @@ from ..types.currency import Currency from ..types.invoice_document_state import InvoiceDocumentState from ..types.invoice_status import InvoiceStatus +from ..types.payment_method_billing_details_request_body import PaymentMethodBillingDetailsRequestBody from ..types.proration_behavior import ProrationBehavior from .raw_client import AsyncRawBillingClient, RawBillingClient from .types.count_billing_invoices_response import CountBillingInvoicesResponse @@ -808,6 +809,7 @@ def upsert_payment_method( card_exp_month: typing.Optional[int] = OMIT, card_exp_year: typing.Optional[int] = OMIT, card_last_4: typing.Optional[str] = OMIT, + customer_billing_details: typing.Optional[PaymentMethodBillingDetailsRequestBody] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpsertPaymentMethodResponse: """ @@ -837,6 +839,8 @@ def upsert_payment_method( card_last_4 : typing.Optional[str] + customer_billing_details : typing.Optional[PaymentMethodBillingDetailsRequestBody] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -871,6 +875,7 @@ def upsert_payment_method( card_exp_month=card_exp_month, card_exp_year=card_exp_year, card_last_4=card_last_4, + customer_billing_details=customer_billing_details, request_options=request_options, ) return _response.data @@ -3195,6 +3200,7 @@ async def upsert_payment_method( card_exp_month: typing.Optional[int] = OMIT, card_exp_year: typing.Optional[int] = OMIT, card_last_4: typing.Optional[str] = OMIT, + customer_billing_details: typing.Optional[PaymentMethodBillingDetailsRequestBody] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> UpsertPaymentMethodResponse: """ @@ -3224,6 +3230,8 @@ async def upsert_payment_method( card_last_4 : typing.Optional[str] + customer_billing_details : typing.Optional[PaymentMethodBillingDetailsRequestBody] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -3266,6 +3274,7 @@ async def main() -> None: card_exp_month=card_exp_month, card_exp_year=card_exp_year, card_last_4=card_last_4, + customer_billing_details=customer_billing_details, request_options=request_options, ) return _response.data diff --git a/src/schematic/billing/raw_client.py b/src/schematic/billing/raw_client.py index 1b8b86ba..35a4e90e 100644 --- a/src/schematic/billing/raw_client.py +++ b/src/schematic/billing/raw_client.py @@ -31,6 +31,7 @@ from ..types.currency import Currency from ..types.invoice_document_state import InvoiceDocumentState from ..types.invoice_status import InvoiceStatus +from ..types.payment_method_billing_details_request_body import PaymentMethodBillingDetailsRequestBody from ..types.proration_behavior import ProrationBehavior from .types.count_billing_invoices_response import CountBillingInvoicesResponse from .types.count_billing_products_response import CountBillingProductsResponse @@ -1690,6 +1691,7 @@ def upsert_payment_method( card_exp_month: typing.Optional[int] = OMIT, card_exp_year: typing.Optional[int] = OMIT, card_last_4: typing.Optional[str] = OMIT, + customer_billing_details: typing.Optional[PaymentMethodBillingDetailsRequestBody] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> HttpResponse[UpsertPaymentMethodResponse]: """ @@ -1719,6 +1721,8 @@ def upsert_payment_method( card_last_4 : typing.Optional[str] + customer_billing_details : typing.Optional[PaymentMethodBillingDetailsRequestBody] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1740,6 +1744,11 @@ def upsert_payment_method( "card_exp_month": card_exp_month, "card_exp_year": card_exp_year, "card_last4": card_last_4, + "customer_billing_details": convert_and_respect_annotation_metadata( + object_=customer_billing_details, + annotation=PaymentMethodBillingDetailsRequestBody, + direction="write", + ), "customer_external_id": customer_external_id, "external_id": external_id, "payment_method_type": payment_method_type, @@ -6361,6 +6370,7 @@ async def upsert_payment_method( card_exp_month: typing.Optional[int] = OMIT, card_exp_year: typing.Optional[int] = OMIT, card_last_4: typing.Optional[str] = OMIT, + customer_billing_details: typing.Optional[PaymentMethodBillingDetailsRequestBody] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> AsyncHttpResponse[UpsertPaymentMethodResponse]: """ @@ -6390,6 +6400,8 @@ async def upsert_payment_method( card_last_4 : typing.Optional[str] + customer_billing_details : typing.Optional[PaymentMethodBillingDetailsRequestBody] + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -6411,6 +6423,11 @@ async def upsert_payment_method( "card_exp_month": card_exp_month, "card_exp_year": card_exp_year, "card_last4": card_last_4, + "customer_billing_details": convert_and_respect_annotation_metadata( + object_=customer_billing_details, + annotation=PaymentMethodBillingDetailsRequestBody, + direction="write", + ), "customer_external_id": customer_external_id, "external_id": external_id, "payment_method_type": payment_method_type, diff --git a/src/schematic/catalogs/__init__.py b/src/schematic/catalogs/__init__.py index 3700b691..591ccdf9 100644 --- a/src/schematic/catalogs/__init__.py +++ b/src/schematic/catalogs/__init__.py @@ -14,6 +14,8 @@ GetCreditBundlesInCatalogResponse, GetDerivedFeaturesResponse, GetPlansInCatalogResponse, + GetPublicCatalogByIdResponse, + GetPublicCatalogResponse, ListCatalogsParams, ListCatalogsResponse, UpdateCatalogResponse, @@ -27,6 +29,8 @@ "GetCreditBundlesInCatalogResponse": ".types", "GetDerivedFeaturesResponse": ".types", "GetPlansInCatalogResponse": ".types", + "GetPublicCatalogByIdResponse": ".types", + "GetPublicCatalogResponse": ".types", "ListCatalogsParams": ".types", "ListCatalogsResponse": ".types", "UpdateCatalogResponse": ".types", @@ -63,6 +67,8 @@ def __dir__(): "GetCreditBundlesInCatalogResponse", "GetDerivedFeaturesResponse", "GetPlansInCatalogResponse", + "GetPublicCatalogByIdResponse", + "GetPublicCatalogResponse", "ListCatalogsParams", "ListCatalogsResponse", "UpdateCatalogResponse", diff --git a/src/schematic/catalogs/client.py b/src/schematic/catalogs/client.py index fc6e3579..baa05b04 100644 --- a/src/schematic/catalogs/client.py +++ b/src/schematic/catalogs/client.py @@ -14,6 +14,8 @@ from .types.get_credit_bundles_in_catalog_response import GetCreditBundlesInCatalogResponse from .types.get_derived_features_response import GetDerivedFeaturesResponse from .types.get_plans_in_catalog_response import GetPlansInCatalogResponse +from .types.get_public_catalog_by_id_response import GetPublicCatalogByIdResponse +from .types.get_public_catalog_response import GetPublicCatalogResponse from .types.list_catalogs_response import ListCatalogsResponse from .types.update_catalog_response import UpdateCatalogResponse from .types.update_configuration_response import UpdateConfigurationResponse @@ -563,6 +565,63 @@ def remove_plan( _response = self._raw_client.remove_plan(catalog_id, plan_id, request_options=request_options) return _response.data + def get_public_catalog( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetPublicCatalogResponse: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetPublicCatalogResponse + OK + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.catalogs.get_public_catalog() + """ + _response = self._raw_client.get_public_catalog(request_options=request_options) + return _response.data + + def get_public_catalog_by_id( + self, catalog_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetPublicCatalogByIdResponse: + """ + Parameters + ---------- + catalog_id : str + catalog_id + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetPublicCatalogByIdResponse + OK + + Examples + -------- + from schematic import Schematic + + client = Schematic( + api_key="YOUR_API_KEY", + ) + client.catalogs.get_public_catalog_by_id( + catalog_id="catalog_id", + ) + """ + _response = self._raw_client.get_public_catalog_by_id(catalog_id, request_options=request_options) + return _response.data + class AsyncCatalogsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -1222,3 +1281,76 @@ async def main() -> None: """ _response = await self._raw_client.remove_plan(catalog_id, plan_id, request_options=request_options) return _response.data + + async def get_public_catalog( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetPublicCatalogResponse: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetPublicCatalogResponse + OK + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.catalogs.get_public_catalog() + + + asyncio.run(main()) + """ + _response = await self._raw_client.get_public_catalog(request_options=request_options) + return _response.data + + async def get_public_catalog_by_id( + self, catalog_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> GetPublicCatalogByIdResponse: + """ + Parameters + ---------- + catalog_id : str + catalog_id + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + GetPublicCatalogByIdResponse + OK + + Examples + -------- + import asyncio + + from schematic import AsyncSchematic + + client = AsyncSchematic( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.catalogs.get_public_catalog_by_id( + catalog_id="catalog_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.get_public_catalog_by_id(catalog_id, request_options=request_options) + return _response.data diff --git a/src/schematic/catalogs/raw_client.py b/src/schematic/catalogs/raw_client.py index f011a554..d1e4139c 100644 --- a/src/schematic/catalogs/raw_client.py +++ b/src/schematic/catalogs/raw_client.py @@ -26,6 +26,8 @@ from .types.get_credit_bundles_in_catalog_response import GetCreditBundlesInCatalogResponse from .types.get_derived_features_response import GetDerivedFeaturesResponse from .types.get_plans_in_catalog_response import GetPlansInCatalogResponse +from .types.get_public_catalog_by_id_response import GetPublicCatalogByIdResponse +from .types.get_public_catalog_response import GetPublicCatalogResponse from .types.list_catalogs_response import ListCatalogsResponse from .types.update_catalog_response import UpdateCatalogResponse from .types.update_configuration_response import UpdateConfigurationResponse @@ -1469,6 +1471,181 @@ def remove_plan( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) + def get_public_catalog( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetPublicCatalogResponse]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[GetPublicCatalogResponse] + OK + """ + _response = self._client_wrapper.httpx_client.request( + "public/catalog", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetPublicCatalogResponse, + parse_obj_as( + type_=GetPublicCatalogResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + + def get_public_catalog_by_id( + self, catalog_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[GetPublicCatalogByIdResponse]: + """ + Parameters + ---------- + catalog_id : str + catalog_id + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[GetPublicCatalogByIdResponse] + OK + """ + _response = self._client_wrapper.httpx_client.request( + f"public/catalogs/{encode_path_param(catalog_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetPublicCatalogByIdResponse, + parse_obj_as( + type_=GetPublicCatalogByIdResponse, # type: ignore + object_=_response.json(), + ), + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + class AsyncRawCatalogsClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -2903,3 +3080,178 @@ async def remove_plan( raise core_api_error_ApiError( status_code=_response.status_code, headers=dict(_response.headers), body=_response_json ) + + async def get_public_catalog( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetPublicCatalogResponse]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetPublicCatalogResponse] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + "public/catalog", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetPublicCatalogResponse, + parse_obj_as( + type_=GetPublicCatalogResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) + + async def get_public_catalog_by_id( + self, catalog_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[GetPublicCatalogByIdResponse]: + """ + Parameters + ---------- + catalog_id : str + catalog_id + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[GetPublicCatalogByIdResponse] + OK + """ + _response = await self._client_wrapper.httpx_client.request( + f"public/catalogs/{encode_path_param(catalog_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + GetPublicCatalogByIdResponse, + parse_obj_as( + type_=GetPublicCatalogByIdResponse, # type: ignore + object_=_response.json(), + ), + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 401: + raise UnauthorizedError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 403: + raise ForbiddenError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 404: + raise NotFoundError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + if _response.status_code == 500: + raise InternalServerError( + headers=dict(_response.headers), + body=typing.cast( + types_api_error_ApiError, + parse_obj_as( + type_=types_api_error_ApiError, # type: ignore + object_=_response.json(), + ), + ), + ) + _response_json = _response.json() + except JSONDecodeError: + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.text + ) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise core_api_error_ApiError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response_json + ) diff --git a/src/schematic/catalogs/types/__init__.py b/src/schematic/catalogs/types/__init__.py index b3134c8f..56aa7838 100644 --- a/src/schematic/catalogs/types/__init__.py +++ b/src/schematic/catalogs/types/__init__.py @@ -13,6 +13,8 @@ from .get_credit_bundles_in_catalog_response import GetCreditBundlesInCatalogResponse from .get_derived_features_response import GetDerivedFeaturesResponse from .get_plans_in_catalog_response import GetPlansInCatalogResponse + from .get_public_catalog_by_id_response import GetPublicCatalogByIdResponse + from .get_public_catalog_response import GetPublicCatalogResponse from .list_catalogs_params import ListCatalogsParams from .list_catalogs_response import ListCatalogsResponse from .update_catalog_response import UpdateCatalogResponse @@ -25,6 +27,8 @@ "GetCreditBundlesInCatalogResponse": ".get_credit_bundles_in_catalog_response", "GetDerivedFeaturesResponse": ".get_derived_features_response", "GetPlansInCatalogResponse": ".get_plans_in_catalog_response", + "GetPublicCatalogByIdResponse": ".get_public_catalog_by_id_response", + "GetPublicCatalogResponse": ".get_public_catalog_response", "ListCatalogsParams": ".list_catalogs_params", "ListCatalogsResponse": ".list_catalogs_response", "UpdateCatalogResponse": ".update_catalog_response", @@ -61,6 +65,8 @@ def __dir__(): "GetCreditBundlesInCatalogResponse", "GetDerivedFeaturesResponse", "GetPlansInCatalogResponse", + "GetPublicCatalogByIdResponse", + "GetPublicCatalogResponse", "ListCatalogsParams", "ListCatalogsResponse", "UpdateCatalogResponse", diff --git a/src/schematic/accounts/types/update_api_key_response.py b/src/schematic/catalogs/types/get_public_catalog_by_id_response.py similarity index 77% rename from src/schematic/accounts/types/update_api_key_response.py rename to src/schematic/catalogs/types/get_public_catalog_by_id_response.py index 9696cdc0..964e75e2 100644 --- a/src/schematic/accounts/types/update_api_key_response.py +++ b/src/schematic/catalogs/types/get_public_catalog_by_id_response.py @@ -4,11 +4,11 @@ import pydantic from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.api_key_response_data import ApiKeyResponseData +from ...types.public_catalog_response_data import PublicCatalogResponseData -class UpdateApiKeyResponse(UniversalBaseModel): - data: ApiKeyResponseData +class GetPublicCatalogByIdResponse(UniversalBaseModel): + data: PublicCatalogResponseData params: typing.Dict[str, typing.Any] = pydantic.Field() """ Input parameters diff --git a/src/schematic/accounts/types/create_api_key_response.py b/src/schematic/catalogs/types/get_public_catalog_response.py similarity index 77% rename from src/schematic/accounts/types/create_api_key_response.py rename to src/schematic/catalogs/types/get_public_catalog_response.py index 7632f906..6ee4a061 100644 --- a/src/schematic/accounts/types/create_api_key_response.py +++ b/src/schematic/catalogs/types/get_public_catalog_response.py @@ -4,11 +4,11 @@ import pydantic from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.api_key_create_response_data import ApiKeyCreateResponseData +from ...types.public_catalog_response_data import PublicCatalogResponseData -class CreateApiKeyResponse(UniversalBaseModel): - data: ApiKeyCreateResponseData +class GetPublicCatalogResponse(UniversalBaseModel): + data: PublicCatalogResponseData params: typing.Dict[str, typing.Any] = pydantic.Field() """ Input parameters diff --git a/src/schematic/core/client_wrapper.py b/src/schematic/core/client_wrapper.py index 3b1d645b..36a42667 100644 --- a/src/schematic/core/client_wrapper.py +++ b/src/schematic/core/client_wrapper.py @@ -33,12 +33,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "schematichq/1.4.5", + "User-Agent": "schematichq/1.4.6", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "schematichq", - "X-Fern-SDK-Version": "1.4.5", + "X-Fern-SDK-Version": "1.4.6", **(self.get_custom_headers() or {}), } headers["X-Schematic-Api-Key"] = self.api_key diff --git a/src/schematic/raw_base_client.py b/src/schematic/raw_base_client.py index df5ef2d0..34d2702d 100644 --- a/src/schematic/raw_base_client.py +++ b/src/schematic/raw_base_client.py @@ -6,6 +6,7 @@ from .core.api_error import ApiError from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from .core.http_response import AsyncHttpResponse, HttpResponse +from .core.jsonable_encoder import encode_path_param from .core.parse_error import ParsingError from .core.request_options import RequestOptions from pydantic import ValidationError @@ -15,6 +16,190 @@ class RawBaseSchematic: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper + def post_api_keys(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + "api-keys", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def put_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"api-keys/{encode_path_param(api_key_id)}", + method="PUT", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def delete_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"api-keys/{encode_path_param(api_key_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def post_environments(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + "environments", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def put_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"environments/{encode_path_param(environment_id)}", + method="PUT", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def delete_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> HttpResponse[None]: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[None] + """ + _response = self._client_wrapper.httpx_client.request( + f"environments/{encode_path_param(environment_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return HttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def get_credit_ledger(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]: """ Parameters @@ -48,6 +233,194 @@ class AsyncRawBaseSchematic: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper + async def post_api_keys( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + "api-keys", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def put_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"api-keys/{encode_path_param(api_key_id)}", + method="PUT", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def delete_api_keys_api_key_id( + self, api_key_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + api_key_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"api-keys/{encode_path_param(api_key_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def post_environments( + self, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + "environments", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def put_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"environments/{encode_path_param(environment_id)}", + method="PUT", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def delete_environments_environment_id( + self, environment_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> AsyncHttpResponse[None]: + """ + Parameters + ---------- + environment_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[None] + """ + _response = await self._client_wrapper.httpx_client.request( + f"environments/{encode_path_param(environment_id)}", + method="DELETE", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return AsyncHttpResponse(response=_response, data=None) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + except ValidationError as e: + raise ParsingError( + status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e + ) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def get_credit_ledger( self, *, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[None]: diff --git a/src/schematic/types/__init__.py b/src/schematic/types/__init__.py index c81bcd68..56566d20 100644 --- a/src/schematic/types/__init__.py +++ b/src/schematic/types/__init__.py @@ -14,7 +14,6 @@ from .actor_type import ActorType from .amendment_proration_lands_on import AmendmentProrationLandsOn from .api_error import ApiError - from .api_key_create_response_data import ApiKeyCreateResponseData from .api_key_integration_response_data import ApiKeyIntegrationResponseData from .api_key_response_data import ApiKeyResponseData from .api_key_scope import ApiKeyScope @@ -44,10 +43,13 @@ from .billing_customer_response_data import BillingCustomerResponseData from .billing_customer_subscription import BillingCustomerSubscription from .billing_customer_with_subscriptions_response_data import BillingCustomerWithSubscriptionsResponseData + from .billing_invoice_address_response_data import BillingInvoiceAddressResponseData + from .billing_invoice_billing_details_response_data import BillingInvoiceBillingDetailsResponseData from .billing_invoice_detail_response_data import BillingInvoiceDetailResponseData from .billing_invoice_line_response_data import BillingInvoiceLineResponseData from .billing_invoice_response_data import BillingInvoiceResponseData from .billing_invoice_settlement_response_data import BillingInvoiceSettlementResponseData + from .billing_invoice_tax_id_response_data import BillingInvoiceTaxIdResponseData from .billing_invoice_terms_response_data import BillingInvoiceTermsResponseData from .billing_linked_resource_response_data import BillingLinkedResourceResponseData from .billing_meter_response_data import BillingMeterResponseData @@ -87,6 +89,8 @@ from .billing_tiers_mode import BillingTiersMode from .capture_raw_event import CaptureRawEvent from .capture_raw_event_batch import CaptureRawEventBatch + from .catalog_bundle_currency_price_response_data import CatalogBundleCurrencyPriceResponseData + from .catalog_capabilities_response_data import CatalogCapabilitiesResponseData from .catalog_config_ordered_bundle import CatalogConfigOrderedBundle from .catalog_config_ordered_bundle_response_data import CatalogConfigOrderedBundleResponseData from .catalog_config_ordered_entitlement import CatalogConfigOrderedEntitlement @@ -97,9 +101,19 @@ from .catalog_config_plan_credit_response_data import CatalogConfigPlanCreditResponseData from .catalog_configuration_response_data import CatalogConfigurationResponseData from .catalog_credit_bundle_i_ds_response_data import CatalogCreditBundleIDsResponseData + from .catalog_credit_bundle_response_data import CatalogCreditBundleResponseData + from .catalog_credit_grant_response_data import CatalogCreditGrantResponseData + from .catalog_currency_prices_response_data import CatalogCurrencyPricesResponseData + from .catalog_custom_plan_cta_response_data import CatalogCustomPlanCtaResponseData from .catalog_derived_feature_response_data import CatalogDerivedFeatureResponseData from .catalog_derived_features_response_data import CatalogDerivedFeaturesResponseData + from .catalog_detail_response_data import CatalogDetailResponseData + from .catalog_entitlement_response_data import CatalogEntitlementResponseData + from .catalog_plan_entitlement_response_data import CatalogPlanEntitlementResponseData from .catalog_plan_i_ds_response_data import CatalogPlanIDsResponseData + from .catalog_plan_response_data import CatalogPlanResponseData + from .catalog_price_response_data import CatalogPriceResponseData + from .catalog_price_tier_response_data import CatalogPriceTierResponseData from .catalog_response_data import CatalogResponseData from .change_subscription_internal_request_body import ChangeSubscriptionInternalRequestBody from .change_subscription_request_body import ChangeSubscriptionRequestBody @@ -111,6 +125,7 @@ from .check_flags_bulk_response_data import CheckFlagsBulkResponseData from .check_flags_response_data import CheckFlagsResponseData from .checkout_bundle_purchase_behavior import CheckoutBundlePurchaseBehavior + from .checkout_charge_timing import CheckoutChargeTiming from .checkout_data_response_data import CheckoutDataResponseData from .checkout_field_input import CheckoutFieldInput from .checkout_field_response_data import CheckoutFieldResponseData @@ -274,7 +289,6 @@ from .entity_trait_response_data import EntityTraitResponseData from .entity_trait_value import EntityTraitValue from .entity_type import EntityType - from .environment_detail_response_data import EnvironmentDetailResponseData from .environment_feature_usage_time_series_response_data import EnvironmentFeatureUsageTimeSeriesResponseData from .environment_response_data import EnvironmentResponseData from .environment_trait_usage_time_series_response_data import EnvironmentTraitUsageTimeSeriesResponseData @@ -373,6 +387,7 @@ from .ordered_plans_in_group import OrderedPlansInGroup from .otlp_environment_settings_response_data import OtlpEnvironmentSettingsResponseData from .payment_gating import PaymentGating + from .payment_method_billing_details_request_body import PaymentMethodBillingDetailsRequestBody from .payment_method_request_body import PaymentMethodRequestBody from .payment_method_response_data import PaymentMethodResponseData from .pending_migration_response_data import PendingMigrationResponseData @@ -422,6 +437,7 @@ from .plan_version_entitlement_change_response_data import PlanVersionEntitlementChangeResponseData from .plan_version_field_change_response_data import PlanVersionFieldChangeResponseData from .plan_version_migration_preview_company_response_data import PlanVersionMigrationPreviewCompanyResponseData + from .plan_version_migration_preview_note_response_data import PlanVersionMigrationPreviewNoteResponseData from .plan_version_migration_preview_response_data import PlanVersionMigrationPreviewResponseData from .plan_version_migration_response_data import PlanVersionMigrationResponseData from .plan_version_migration_status import PlanVersionMigrationStatus @@ -439,8 +455,12 @@ from .preview_subscription_change_response_data import PreviewSubscriptionChangeResponseData from .preview_subscription_discount_response_data import PreviewSubscriptionDiscountResponseData from .preview_subscription_finance_response_data import PreviewSubscriptionFinanceResponseData + from .preview_subscription_proration_line_response_data import PreviewSubscriptionProrationLineResponseData + from .preview_subscription_proration_response_data import PreviewSubscriptionProrationResponseData from .preview_subscription_upcoming_invoice_line_items import PreviewSubscriptionUpcomingInvoiceLineItems from .proration_behavior import ProrationBehavior + from .proration_line_kind import ProrationLineKind + from .public_catalog_response_data import PublicCatalogResponseData from .public_plans_response_data import PublicPlansResponseData from .publish_plan_version_request_body import PublishPlanVersionRequestBody from .publish_preview_pay_in_advance_response_data import PublishPreviewPayInAdvanceResponseData @@ -571,7 +591,6 @@ "ActorType": ".actor_type", "AmendmentProrationLandsOn": ".amendment_proration_lands_on", "ApiError": ".api_error", - "ApiKeyCreateResponseData": ".api_key_create_response_data", "ApiKeyIntegrationResponseData": ".api_key_integration_response_data", "ApiKeyResponseData": ".api_key_response_data", "ApiKeyScope": ".api_key_scope", @@ -601,10 +620,13 @@ "BillingCustomerResponseData": ".billing_customer_response_data", "BillingCustomerSubscription": ".billing_customer_subscription", "BillingCustomerWithSubscriptionsResponseData": ".billing_customer_with_subscriptions_response_data", + "BillingInvoiceAddressResponseData": ".billing_invoice_address_response_data", + "BillingInvoiceBillingDetailsResponseData": ".billing_invoice_billing_details_response_data", "BillingInvoiceDetailResponseData": ".billing_invoice_detail_response_data", "BillingInvoiceLineResponseData": ".billing_invoice_line_response_data", "BillingInvoiceResponseData": ".billing_invoice_response_data", "BillingInvoiceSettlementResponseData": ".billing_invoice_settlement_response_data", + "BillingInvoiceTaxIdResponseData": ".billing_invoice_tax_id_response_data", "BillingInvoiceTermsResponseData": ".billing_invoice_terms_response_data", "BillingLinkedResourceResponseData": ".billing_linked_resource_response_data", "BillingMeterResponseData": ".billing_meter_response_data", @@ -644,6 +666,8 @@ "BillingTiersMode": ".billing_tiers_mode", "CaptureRawEvent": ".capture_raw_event", "CaptureRawEventBatch": ".capture_raw_event_batch", + "CatalogBundleCurrencyPriceResponseData": ".catalog_bundle_currency_price_response_data", + "CatalogCapabilitiesResponseData": ".catalog_capabilities_response_data", "CatalogConfigOrderedBundle": ".catalog_config_ordered_bundle", "CatalogConfigOrderedBundleResponseData": ".catalog_config_ordered_bundle_response_data", "CatalogConfigOrderedEntitlement": ".catalog_config_ordered_entitlement", @@ -654,9 +678,19 @@ "CatalogConfigPlanCreditResponseData": ".catalog_config_plan_credit_response_data", "CatalogConfigurationResponseData": ".catalog_configuration_response_data", "CatalogCreditBundleIDsResponseData": ".catalog_credit_bundle_i_ds_response_data", + "CatalogCreditBundleResponseData": ".catalog_credit_bundle_response_data", + "CatalogCreditGrantResponseData": ".catalog_credit_grant_response_data", + "CatalogCurrencyPricesResponseData": ".catalog_currency_prices_response_data", + "CatalogCustomPlanCtaResponseData": ".catalog_custom_plan_cta_response_data", "CatalogDerivedFeatureResponseData": ".catalog_derived_feature_response_data", "CatalogDerivedFeaturesResponseData": ".catalog_derived_features_response_data", + "CatalogDetailResponseData": ".catalog_detail_response_data", + "CatalogEntitlementResponseData": ".catalog_entitlement_response_data", + "CatalogPlanEntitlementResponseData": ".catalog_plan_entitlement_response_data", "CatalogPlanIDsResponseData": ".catalog_plan_i_ds_response_data", + "CatalogPlanResponseData": ".catalog_plan_response_data", + "CatalogPriceResponseData": ".catalog_price_response_data", + "CatalogPriceTierResponseData": ".catalog_price_tier_response_data", "CatalogResponseData": ".catalog_response_data", "ChangeSubscriptionInternalRequestBody": ".change_subscription_internal_request_body", "ChangeSubscriptionRequestBody": ".change_subscription_request_body", @@ -668,6 +702,7 @@ "CheckFlagsBulkResponseData": ".check_flags_bulk_response_data", "CheckFlagsResponseData": ".check_flags_response_data", "CheckoutBundlePurchaseBehavior": ".checkout_bundle_purchase_behavior", + "CheckoutChargeTiming": ".checkout_charge_timing", "CheckoutDataResponseData": ".checkout_data_response_data", "CheckoutFieldInput": ".checkout_field_input", "CheckoutFieldResponseData": ".checkout_field_response_data", @@ -825,7 +860,6 @@ "EntityTraitResponseData": ".entity_trait_response_data", "EntityTraitValue": ".entity_trait_value", "EntityType": ".entity_type", - "EnvironmentDetailResponseData": ".environment_detail_response_data", "EnvironmentFeatureUsageTimeSeriesResponseData": ".environment_feature_usage_time_series_response_data", "EnvironmentResponseData": ".environment_response_data", "EnvironmentTraitUsageTimeSeriesResponseData": ".environment_trait_usage_time_series_response_data", @@ -922,6 +956,7 @@ "OrderedPlansInGroup": ".ordered_plans_in_group", "OtlpEnvironmentSettingsResponseData": ".otlp_environment_settings_response_data", "PaymentGating": ".payment_gating", + "PaymentMethodBillingDetailsRequestBody": ".payment_method_billing_details_request_body", "PaymentMethodRequestBody": ".payment_method_request_body", "PaymentMethodResponseData": ".payment_method_response_data", "PendingMigrationResponseData": ".pending_migration_response_data", @@ -971,6 +1006,7 @@ "PlanVersionEntitlementChangeResponseData": ".plan_version_entitlement_change_response_data", "PlanVersionFieldChangeResponseData": ".plan_version_field_change_response_data", "PlanVersionMigrationPreviewCompanyResponseData": ".plan_version_migration_preview_company_response_data", + "PlanVersionMigrationPreviewNoteResponseData": ".plan_version_migration_preview_note_response_data", "PlanVersionMigrationPreviewResponseData": ".plan_version_migration_preview_response_data", "PlanVersionMigrationResponseData": ".plan_version_migration_response_data", "PlanVersionMigrationStatus": ".plan_version_migration_status", @@ -988,8 +1024,12 @@ "PreviewSubscriptionChangeResponseData": ".preview_subscription_change_response_data", "PreviewSubscriptionDiscountResponseData": ".preview_subscription_discount_response_data", "PreviewSubscriptionFinanceResponseData": ".preview_subscription_finance_response_data", + "PreviewSubscriptionProrationLineResponseData": ".preview_subscription_proration_line_response_data", + "PreviewSubscriptionProrationResponseData": ".preview_subscription_proration_response_data", "PreviewSubscriptionUpcomingInvoiceLineItems": ".preview_subscription_upcoming_invoice_line_items", "ProrationBehavior": ".proration_behavior", + "ProrationLineKind": ".proration_line_kind", + "PublicCatalogResponseData": ".public_catalog_response_data", "PublicPlansResponseData": ".public_plans_response_data", "PublishPlanVersionRequestBody": ".publish_plan_version_request_body", "PublishPreviewPayInAdvanceResponseData": ".publish_preview_pay_in_advance_response_data", @@ -1144,7 +1184,6 @@ def __dir__(): "ActorType", "AmendmentProrationLandsOn", "ApiError", - "ApiKeyCreateResponseData", "ApiKeyIntegrationResponseData", "ApiKeyResponseData", "ApiKeyScope", @@ -1174,10 +1213,13 @@ def __dir__(): "BillingCustomerResponseData", "BillingCustomerSubscription", "BillingCustomerWithSubscriptionsResponseData", + "BillingInvoiceAddressResponseData", + "BillingInvoiceBillingDetailsResponseData", "BillingInvoiceDetailResponseData", "BillingInvoiceLineResponseData", "BillingInvoiceResponseData", "BillingInvoiceSettlementResponseData", + "BillingInvoiceTaxIdResponseData", "BillingInvoiceTermsResponseData", "BillingLinkedResourceResponseData", "BillingMeterResponseData", @@ -1217,6 +1259,8 @@ def __dir__(): "BillingTiersMode", "CaptureRawEvent", "CaptureRawEventBatch", + "CatalogBundleCurrencyPriceResponseData", + "CatalogCapabilitiesResponseData", "CatalogConfigOrderedBundle", "CatalogConfigOrderedBundleResponseData", "CatalogConfigOrderedEntitlement", @@ -1227,9 +1271,19 @@ def __dir__(): "CatalogConfigPlanCreditResponseData", "CatalogConfigurationResponseData", "CatalogCreditBundleIDsResponseData", + "CatalogCreditBundleResponseData", + "CatalogCreditGrantResponseData", + "CatalogCurrencyPricesResponseData", + "CatalogCustomPlanCtaResponseData", "CatalogDerivedFeatureResponseData", "CatalogDerivedFeaturesResponseData", + "CatalogDetailResponseData", + "CatalogEntitlementResponseData", + "CatalogPlanEntitlementResponseData", "CatalogPlanIDsResponseData", + "CatalogPlanResponseData", + "CatalogPriceResponseData", + "CatalogPriceTierResponseData", "CatalogResponseData", "ChangeSubscriptionInternalRequestBody", "ChangeSubscriptionRequestBody", @@ -1241,6 +1295,7 @@ def __dir__(): "CheckFlagsBulkResponseData", "CheckFlagsResponseData", "CheckoutBundlePurchaseBehavior", + "CheckoutChargeTiming", "CheckoutDataResponseData", "CheckoutFieldInput", "CheckoutFieldResponseData", @@ -1398,7 +1453,6 @@ def __dir__(): "EntityTraitResponseData", "EntityTraitValue", "EntityType", - "EnvironmentDetailResponseData", "EnvironmentFeatureUsageTimeSeriesResponseData", "EnvironmentResponseData", "EnvironmentTraitUsageTimeSeriesResponseData", @@ -1495,6 +1549,7 @@ def __dir__(): "OrderedPlansInGroup", "OtlpEnvironmentSettingsResponseData", "PaymentGating", + "PaymentMethodBillingDetailsRequestBody", "PaymentMethodRequestBody", "PaymentMethodResponseData", "PendingMigrationResponseData", @@ -1544,6 +1599,7 @@ def __dir__(): "PlanVersionEntitlementChangeResponseData", "PlanVersionFieldChangeResponseData", "PlanVersionMigrationPreviewCompanyResponseData", + "PlanVersionMigrationPreviewNoteResponseData", "PlanVersionMigrationPreviewResponseData", "PlanVersionMigrationResponseData", "PlanVersionMigrationStatus", @@ -1561,8 +1617,12 @@ def __dir__(): "PreviewSubscriptionChangeResponseData", "PreviewSubscriptionDiscountResponseData", "PreviewSubscriptionFinanceResponseData", + "PreviewSubscriptionProrationLineResponseData", + "PreviewSubscriptionProrationResponseData", "PreviewSubscriptionUpcomingInvoiceLineItems", "ProrationBehavior", + "ProrationLineKind", + "PublicCatalogResponseData", "PublicPlansResponseData", "PublishPlanVersionRequestBody", "PublishPreviewPayInAdvanceResponseData", diff --git a/src/schematic/types/api_key_create_response_data.py b/src/schematic/types/api_key_create_response_data.py deleted file mode 100644 index 169c0f72..00000000 --- a/src/schematic/types/api_key_create_response_data.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import datetime as dt -import typing - -import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .api_key_integration_response_data import ApiKeyIntegrationResponseData -from .api_key_scope import ApiKeyScope -from .environment_response_data import EnvironmentResponseData - - -class ApiKeyCreateResponseData(UniversalBaseModel): - created_at: dt.datetime - description: typing.Optional[str] = None - environment: typing.Optional[EnvironmentResponseData] = None - environment_id: typing.Optional[str] = None - id: str - integration: typing.Optional[ApiKeyIntegrationResponseData] = None - last_used_at: typing.Optional[dt.datetime] = None - name: str - rate_limit_percent: typing.Optional[int] = None - readonly: bool - scopes: typing.List[ApiKeyScope] - secret: str - updated_at: dt.datetime - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/schematic/types/billing_invoice_address_response_data.py b/src/schematic/types/billing_invoice_address_response_data.py new file mode 100644 index 00000000..31e4e7c5 --- /dev/null +++ b/src/schematic/types/billing_invoice_address_response_data.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata + + +class BillingInvoiceAddressResponseData(UniversalBaseModel): + city: str + country: str + line_1: typing_extensions.Annotated[str, FieldMetadata(alias="line1"), pydantic.Field(alias="line1")] + line_2: typing_extensions.Annotated[str, FieldMetadata(alias="line2"), pydantic.Field(alias="line2")] + postal_code: str + state: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/billing_invoice_billing_details_response_data.py b/src/schematic/types/billing_invoice_billing_details_response_data.py new file mode 100644 index 00000000..0b20ec6c --- /dev/null +++ b/src/schematic/types/billing_invoice_billing_details_response_data.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_invoice_address_response_data import BillingInvoiceAddressResponseData +from .billing_invoice_tax_id_response_data import BillingInvoiceTaxIdResponseData + + +class BillingInvoiceBillingDetailsResponseData(UniversalBaseModel): + address: typing.Optional[BillingInvoiceAddressResponseData] = None + email: typing.Optional[str] = None + phone: typing.Optional[str] = None + tax_ids: typing.List[BillingInvoiceTaxIdResponseData] + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/accounts/types/delete_api_key_response.py b/src/schematic/types/billing_invoice_tax_id_response_data.py similarity index 56% rename from src/schematic/accounts/types/delete_api_key_response.py rename to src/schematic/types/billing_invoice_tax_id_response_data.py index cfcb79b5..d9eb3cf7 100644 --- a/src/schematic/accounts/types/delete_api_key_response.py +++ b/src/schematic/types/billing_invoice_tax_id_response_data.py @@ -3,16 +3,13 @@ import typing import pydantic -from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.delete_response import DeleteResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .tax_id_type import TaxIdType -class DeleteApiKeyResponse(UniversalBaseModel): - data: DeleteResponse - params: typing.Dict[str, typing.Any] = pydantic.Field() - """ - Input parameters - """ +class BillingInvoiceTaxIdResponseData(UniversalBaseModel): + type: TaxIdType + value: str if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/schematic/types/billing_invoice_terms_response_data.py b/src/schematic/types/billing_invoice_terms_response_data.py index 15d2db13..3ca8c0dc 100644 --- a/src/schematic/types/billing_invoice_terms_response_data.py +++ b/src/schematic/types/billing_invoice_terms_response_data.py @@ -5,12 +5,18 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .billing_collection_method import BillingCollectionMethod +from .billing_invoice_billing_details_response_data import BillingInvoiceBillingDetailsResponseData from .collector import Collector from .currency import Currency from .payment_gating import PaymentGating class BillingInvoiceTermsResponseData(UniversalBaseModel): + billing_details: typing.Optional[BillingInvoiceBillingDetailsResponseData] = pydantic.Field(default=None) + """ + Who invoices are addressed to. On an invoice, these are the details copied when it was finalized. Null when the contract holds none. + """ + collection_method: BillingCollectionMethod collector: Collector currency: typing.Optional[Currency] = None diff --git a/src/schematic/types/environment_detail_response_data.py b/src/schematic/types/catalog_bundle_currency_price_response_data.py similarity index 54% rename from src/schematic/types/environment_detail_response_data.py rename to src/schematic/types/catalog_bundle_currency_price_response_data.py index c811f421..2384b43d 100644 --- a/src/schematic/types/environment_detail_response_data.py +++ b/src/schematic/types/catalog_bundle_currency_price_response_data.py @@ -1,22 +1,17 @@ # This file was auto-generated by Fern from our API Definition. -import datetime as dt import typing import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .api_key_response_data import ApiKeyResponseData -from .environment_type import EnvironmentType +from .catalog_price_response_data import CatalogPriceResponseData +from .currency import Currency -class EnvironmentDetailResponseData(UniversalBaseModel): - api_keys: typing.List[ApiKeyResponseData] - created_at: dt.datetime - environment_type: EnvironmentType - id: str - name: str - require_context_signature: bool - updated_at: dt.datetime +class CatalogBundleCurrencyPriceResponseData(UniversalBaseModel): + currency: Currency + price: typing.Optional[CatalogPriceResponseData] = None + unit_price: typing.Optional[CatalogPriceResponseData] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/schematic/accounts/types/create_environment_response.py b/src/schematic/types/catalog_capabilities_response_data.py similarity index 54% rename from src/schematic/accounts/types/create_environment_response.py rename to src/schematic/types/catalog_capabilities_response_data.py index d1fecb43..4913b8e7 100644 --- a/src/schematic/accounts/types/create_environment_response.py +++ b/src/schematic/types/catalog_capabilities_response_data.py @@ -3,17 +3,17 @@ import typing import pydantic -from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.environment_detail_response_data import EnvironmentDetailResponseData +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class CreateEnvironmentResponse(UniversalBaseModel): - data: EnvironmentDetailResponseData - params: typing.Dict[str, typing.Any] = pydantic.Field() +class CatalogCapabilitiesResponseData(UniversalBaseModel): + badge_visibility: bool = pydantic.Field() """ - Input parameters + Whether the consumer may hide the 'powered by Schematic' badge (the account's badge-hideable entitlement); false means the badge must be shown. """ + checkout: bool + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/src/schematic/types/catalog_credit_bundle_response_data.py b/src/schematic/types/catalog_credit_bundle_response_data.py new file mode 100644 index 00000000..c1ffa04e --- /dev/null +++ b/src/schematic/types/catalog_credit_bundle_response_data.py @@ -0,0 +1,47 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_credit_bundle_type import BillingCreditBundleType +from .billing_credit_expiry_type import BillingCreditExpiryType +from .billing_credit_expiry_unit import BillingCreditExpiryUnit +from .catalog_bundle_currency_price_response_data import CatalogBundleCurrencyPriceResponseData +from .catalog_price_response_data import CatalogPriceResponseData + + +class CatalogCreditBundleResponseData(UniversalBaseModel): + bundle_type: BillingCreditBundleType = "fixed" + compatible_plan_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + The plans whose companies may purchase this bundle. Null means compatible with every plan. + """ + + credit_icon: typing.Optional[str] = None + credit_id: str + credit_name: str + credit_plural_name: typing.Optional[str] = None + credit_singular_name: typing.Optional[str] = None + currency_prices: typing.List[CatalogBundleCurrencyPriceResponseData] + expiry_type: BillingCreditExpiryType + expiry_unit: BillingCreditExpiryUnit + expiry_unit_count: typing.Optional[int] = None + id: str + name: str + price: typing.Optional[CatalogPriceResponseData] = None + quantity: typing.Optional[int] = pydantic.Field(default=None) + """ + Credits granted per purchase; null means the buyer chooses a custom quantity priced via unit_price. + """ + + unit_price: typing.Optional[CatalogPriceResponseData] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_credit_grant_response_data.py b/src/schematic/types/catalog_credit_grant_response_data.py new file mode 100644 index 00000000..2b8605ec --- /dev/null +++ b/src/schematic/types/catalog_credit_grant_response_data.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_plan_credit_grant_reset_cadence import BillingPlanCreditGrantResetCadence +from .plan_credit_grant_scaling import PlanCreditGrantScaling + + +class CatalogCreditGrantResponseData(UniversalBaseModel): + company_credit_amount: int = pydantic.Field() + """ + Flat credit amount granted to the company regardless of scaling. + """ + + credit_amount: int = pydantic.Field() + """ + Credits granted; for per_license scaling this is the amount per license unit. + """ + + credit_icon: typing.Optional[str] = None + credit_id: str + credit_name: str + credit_plural_name: typing.Optional[str] = None + credit_singular_name: typing.Optional[str] = None + id: str + license_id: typing.Optional[str] = None + reset_cadence: typing.Optional[BillingPlanCreditGrantResetCadence] = None + scaling: PlanCreditGrantScaling + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_currency_prices_response_data.py b/src/schematic/types/catalog_currency_prices_response_data.py new file mode 100644 index 00000000..cc160dae --- /dev/null +++ b/src/schematic/types/catalog_currency_prices_response_data.py @@ -0,0 +1,25 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .catalog_price_response_data import CatalogPriceResponseData +from .currency import Currency + + +class CatalogCurrencyPricesResponseData(UniversalBaseModel): + currency: Currency + monthly_price: typing.Optional[CatalogPriceResponseData] = None + one_time_price: typing.Optional[CatalogPriceResponseData] = None + quarterly_price: typing.Optional[CatalogPriceResponseData] = None + yearly_price: typing.Optional[CatalogPriceResponseData] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/accounts/types/delete_environment_response.py b/src/schematic/types/catalog_custom_plan_cta_response_data.py similarity index 56% rename from src/schematic/accounts/types/delete_environment_response.py rename to src/schematic/types/catalog_custom_plan_cta_response_data.py index 6e1b7e26..78b825c0 100644 --- a/src/schematic/accounts/types/delete_environment_response.py +++ b/src/schematic/types/catalog_custom_plan_cta_response_data.py @@ -3,16 +3,13 @@ import typing import pydantic -from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.delete_response import DeleteResponse +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -class DeleteEnvironmentResponse(UniversalBaseModel): - data: DeleteResponse - params: typing.Dict[str, typing.Any] = pydantic.Field() - """ - Input parameters - """ +class CatalogCustomPlanCtaResponseData(UniversalBaseModel): + cta_text: typing.Optional[str] = None + cta_url: typing.Optional[str] = None + price_text: typing.Optional[str] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/schematic/types/catalog_detail_response_data.py b/src/schematic/types/catalog_detail_response_data.py new file mode 100644 index 00000000..c942187b --- /dev/null +++ b/src/schematic/types/catalog_detail_response_data.py @@ -0,0 +1,37 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .catalog_capabilities_response_data import CatalogCapabilitiesResponseData +from .catalog_custom_plan_cta_response_data import CatalogCustomPlanCtaResponseData +from .currency import Currency + + +class CatalogDetailResponseData(UniversalBaseModel): + capabilities: CatalogCapabilitiesResponseData + custom_plan_cta: typing.Optional[CatalogCustomPlanCtaResponseData] = pydantic.Field(default=None) + """ + Present when the catalog offers a custom plan; absent when custom plans are hidden. + """ + + default_currency: Currency = pydantic.Field() + """ + ISO 4217 currency of every top-level price slot; currency_prices carries the others. + """ + + description: typing.Optional[str] = None + id: str + name: str + pricing_model: typing.Optional[str] = None + pricing_url: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_entitlement_response_data.py b/src/schematic/types/catalog_entitlement_response_data.py new file mode 100644 index 00000000..250a6133 --- /dev/null +++ b/src/schematic/types/catalog_entitlement_response_data.py @@ -0,0 +1,63 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .catalog_currency_prices_response_data import CatalogCurrencyPricesResponseData +from .catalog_price_response_data import CatalogPriceResponseData +from .entitlement_price_behavior import EntitlementPriceBehavior +from .entitlement_value_type import EntitlementValueType +from .feature_type import FeatureType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset + + +class CatalogEntitlementResponseData(UniversalBaseModel): + consumption_rate: typing.Optional[float] = pydantic.Field(default=None) + """ + Credits consumed per unit of usage, for credit-burndown entitlements. + """ + + credit_equivalent_limit: typing.Optional[int] = pydantic.Field(default=None) + """ + How many units of usage the plan's fixed included credit grants cover (⌊granted credits ÷ consumption rate⌋). Null when there is no fixed grant or the grant scales per license. + """ + + credit_icon: typing.Optional[str] = None + credit_id: typing.Optional[str] = None + credit_name: typing.Optional[str] = None + credit_plural_name: typing.Optional[str] = None + credit_singular_name: typing.Optional[str] = None + currency_prices: typing.List[CatalogCurrencyPricesResponseData] + feature_description: str + feature_icon: str + feature_id: str + feature_name: str + feature_plural_name: typing.Optional[str] = None + feature_singular_name: typing.Optional[str] = None + feature_type: FeatureType + license_id: typing.Optional[str] = None + metered_monthly_price: typing.Optional[CatalogPriceResponseData] = None + metered_quarterly_price: typing.Optional[CatalogPriceResponseData] = None + metered_yearly_price: typing.Optional[CatalogPriceResponseData] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None + price_behavior: typing.Optional[EntitlementPriceBehavior] = None + soft_limit: typing.Optional[int] = None + value_bool: typing.Optional[bool] = None + value_numeric: typing.Optional[int] = None + value_type: EntitlementValueType + warning_threshold: typing.Optional[int] = pydantic.Field(default=None) + """ + The default warning-tier value, when configured. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_plan_entitlement_response_data.py b/src/schematic/types/catalog_plan_entitlement_response_data.py new file mode 100644 index 00000000..f623aa3f --- /dev/null +++ b/src/schematic/types/catalog_plan_entitlement_response_data.py @@ -0,0 +1,64 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .catalog_currency_prices_response_data import CatalogCurrencyPricesResponseData +from .catalog_price_response_data import CatalogPriceResponseData +from .entitlement_price_behavior import EntitlementPriceBehavior +from .entitlement_value_type import EntitlementValueType +from .feature_type import FeatureType +from .metric_period import MetricPeriod +from .metric_period_month_reset import MetricPeriodMonthReset + + +class CatalogPlanEntitlementResponseData(UniversalBaseModel): + consumption_rate: typing.Optional[float] = pydantic.Field(default=None) + """ + Credits consumed per unit of usage, for credit-burndown entitlements. + """ + + credit_equivalent_limit: typing.Optional[int] = pydantic.Field(default=None) + """ + How many units of usage the plan's fixed included credit grants cover (⌊granted credits ÷ consumption rate⌋). Null when there is no fixed grant or the grant scales per license. + """ + + credit_icon: typing.Optional[str] = None + credit_id: typing.Optional[str] = None + credit_name: typing.Optional[str] = None + credit_plural_name: typing.Optional[str] = None + credit_singular_name: typing.Optional[str] = None + currency_prices: typing.List[CatalogCurrencyPricesResponseData] + feature_description: str + feature_icon: str + feature_id: str + feature_name: str + feature_plural_name: typing.Optional[str] = None + feature_singular_name: typing.Optional[str] = None + feature_type: FeatureType + id: str + license_id: typing.Optional[str] = None + metered_monthly_price: typing.Optional[CatalogPriceResponseData] = None + metered_quarterly_price: typing.Optional[CatalogPriceResponseData] = None + metered_yearly_price: typing.Optional[CatalogPriceResponseData] = None + metric_period: typing.Optional[MetricPeriod] = None + metric_period_month_reset: typing.Optional[MetricPeriodMonthReset] = None + price_behavior: typing.Optional[EntitlementPriceBehavior] = None + soft_limit: typing.Optional[int] = None + value_bool: typing.Optional[bool] = None + value_numeric: typing.Optional[int] = None + value_type: EntitlementValueType + warning_threshold: typing.Optional[int] = pydantic.Field(default=None) + """ + The default warning-tier value, when configured. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_plan_response_data.py b/src/schematic/types/catalog_plan_response_data.py new file mode 100644 index 00000000..26af92f8 --- /dev/null +++ b/src/schematic/types/catalog_plan_response_data.py @@ -0,0 +1,46 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_strategy import BillingStrategy +from .catalog_credit_grant_response_data import CatalogCreditGrantResponseData +from .catalog_currency_prices_response_data import CatalogCurrencyPricesResponseData +from .catalog_plan_entitlement_response_data import CatalogPlanEntitlementResponseData +from .catalog_price_response_data import CatalogPriceResponseData +from .charge_type import ChargeType +from .plan_price_cadence import PlanPriceCadence + + +class CatalogPlanResponseData(UniversalBaseModel): + available_periods: typing.List[PlanPriceCadence] + billing_strategy: BillingStrategy + charge_type: ChargeType + compatible_plan_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None) + """ + For add-ons, the plans this add-on may be purchased with. Null means compatible with every plan. + """ + + currency_prices: typing.List[CatalogCurrencyPricesResponseData] + description: str + entitlements: typing.List[CatalogPlanEntitlementResponseData] + icon: str + id: str + included_credit_grants: typing.List[CatalogCreditGrantResponseData] + is_trialable: bool + monthly_price: typing.Optional[CatalogPriceResponseData] = None + name: str + one_time_price: typing.Optional[CatalogPriceResponseData] = None + quarterly_price: typing.Optional[CatalogPriceResponseData] = None + trial_days: typing.Optional[int] = None + yearly_price: typing.Optional[CatalogPriceResponseData] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_price_response_data.py b/src/schematic/types/catalog_price_response_data.py new file mode 100644 index 00000000..60395046 --- /dev/null +++ b/src/schematic/types/catalog_price_response_data.py @@ -0,0 +1,42 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .billing_price_scheme import BillingPriceScheme +from .billing_product_price_interval import BillingProductPriceInterval +from .billing_tiers_mode import BillingTiersMode +from .catalog_price_tier_response_data import CatalogPriceTierResponseData +from .currency import Currency + + +class CatalogPriceResponseData(UniversalBaseModel): + currency: Currency + id: str + interval: BillingProductPriceInterval + interval_count: int + overage_unit_price_decimal: typing.Optional[str] = pydantic.Field(default=None) + """ + Per-unit price of the final tier, precomputed for overage display. + """ + + package_size: int = pydantic.Field() + """ + Units covered per priced package; a price of $10 with package_size 1000 charges $10 per 1000 units. + """ + + price: int + price_decimal: typing.Optional[str] = None + price_tiers: typing.List[CatalogPriceTierResponseData] + scheme: BillingPriceScheme + tiers_mode: typing.Optional[BillingTiersMode] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/catalog_price_tier_response_data.py b/src/schematic/types/catalog_price_tier_response_data.py new file mode 100644 index 00000000..0c96f340 --- /dev/null +++ b/src/schematic/types/catalog_price_tier_response_data.py @@ -0,0 +1,36 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +import typing_extensions +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from ..core.serialization import FieldMetadata + + +class CatalogPriceTierResponseData(UniversalBaseModel): + flat_price: typing.Optional[int] = None + from_: typing_extensions.Annotated[ + int, + FieldMetadata(alias="from"), + pydantic.Field(alias="from", description="Lower bound of the tier (inclusive)."), + ] + """ + Lower bound of the tier (inclusive). + """ + + per_unit_price: typing.Optional[int] = None + per_unit_price_decimal: typing.Optional[str] = None + to: typing.Optional[int] = pydantic.Field(default=None) + """ + Upper bound of the tier (inclusive); null means unbounded. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/checkout_charge_timing.py b/src/schematic/types/checkout_charge_timing.py new file mode 100644 index 00000000..a0731c4a --- /dev/null +++ b/src/schematic/types/checkout_charge_timing.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +CheckoutChargeTiming = typing.Union[typing.Literal["at_renewal", "none", "now"], typing.Any] diff --git a/src/schematic/types/payment_method_billing_details_request_body.py b/src/schematic/types/payment_method_billing_details_request_body.py new file mode 100644 index 00000000..4e79b362 --- /dev/null +++ b/src/schematic/types/payment_method_billing_details_request_body.py @@ -0,0 +1,22 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .customer_billing_address import CustomerBillingAddress + + +class PaymentMethodBillingDetailsRequestBody(UniversalBaseModel): + address: typing.Optional[CustomerBillingAddress] = None + email: typing.Optional[str] = None + phone: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/plan_version_migration_preview_company_response_data.py b/src/schematic/types/plan_version_migration_preview_company_response_data.py index 661f9b23..f0542fa1 100644 --- a/src/schematic/types/plan_version_migration_preview_company_response_data.py +++ b/src/schematic/types/plan_version_migration_preview_company_response_data.py @@ -4,13 +4,19 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .plan_version_migration_preview_note_response_data import PlanVersionMigrationPreviewNoteResponseData class PlanVersionMigrationPreviewCompanyResponseData(UniversalBaseModel): company_id: str has_billing_changes: bool has_custom_pricing: bool - note: typing.Optional[str] = None + note: typing.Optional[str] = pydantic.Field(default=None) + """ + The message of the first blocking note, or of the first note when none is blocking. Kept for clients that read a single note; prefer notes. + """ + + notes: typing.List[PlanVersionMigrationPreviewNoteResponseData] plan_version_id_from: typing.Optional[str] = None will_update_subscription: bool would_fail: bool diff --git a/src/schematic/types/plan_version_migration_preview_note_response_data.py b/src/schematic/types/plan_version_migration_preview_note_response_data.py new file mode 100644 index 00000000..691411a5 --- /dev/null +++ b/src/schematic/types/plan_version_migration_preview_note_response_data.py @@ -0,0 +1,30 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .migration_error_code import MigrationErrorCode + + +class PlanVersionMigrationPreviewNoteResponseData(UniversalBaseModel): + blocking: bool = pydantic.Field() + """ + Whether this note predicts that the company's migration would fail. + """ + + code: typing.Optional[MigrationErrorCode] = pydantic.Field(default=None) + """ + The error code the company's migration would fail or be skipped with. Null for a note that is only informational. + """ + + message: str + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/preview_subscription_finance_response_data.py b/src/schematic/types/preview_subscription_finance_response_data.py index dfa7573d..6e036ce0 100644 --- a/src/schematic/types/preview_subscription_finance_response_data.py +++ b/src/schematic/types/preview_subscription_finance_response_data.py @@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel from .currency import Currency from .preview_subscription_discount_response_data import PreviewSubscriptionDiscountResponseData +from .preview_subscription_proration_response_data import PreviewSubscriptionProrationResponseData from .preview_subscription_upcoming_invoice_line_items import PreviewSubscriptionUpcomingInvoiceLineItems @@ -17,6 +18,16 @@ class PreviewSubscriptionFinanceResponseData(UniversalBaseModel): ISO 4217 currency every amount in this block is denominated in. """ + customer_balance_applied: int = pydantic.Field() + """ + What the company's stored credit covers of this invoice, in minor units. + """ + + customer_balance_remaining: int = pydantic.Field() + """ + Credit left on the company's balance after this invoice, in minor units: what it did not consume, plus what a total below zero adds, which the provider applies to later invoices. + """ + discount_amount: int discounts: typing.List[PreviewSubscriptionDiscountResponseData] due_now: int @@ -27,6 +38,11 @@ class PreviewSubscriptionFinanceResponseData(UniversalBaseModel): promo_code_applied: bool proration: int proration_billed_at: typing.Optional[dt.datetime] = None + proration_detail: typing.Optional[PreviewSubscriptionProrationResponseData] = pydantic.Field(default=None) + """ + The proration itemized in the cart's terms, by plan and price. Null when the change prorates nothing. upcoming_invoice_line_items stays as the billing provider reported it. + """ + tax_amount: typing.Optional[int] = None tax_display_name: typing.Optional[str] = None tax_require_billing_details: bool diff --git a/src/schematic/types/preview_subscription_proration_line_response_data.py b/src/schematic/types/preview_subscription_proration_line_response_data.py new file mode 100644 index 00000000..7ed09d93 --- /dev/null +++ b/src/schematic/types/preview_subscription_proration_line_response_data.py @@ -0,0 +1,39 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .proration_line_kind import ProrationLineKind + + +class PreviewSubscriptionProrationLineResponseData(UniversalBaseModel): + amount: int = pydantic.Field() + """ + In minor units of the block's currency; negative on a credit. + """ + + kind: ProrationLineKind + period_end: typing.Optional[dt.datetime] = None + period_start: typing.Optional[dt.datetime] = None + plan_id: typing.Optional[str] = pydantic.Field(default=None) + """ + The plan or add-on in the cart the price belongs to. Null for a price the subscription carries outside the cart. + """ + + price_id: typing.Optional[str] = pydantic.Field(default=None) + """ + The Schematic price. Null when the provider priced something Schematic does not carry. + """ + + quantity: typing.Optional[int] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/preview_subscription_proration_response_data.py b/src/schematic/types/preview_subscription_proration_response_data.py new file mode 100644 index 00000000..f4445d81 --- /dev/null +++ b/src/schematic/types/preview_subscription_proration_response_data.py @@ -0,0 +1,48 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .checkout_charge_timing import CheckoutChargeTiming +from .currency import Currency +from .preview_subscription_proration_line_response_data import PreviewSubscriptionProrationLineResponseData + + +class PreviewSubscriptionProrationResponseData(UniversalBaseModel): + billed_at: typing.Optional[dt.datetime] = pydantic.Field(default=None) + """ + When the proration is charged: the change for now, the period's end for at_renewal. Null when nothing is charged. + """ + + charge: int = pydantic.Field() + """ + Sum of the charge lines, in minor units, before tax. + """ + + credit: int = pydantic.Field() + """ + Sum of the credit lines, in minor units, before tax: zero or below. + """ + + currency: Currency + lines: typing.List[PreviewSubscriptionProrationLineResponseData] + timing: CheckoutChargeTiming = pydantic.Field() + """ + When the proration is charged: now, at_renewal, or none when it nets to nothing. + """ + + total: int = pydantic.Field() + """ + credit plus charge, before tax. Equals proration. + """ + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/src/schematic/types/proration_line_kind.py b/src/schematic/types/proration_line_kind.py new file mode 100644 index 00000000..1db24433 --- /dev/null +++ b/src/schematic/types/proration_line_kind.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ProrationLineKind = typing.Union[typing.Literal["charge", "credit"], typing.Any] diff --git a/src/schematic/types/public_catalog_response_data.py b/src/schematic/types/public_catalog_response_data.py new file mode 100644 index 00000000..ce140192 --- /dev/null +++ b/src/schematic/types/public_catalog_response_data.py @@ -0,0 +1,42 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .catalog_capabilities_response_data import CatalogCapabilitiesResponseData +from .catalog_credit_bundle_response_data import CatalogCreditBundleResponseData +from .catalog_custom_plan_cta_response_data import CatalogCustomPlanCtaResponseData +from .catalog_plan_response_data import CatalogPlanResponseData +from .currency import Currency + + +class PublicCatalogResponseData(UniversalBaseModel): + add_ons: typing.List[CatalogPlanResponseData] + capabilities: CatalogCapabilitiesResponseData + credit_bundles: typing.List[CatalogCreditBundleResponseData] + custom_plan_cta: typing.Optional[CatalogCustomPlanCtaResponseData] = pydantic.Field(default=None) + """ + Present when the catalog offers a custom plan; absent when custom plans are hidden. + """ + + default_currency: Currency = pydantic.Field() + """ + ISO 4217 currency of every top-level price slot; currency_prices carries the others. + """ + + description: typing.Optional[str] = None + id: str + name: str + plans: typing.List[CatalogPlanResponseData] + pricing_model: typing.Optional[str] = None + pricing_url: typing.Optional[str] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow